Anatomi
Hacking
1.
Footprinting
Hacker
mencari-cari sistem mana yang dapat disusupi. Footprinting merupakan kegiatan
pencarian data berupa:
· Menentukan ruang lingkup (scope)
aktivitas atau serangan
· Network enumeratio
· Interogasi DNS
· Mengintai jaringan
Semua kegiatan ini dapat dilakukan
dengan tools dan informasi yang tersedia bebas di Internet. Kegiatan
footprinting ini diibaratkan mencari informasi yang tersedia umum melalui buku
telepon. Tools yang tersedia untuk ini di antaranya:
a. Teleport Pro. Dalam menentukan ruang
lingkup, hacker dapat men-download keseluruhan situs-situs web yang potensial
dijadikan sasaran untuk dipelajari alamat, nomor telepon, contact person, dan
lain sebagainya.
b. Whois for 95/9/NT. Mencari informasi
mengenai pendaftaran domain yang digunakan suatu organisasi. Di sini ada bahaya
laten pencurian domain (domain hijack).
c. NSLookup. Mencari hubungan antara domain
name dengan IP address.
d. Traceroute 0.2. Memetakan topologi
jaringan, baik yang menuju sasaran maupun konfigurasi internet jaringan
sasaran.
2. Scanner
Menggunakan
sebuah program yang secara otomatis akan mendeteksi kelemahan sistem keamanan
sebuah jaringan komputer, misal port – port yang sedang aktif yang dapat
dijadikan sebagai pintu masuk bagi hacker untuk melakukan aksinya. Kegiatan
Scanning ini lebih bersifat aktif terhadap sistem-sistem sasaran. Di sini
diibaratkan hacker sudah mulai mengetuk-ngetuk dinding sistem sasaran untuk
mencari apakah ada kelemahannya. Scanning tool yang paling legendaris adalah
nmap (yang kini sudah tersedia pula untuk Windows 9x/ME maupun DOS), selain
SuperScan dan UltraScan yang juga banyak digunakan pada sistem Windows. Untuk
melindungi diri dari kegiatan scanning adalah memasang firewall seperti
misalnya Zone Alarm, atau bila pada keseluruhan network, dengan menggunakan IDS
(Intrusion Detection System) seperti misalnya Snort.
Dasar
Scanning Port
Meskipun
selama ini Nmap telah mengalami perkembangan fungsionalitas, namun ia bermula
sebagai sebuah scanner port yang efisien, dan hal itu tetap menjadi fungsi
utamanya. Perintah sederhana nmap <target> akan memeriksa lebih dari 1660
port TCP pada host <target>. Ketika banyak scanner port secara
tradisional membagi seluruh port ke dalam status terbuka (open) atau tertutup
(closed), Nmap lebih granular. Ia membagi port menjadi enam status : open,
closed, filtered, unfiltered, open|filtered, or closed|filtered.
Status ini
bukan merupakan properti intrinsik dari port itu sendiri, namun menggambarkan
bagaimana Nmap memandang mereka. Sebagai contoh, scan Nmap dari jaringan yang
sama dengan target mungkin menampilkan port 135/tcp sebagai terbuka, sementara
scan yang sama pada waktu dan opsi yang sama dari Internet mungkin menunjukkan
bahwa port tersebut filtered.
Enam status
port yang dikenali Nmap
a. open
Sebuah
aplikasi secara aktif menerima koneksi paket TCP atau UDP pada port ini.
Menemukan port terbuka ini seringkali merupakan tujuan utama scanning port.
Orang dengan pikiran keamanan (security-minded) tahu bahwa setiap port terbuka
merupakan celah untuk serangan. Penyerang dan pen-testers ingin mengeksploitasi
port terbuka, namun administrator berusaha menutup atau melindungi mereka
dengan firewall tanpa mengganggu user yang berhak. Port terbuka juga menarik
bagi scan bukan keamanan karena mereka memberitahu layanan yang dapat digunakan
pada jaringan.
b. closed
Port
tertutup dapat diakses (ia menerima dan menanggapi paket probe Nmap), namun
tidak ada aplikasi yang mendengarkan padanya. Mereka bermanfaat dengan
menunjukkan bahwa host up pada alamat IP tersebut (host discovery, atau ping
scanning), dan sebagai bagian deteksi SO. Oleh karena port tertutup dapat
dijangkau, bermanfaat untuk mencoba scan di waktu yang lain jikalau port
tersebut terbuka. Administrator mungkin perlu mempertimbangkan untuk memblok
port tersebut dengan firewall. Lalu mereka akan muncul dalam status filtered,
yang akan didiskusikan.
c. filtered
Nmap tidak
dapat menentukan apakah port terbuka karena packet filtering mencegah probenya
mencapai port. Filter ini dapat dilakukan oleh device firewall, aturan pada
router, atau software firewall pada host. Port ini membuat penyerang frustrasi
karena mereka memberikan sedikit informasi. Terkadang mereka menanggapi dengan
pesan kesalahan ICMP misalnya tipe 3
kode 13
(tujuan tidak dapat dicapai: komunikasi dilarang secara administratif), namun
yang lebih umum adalah filter yang hanya men-drop probe tanpa memberi
tanggapan. Hal ini memaksa Nmap berusaha beberapa kali untuk memastikan probe
tidak di-drop akibat jaringan yang padat. Hal ini sangat memperlambat proses
scan.
d. unfiltered
Status
unfiltered berarti bahwa port dapat diakses, namun Nmap tidak dapat menentukan
apakah ia open atau closed. Hanya scan ACK, yang digunakan untuk mengetahui
aturan firewall, menggolongkan port ke dalam status ini. Pemeriksaan port
unfiltered dengan tipe pemeriksaan lain seperti Window scan, SYN scan, atau FIN
scan, dapat membantu mengetahui apakah port terbuka.
e. open|filtered
Nmap
menganggap port dalam status ini bila ia tidak dapat menentukan apakah port
open atau filtered. Hal ini terjadi untuk jenis pemeriksaan ketika port terbuka
tidak memberi respon. Tidak adanya tanggapan dapat pula berarti bahwa packet
filter men-drop probe atau respon yang diberikan. Sehingga Nmap tidak dapat
mengetahui dengan tepat apakah port terbuka atau difilter. Scan UDP, IP
protocol, FIN, NULL, dan Xmas mengklasifikasikan port dengan cara ini.
f. closed|filtered
Status ini
digunakan ketika Nmap tidak dapat menentukan apakah port tertutup atau
di-filter. Ia hanya digunakan pada scan idle ID IP.
3. Enumeration
Enumerasi
sudah bersifat sangat intrusif terhadap suatu sistem. Penyusup mencari account
name yang absah, password, serta share resources yang ada. Tidak hanya hard
disk yang di-share hanya dapat dilihat oleh pemakai dalam LAN saja. NetBIOS
session service dapat dilihat oleh siapa pun yang terhubung ke Internet di
seluruh dunia. Tools seperti Legion, SMB Scanner atau SharesFinder membuat
akses ke komputer orang menjadi begitu mudah (karena pemiliknya lengah membuka
resource share tanpa password).
4. Gaining Access
Mendapatkan
data lebih banyak lagi untuk mulai mencoba mengakses sasaran. Meliputi
mengintip dan merampas password, menebak password, serta melakukan buffer
overflow.
5. Escalating Privilege
Escalating
Privilege mengasumsikan bahwa penyerang sudah mendapatkan logon access pada
sistem sebagai user biasa. Penyerang kini berusaha menjadi admin (pada sistem
Windows) atau menjadi root (pada sistem Unix/Linux). Teknik yang digunakan
sudah tidak lagi dictionary attack atau brute-force attack yang memakan waktu
itu, melainkan mencuri password file yang tersimpan dalam sistem dan
memanfaatkan kelemahan sistem. Pada sistem Windows 9x/ME password disimpan
dalam file .PWL sedangkan pada Windows NT/2000 dalam file.SAM. Bahaya pada
tahap ini bukan hanya dari penyerang di luar sistem, melainkan lebih besar lagi
bahayanya adalah orang dalam yaitu user absah dalam jaringan itu sendiri yang
berusaha menjadi admin atau root. Penyerang sudah berada dan menguasai suatu
sistem dan kini berusaha untuk mencari informasi lanjutan (pilfering), menutupi
jejak penyusupannya (covering tracks), dan menyiapkan pintu belakang (creating
backdoor) agar lain kali dapat dengan mudah masuk lagi ke dalam sistem.
6. Pilfering
Proses
pengumpulan informasi dimulai lagi untuk mengidentifikasi mekanisme untuk
mendapatkan akses ke trusted system. Mencakup evaluasi trust dan pencarian cleartext
password di registry, config file, dan user data.
7. Covering Tracks
Menghapus
jejak terhadap aktivitas yang telah dilakukan, menghapus network log, history
dan log-log yang lainnya. Tools yang dipakai antara lain: Dump Event Log,
elsave.exe, WinZapper, Evidence Eliminator.
8. Creating Back Doors
Pintu
belakang diciptakan pada berbagai bagian dari sistem untuk memudahkan masuk
kembali ke sistem ini dengan cara membentuk user account palsu, menjadwalkan
batch job, mengubah startup file, menanamkan service pengendali jarak jauh
serta monitoring tool, dan menggantikan aplikasi dengan trojan. Bertujuannya
agar nanti bisa masuk lagi ke sistem target dengan menanamkan trojan pada
system target, membuat user tersembunyi, dan menaruhkan aplikasi pengendali.
9. Denial of service
Denial of
service adalah jenis serangan yang tujuannya adalah mencegah pengguna yang
sesungguhnya menikmati layanan yang diberikan server. Server sesuai namanya
adalah pelayan yang harus selalu siap melayani permintaan pengguna, yang
umumnya beroperasi 24 jam tanpa henti. Contohnya adalah web server yang
bertugas melayani pengunjung web menyediakan informasi dalam bentuk halaman
html. Dalam kondisi normal, pengunjung dapat meminta resource dari web server untuk
ditampilkan dalam browsernya, namun bila web server terkena serangan DoS maka
pengunjung tidak bisa menikmati layanan web server.
Secara umum
ada 2 cara melakukan serangan DoS:
1.
Mematikan
Server
2.
Menyibukkan
Server :
o
Tanpa
bug/vulnerability
o
Meng-exploit
bug/vulnerability
DoS
dengan Mematikan Server: Kill Them!
Anda pernah
mengalami ingin memakai telepon umum atau ATM namun tidak bisa karena di mesin
tersebut ditempel kertas berisi pesan “Out of Service” atau “Sedang dalam
perbaikan”. Telepon umum adalah target serangan DoS yang biasa terjadi,
dimana-mana kita menemukan telpon umum yang rusak karena serangan DoS seperti
membanting gagang telpon, mencabut kabel, memecahkan LCD dan aksi-aksi lainnya.
Tujuan
serangan ini adalah membuat server shutdown, reboot, crash, “not responding”.
Jadi serangan ini menghasilkan kerusakan yang sifatnya persisten artinya
kondisi DoS akan tetap terjadi walaupun attacker sudah berhenti menyerang,
server baru normal kembali setelah di-restart/reboot.
Bagaimana
cara serangan DoS ini dilakukan? Serangan ini dilakukan dengan meng-exploit
bug/vulnerability pada server. Kata kunci pada vulnerability jenis ini biasanya
adalah “specially/carefully crafted packet/request”, yang artinya paket yang
dirancang khusus. Kenapa dirancang khusus? Sebab dalam paket itu
mengandung sifat tertentu yang membuat
server mati ketika mengolah paket khusus itu.
Mari kita
perhatikan beberapa contoh vulnerability yang berakibat pada DoS attack:
·
Ping
of Death ( CA-1996-26 )
Ini adalah
jenis bug yang sudah sangat tua. Praktis sudah tidak ada lagi sistem yang
vulnerable terhadap bug ini. Bug ini bila diexploit akan membuat server crash,
freeze atau reboot. Serangan ini dilakukan dengan mengirimkan “specially
crafted” paket berupa oversized ICMP packet, yaitu paket yang ukurannya di atas
normal. Ketika server menerima dan memproses paket yang “aneh” ini, maka server
akan crash, freeze atau reboot. Ini adalah contoh serangan DoS “one shot one
kill” karena bisa merusak server hanya dengan satu tembakan saja.
·
MySQL
IF Query DoS ( SA25188 )
Bug ini akan
membuat mysql server menjadi crash hanya dengan mengirim sql khusus yang
mengandung fungsi IF() contohnya: “SELECT id from example WHERE id IN(1,
(SELECT IF(1=0,1,2/0)))”. Ini juga jenis serangan “one shot one kill”.
·
Cisco
Global Site Selector DNS Request Denial of Service (SA33429)
Bug ini
membuat DNS server Cisco mati dengan mengirimkan beberapa “specially crafted”
paket request DNS dalam urutan tertentu.
Tiga contoh
di atas kiranya cukup memberikan gambaran tentang bagaimana serangan DoS jenis
ini dilakukan. Pada intinya adalah attacker memanfaatkan (baca:mengexploit) bug
yang membuat server berhenti bekerja dan biasanya dilakukan sendirian secara
remote dengan mengirimkan specially crafted packet.
DoS
dengan Menyibukkan Server: Make Them As Busy As Possible!
Pada waktu
menjelang lebaran kita sering merasa begitu sulit mengirim sms, bahkan sering
terjadi gagal kirim. Begitu juga ketika berlangsung acara kuis di TV, mengelpon
ke nomor untuk menjawab kuis terasa begitu sulit. Hal ini terjadi karena ada begitu banyak
orang yang mengirim sms pada saat lebaran dan menelpon pada waktu kuis sehingga
membuat jaringan telekomunikasi menjadi begitu sibuk sampai tidak bisa melayani
pengguna lain. Peristiwa itu mirip dengan yang terjadi ketika sebuah server
mendapat serangan denial of service. DoS yang terjadi pada peristiwa tersebut
bukan jenis DoS yang mematikan server, namun jenis DoS yang menyibukkan server.
Jenis DoS
ini bersifat sementara, server akan kembali normal bila attacker berhenti
mengirimkan request yang membuat sibuk server.
DoS jenis
ini terbagi lagi menjadi 2 jenis berdasarkan cara melakukan serangan:
o
Exploiting
vulnerability: Menyerang dengan malicious request/packet
o
No
vulnerability exploitation: Menyerang dengan normal request/packet
Membuat
server sibuk dengan mengexploitasi vulnerability lebih cepat daripada tanpa
mengeksploit vulnerability.
Make
Server Busy by Exploiting Vulnerability
Dalam
serangan DoS jenis ini, attacker memanfatkan bug yang membuat server berlebihan
dalam menggunakan resource (cpu,memory,disk space dsb). Attacker akan mencari
cara bagaimana agar membuat server bekerja ekstra keras (jauh lebih keras dari
request normal) untuk melayani request dia. Biasanya serangan DoS jenis ini tidak
berupa serangan “one shot one kill”. Serangan dilakukan dengan melakukan banyak
request dengan setiap request membuat server mengonsumsi lebih banyak resource
dari request yang normal.
Dalam
hitungan matematika sederhana, bila attacker bisa membuat server bekerja selama
10 detik hanya untuk melayani dia (misal
normalnya 0,1 detik), maka attacker bisa mengirimkan request 1.000x untuk
membuat server melayani dia selama 10.000 detik (2,7 jam lebih) sehingga membuat
pengguna lain tidak bisa menikmati layanan server.
Untuk lebih
memahami DoS jenis ini, mari kita lihat contoh-contoh vulnerability yang bisa
diexploit untuk melancarkan serangan DoS jenis ini:
·
TCP
SYN Flood DoS
Ini adalah
serangan DoS yang sudah sangat tua. Attacker menyerang dengan cara membanjiri
server dengan malicious request berupa paket SYN dengan fake source IP address.
SYN packet adalah paket dari client yang mengawali terbentuknya koneksi TCP/IP,
setelah itu server akan membalas dengan SYN-ACK, dan dilengkapi dengan paket
SYN-ACK-ACK dari client, tiga proses ini disebut three way handshake.
Triknya
adalah pada fake source ip address pada paket SYN dari client. Akibatnya server
akan mengirim SYN-ACK (step 2) ke ip address yang salah sehingga server juga
tidak akan mendapatkan balasan SYN-ACK-ACK dari client. Padahal untuk setiap
client yang mencoba membuka koneksi, server akan mengalokasikan resource
seperti memori dan waktu untuk menunggu datangnya balasan ACK dari client.
Dengan cara ini attacker menghabiskan resource server hanya untuk melayani
request palsu dari attacker.
·
Apache
mod_deflate DoS
Apache
menggunakan mod_deflate untuk memampatkan file. Bila visitor meminta sebuah
file, maka apache akan menggunakan mod_deflate untuk memampatkannya kemudian
mengirimkan ke visitor tersebut. Namun bila di tengah proses pemampatan,
visitor memutuskan koneksi TCP, Apache masih terus bekerja memampatkan file
untuk visitor yang sebenarnya sudah tidak ada (sudah disconnect). Jadi bugnya
adalah pada borosnya pemakaian resource cpu untuk memampatkan file untuk client
yang sudah tidak ada.
Attacker
memanfaatkan kelemahan ini dengan meminta sebuah file yang berukuran besar,
kemudian dalam waktu singkat memutuskan koneksi sehingga membuat server bekerja
keras mempatkan file untuk visitor yang sudah tidak ada. Request ini diulang
berkali-kali sampai server begitu sibuknya dan semua resource cpu habis.
Dua contoh
vulnerability di atas cukup menjelaskan bagaimana serangan DoS jenis ini
dilakukan. Pada intinya adalah dengan mengirim banyak malicious
request/paket yang membuat server
mengonsumsi resource lebih banyak dan lebih lama untuk setiap requestnya.
Make
Server Busy Without Exploiting Vulnerability
Ini adalah
jenis serangan yang mengandalkan pada kemampuan mengirimkan normal request
sebanyak-banyaknya sehingga server menjadi sibuk. Perbedaan DoS jenis ini
dengan DoS yang mengexploit vulnerability adalah pada requestnya. Request yang
dikirimkan pada DoS jenis ini adalah request yang normal seperti yang dilakukan
pengguna biasa, sehingga server tidak mengonsumsi resource berlebihan.
Sedangkan DoS yang mengandalkan vulnerability mengirimkan specially crafted
malicious request untuk membuat server mengonsumsi resource lebih banyak untuk
melayani malicious request tersebut.
Normal
request hanya membuat server mengonsumsi resource dalam jumlah biasa-biasa
saja, tidak akan mengganggu kerja server secara keseluruhan. Diperlukan normal
request dalam jumlah yang sangat banyak untuk membuat server terganggu
kerjanya. Jadi agar serangan ini menjadi efektif, maka serangan harus dilakukan
beramai-ramai dari banyak tempat, semakin banyak penyerang semakin bagus
hasilnya. Serangan ini juga disebut dengan distributed DoS (DDoS) karena
dilakukan dari banyak lokasi yang terdistribusi (tersebar).
Serangan
DDoS dilakukan dengan menggunakan komputer zombie atau robot. Zombie adalah
komputer yang sudah dikuasai attacker sehingga bisa dikendalikan dari jarak
jauh. Sekumpulan komputer zombie membentuk jaringan yang disebut bot-net.
Attacker mendapatkan banyak zombie dengan menyebarkan virus atau worm, setiap
komputer yang terinfeksi akan diinstall program yang membuat komputer bersedia
menjalankan perintah dari attacker.
Attacker
memberi perintah kepada semua pasukannya untuk membuat request HTTP ke sebuah
website. Bila pasukan yang dikuasai attacker sangat besar, maka web server akan
dibanjiri request sehingga menjadi terlalu sibuk dan tidak bisa diakses oleh
pengguna yang sebenarnya (real visitor).
Serangan
jenis ini tidak ada obatnya karena attacker tidak meng-exploit bug atau
vulnerability apapun. Bila pada jenis DoS yang lain, serangan dapat dicegah
dengan melakukan patching atau update software, maka serangan ini tidak bisa
dihentikan dengan update atau patch.
Kesimpulan
Denial of
service adalah serangan yang membuat server tidak bisa melayani pengguna yang
sesungguhnya. Berikut adalah jenis-jenis serangan DoS berdasarkan cara
melakukan serangan:
·
Mematikan
Server: one shot, one kill untuk membuat server menjadi crash, hang, reboot.
·
Menyibukkan
Server: mengirim banyak sekali request untuk membuat server sibuk.
o
Exploiting
bug: mengirim banyak specially crafted request. Jumlah request tidak sebanyak
jenis DoS yang menyibukkan server dengan normal request.
o
Normal
request: mengirim banyak request normal seperti pengguna biasa. Diperlukan
jumlah request yang lebih banyak dibandingkan jenis DoS yang menyibukkan server
dengan exploit bug. Biasanya menggunakan botnet secara terdistribusi.
Penutup
Demikianlah langkah-langkah
yang kita lakukan dalam melakukan hacking. 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. Sekian yang bisa saya sampaikan, semoga bermanfaat.
Sumber: http://myblogku-diarizal.blogspot.co.id/2011/06/anatomi-suatu-serangan-hacking.html
Tidak ada komentar:
Posting Komentar