Open Source

Untuk seluruh software yang bersifat Open Source tidak akan tenggelam oleh waktu dikarenakan banyak yang mendukung program tersebut dan software tersebut tidak kalah bersaing dengan software berbayar lainnya.

Certified

Mengambil sertifikasi semata-mata bukan untuk menjadi tenar atau sombong, tapi untuk mengetahui apakah anda mampu mengemban tanggung jawab secara moral terhadap apa yang anda telah pelajari dan bagaimana memberikan ilmu tersebut kepada orang lain tanpa pamrih.

Operating System Pentest

Sistem operasi Bactrack, Kali Linux, dll memang sangat memanjakan para Pentester dalam melaksanakan tugasnya sesuai dengan prosedur yang berlaku. Di OS tersebut disediakan beberapa tools menarik seperti untuk memperoleh information gathering, vulnerability assesment, exploit, dll.

Sherlock Holmes

Film detektif yang satu ini pasti disukai oleh beberapa rekan IT dikarenakan proses jalan ceritanya ketika memecahkan sebuah kasus tidak monoton dan memerlukan logika berpikir yang diluar kebiasaan. Daya hayal harus tinggi ketika ingin menonton film ini.

Forensic

Kegiatan forensic bidang IT sangat membutuhkan tingkat pemahaman yang tinggi akan suatu kasus yang ditangani. Tim yang menangani forensic harus bisa membaca jalan pikiran si Attacker seperti apa jika melakukan serangan. Biasanya Attacker lebih maju selangkah dibanding dengan tim pemburunya.

Selasa, 22 Juni 2010

Jaga Email anda


Mumpung masih pagi dan otak masih seger belum mumet dengan pekerjaan, mau nulis ah disini. Sesuai dengan judulnya, saya akan mencoba membahas sedikit dengan Email. Email adalah Elektronik Mail. Banyak penyedia jasa email gratisan seperti : Gmail, Yahoo, Plasa, Hotmail, dll. Tapi akankah semua itu sudah aman akun email anda dari lirikan sang penjahat didunia maya ?. Menurut saya banyak celah-celah yang ada pada email gratisan tersebut dan banyak penyedia email tersebut yang menyediakan fasilitas reset password. Nah inilah penyebab kadang seseorang tidak dapat membuka akun emailnya. Saya mencoba memberika beberapa tips yang semoga dapat membantu anda :
  1. Buatlah dan pisahkan akun email untuk pribadi, untuk mengikuti forum, FB, Twiter, dll.
  2. Bedakan password akun email tsb dengan password di akun FB, Twiter, dll.
  3. Buat password minimal 7 karakter dan coba liat tulisan saya sebelumnya tentang membuat password yang baik.
  4. Jangan menerima email yang tidak jelas isinya dan yang anda tidak kenal, apalagi di mail tersebut mencantumkan beberapa file attach, nah sebaiknya langsung di delete aja dan jangan pernah membaca email tersebut dan jika ada anda disuruh klik link di mail tersebut, sebaiknya jangan banget coz itu teknik Phissing.
  5. Usahakan di dalam akun email anda, buat email primary dan email secondary, ini sangat berguna sekali jika misal anda lupa / di hack email primary anda dan cepet2 anda reset tuh password dan nantinya ada konfirmasi di email secondary juga.
  6. Gunakanlah fasilitas Signature yang ada pada penyedia jasa email tersebut.
  7. Jangan pernah mempublikasikan email pribadi anda kepada orang yang anda tidak kenal dan coba yang tahu tuh hanya keluarga saja.
  8. Jika ada email yang berisikan bahwa ada yang butuh uang, anda menang kuiz, dll, sebaiknya tidak usah dipercaya dan jika ada yang mengaku itu teman anda, sebaiknya langsung ditelfon dan disamperin aja itu temen anda.
  9. Ubah password anda secara rutin, minimal sebulan sekali dan jangan pernah menggunakan password yang sudah pernah digunakan.
  10. Jika anda login dari PC kantor, warnet, laptop teman, usahakan matikan Option : Remember password dan jika anda sudah logout, sebaiknya hapus history dan cookies. Jika anda bingung cari di google cara menghapus cookies dan jika anda pakai Firefox, anda bisa masuk ke : Setting --> Option --> Privacy dan hapus All Cookies. Kemudian juga di menu yang sama, pencet Tab / masuk ke : security dan hapus Password Saved.
Semoga tulisan ini dapat membantu anda walau saya juga masih newbie.

Jumat, 18 Juni 2010

Membuat Sedikit Keamanaan Dengan Teknik Sederhana

Banyak orang-orang yang masih kurang paham akan keamanaan data pribadi mereka. Sebenarnya jika hacker/cracker/carding mengetahui hal-hal sampai dengan sedetail mungkin tentang data target orang tersebut, wah maka pastinya itu jadi membuat mereka semakin mudah saja menjalani aktifitas mereka tsb.

Saya mencoba memberikan beberapa trik sederhana dan mungkin itu bisa menjadi tips bagi anda semua dan tolong dimaafkan jika saya sok tau menurut anda.


1.  Buatlah email pribadi yang hanya diketahui oleh keluarga, sahabat dan teman kantor.
2. Jika anda membuat akun di FB, Twiter, forum atau web sosial lainnya, usahakan jangan pernah memakai email pribadi anda.
3. Buat akun email khusus untuk membuat akun web seperti di point 2 diatas. Usahakan buatlah dua akun email tersebut dan gunanya adalah untuk ada email primary dan secondary jika anda ingin register di web di point 2 diatas.
4. Buatlah password email utama / pribadi yang unik dengan cara menggunakan Numerik (0-9) , Abjad (A-Z), Karakter (!@#$%^ dll) dan minimal 7 digit, jika lebih lebih baik. Password ini jangan sampai ada orang lain yang tau, misal : "Eh pake aja tuh akun email gw dan nih passwordnya". Sedangkan untuk password web jejaring sosial, dibedakan untuk akun FB, Twit, dll dan termasuk email yg seperti point 3 diatas. Jangan pernah membuat password kaya : Tanggal lahir, Nama pacar, nama anak atau yang lainnya yang mudah ditebak sama para penjahat maya tsb.
5. Jika orang yang aktif membuka email, FB, dll, jangan pernah percaya jika ada message / pesan dengan kata-kata yang aneh atau anda disuruh klik link ini, itu semua adalah teknik untuk mendapatkan password anda dan termasuk Teknik Phising. Sebaiknya jika ada pesan tersebut, maka langsung dihapus saja dan jangan anda membacanya, nanti anda tergiur untuk mengklik link tersebut lagi.
6. Jangan mau melamar pekerjaan yang tidak jelas dengan anda disuruh email ke alamat email si yang punya gawean dan nantinya mereka akan mengirim klo anda disuruh klik link2 yg ga jelas dan itu termasuk teknik phissing dan nantinya data pribadi anda juga akan diketahui oleh mereka.
7. Usahakan setiap sebulan sekali, anda rutin merubah password anda dan jika anda merubah password anda, jangan menggunakan password yang pernah anda gunakan dahulunya yah.
8. Untuk PIN ATM, jangan menggunakan tgl lahir, tanggal nikah, atau yang lain tapi coba buat angka sesulit mungkin dan ingat jangan pernah memberitahukan kepada orang lain.

Segitu dulu yang saya bisa bahas dan tulis ini. Nantinya saya akan update lagi deh dan disini saya masih belajar dan hanya punya pengetahuan yang cetek bgt dan maaf klo didalam artikel tersebut saya banyak salahnya.

Senin, 14 Juni 2010

Memahami Denial of Service


Dalam artikel ini saya akan menjelaskan mengenai jenis serangan yang bisa dikatakan tidak ada obatnya, yaitu denial of service atau DoS. Bila serangan DoS ini dilakukan secara beramai-ramai dan terorganisir dengan baik, maka akan menghasilkan kerusakan yang dahsyat dan sanggup melumpuhkan situs-situs populer seperti twitter.com dan metasploit.com.
Apa itu DoS
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
  1. Menyibukkan Server
    • Tanpa bug/vulnerability
    • 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:
    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:
  • Exploiting vulnerability: Menyerang dengan malicious request/packet
  • 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:
    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.
DDoS Botnet Attack
Courtesy of: www.dos-attack.net
Gambar di atas menjelaskan cara kerja DDoS. 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.
    • Exploiting bug: mengirim banyak specially crafted request. Jumlah request tidak sebanyak jenis DoS yang menyibukkan server dengan normal request.
    • 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.

Mengincar Direktori Yang Rawan

Tulisan COPAS dan sumbernya : LINK TKP

Mungkin anda akan terkejut bila mengetahui bahwa ada banyak website yang berhasil dihack/dideface hanya karena sebuah kesalahan “konyol”. Tidak dibutuhkan keahlian programming, SQL atau jurus njelimet lainnya, cuma membuka sebuah direktori yang berisi file-file sensitif, maka sebuah website akan bertekuk lutut. Ya benar, ini adalah fakta yang seringkali terjadi.
Direktori Sensitif

Semua direktori atau file yang mengandung informasi berguna buat hacker untuk mendeface website anda, maka direktori itu termasuk sensitif. Beberapa direktori atau file yang tergolong sensitif antara lain:
  • Backup
Hal yang biasanya dibackup adalah database dan source script webnya. Bayangkan apa yang terjadi bila hacker berhasil mendapatkan seluruh file php dan “database dump” dalam satu file zip? Kalau anda berpikir itu tidak mungkin terjadi, anda salah besar, karena saya sering menemukan file backup berekstensi zip, tar.gz, atau sql berserakan di websitenya.
  • Halaman Login
Ada banyak macam halaman login, umumnya adalah halaman login untuk mengelola isi website, yaitu CMS Administrator. Selain CMS, halaman login yang lain adalah phpMyAdmin, cpanel, Tomcat Admin Page, AXIS2 Admin Page dll. Tomcat dan AXIS2 adalah Java based webserver dan web service platform.
Kenapa halaman login termasuk sensitif? Karena dengan mengetahui URL untuk menjadi Administrator website, seorang hacker bisa melakukan serangan SQL Injection, password guessing, dictionary attack dan brute force attack untuk membuat dirinya menjadi seorang administrator di website anda. Celakanya banyak website yang halaman login adminnya tidak menggunakan password yang kuat, bahkan menggunakan password default.
  • Log file
Log file biasanya dipakai untuk tujuan debugging atau penelusuran kesalahan oleh web developer. Karena itu tidak heran bila dalam log file banyak mengandung informasi sensitif yang bisa dimanfaatkan hacker. File log ini berbeda-beda tergantung dari web aplikasi yang dipakai karena web developer punya kebebasan untuk membuat  atau tidak membuat file log.
Salah satu contoh log file yang biasa ditemukan di web adalah WS_FTP.LOG, file ini dibuat oleh program WS_FTP, yaitu FTP Client. Setiap kali memakai program ini untuk upload ke web anda, WS_FTP akan otomatis memasukkan file WS_FTP.LOG ke dalam folder website anda. Dalam file WS_FTP.LOG ini seorang hacker bisa mendapatkan banyak informasi sensitif: antara lain IP address web server anda (banyak web yang menyembunyikan IP address sebenarnya dibalik NAT), full path lokasi document root web anda, username account hosting anda (bila dalam full path mengandung nama seperti /home/username/…./).
WS_FTP.LOG juga bisa membocorkan isi sebuah direktori bila anda sudah mematikan fitur “Directory Indexing” atau membuat file index.html kosong. Seorang hacker yang tidak bisa melihat isi direktori karena directory index dimatikan atau ada file index.html kosong, bisa mencoba membuka WS_FTP.LOG di direktori itu. Bila ternyata file WS_FTP.LOG ada, maka file log itu akan membocorkan isi file dalam direktori tersebut.

Pesan error di atas umumnya dijumpai pada direktori yang ada, tapi directory indexing tidak diaktifkan, sehingga anda harus menebak nama file yang ada di direktori tersebut. Bila directory indexing diaktifkan, maka anda akan menemukan halaman dengan title “Index of /”.
  • Versi Lama
Terkadang ketika sebuah website diupdate ke versi baru, file-file script lama disimpan dalam satu direktori bernama oldversion, version1 dan versi barunya dalam direktori /new/ atau /ver2/ atau /beta/. Menemukan beragam versi suatu web adalah kesempatan emas untuk menemukan celah keamanan karena biasanya web versi terbarunya memang tidak mengandung kelemahan, namun bila kita berhasil menemukan versi lamanya, akan ditemukan banyak celah keamanan.
Saya pernah menemukan sebuah website yang securitynya bagus, saya tidak menemukan vulnerability di sana, namun ternyata dia lupa membuang versi lama dari web tersebut. Namun ternyata web versi lama yang mengandung banyak bug dari SQL injection sampai local file injection masih bisa diakses di direktori lain. Walaupun web versi terbaru securitynya bagus, namun jadi tidak berarti apa-apa karena hacker bisa menyerang dari web versi lamanya.
Berburu Direktori dan File Sensitif

Nama direktori atau file bisa ditemukan dengan 2 cara:
  • Crawling
Crawling ini adalah cara yang dipakai oleh search engine untuk mendapatkan isi website anda.  Ini adalah cara yang “sopan”, karena kita hanya mencari apa yang memang disediakan oleh pemilik webnya. Search engine crawling akan mengikuti direktori apa yang boleh dan apa yang tidak boleh diambil dalam file /robots.txt. Jadi bila ada direktori sensitif yang bisa di-search di Google, maka itu terjadi karena di suatu situs ada pointer ke obyek itu berupa link. Bila di seluruh jagat internet ini tidak ada satupun link ke direktori itu, maka tidak mungkin direktori itu muncul di Google.
Kita bisa memanfaatkan Google Hacking untuk mencari direktori sensitif yang sengaja atau tidak sengaja ter-index oleh Google. Kita juga bisa membuat script atau memakai program semacam wget untuk melakukan crawling website  (tidak memanfaatkan Google index). Menjalankan crawler sendiri terkadang diperlukan bila kita ingin melakukan crawling direktori yang search engine dilarang untuk masuk (diblacklist di /robots.txt).
  • Guessing
Bila dengan cara sopan tidak mendapatkan direktori sensitif, maka kita terpaksa pakai cara “kasar”. Mendapatkan direktori sensitif dengan cara ini sama dengan menebak password. Ada dua cara yang bisa dipakai:
  1. Pure Brute Force Attack
  2. Cara ini adalah cara yang paling kasar. Kita mencoba semua kemungkinan kata yang muncul dari huruf , angka dan karakter lain sebagai nama direktori atau nama file. Contoh: request /aa/, lalu /ab/, lalu /ac/, lalu /ad/, demikian seterusnya sampai semua kemungkinan yang ada dicoba. Cara ini membutuhkan waktu yang sangat lama, jadi kurang efektif. Tapi kelebihannya adalah tidak ada direktori yang lolos, karena semua kemungkinan akan dicoba.
  3. Dictionary Attack
  4. Ini adalah cara yang lebih sopan dibanding pure brute force. Kita menggunakan kamus, yaitu kumpulan nama yang akan kita pakai untuk request ke web server. Efektif tidaknya cara ini tergantung dari bagaimana kualitas kamus yang dipakai. Semakin baik kualitas kamusnya, semakin besar kemungkinan berhasil mendapatkan direktori sensitif. Kamus yang baik adalah kamus berisi kata yang memang benar-benar pernah dipakai untuk nama direktori, jadi bukan nama fiktif atau karangan.
DirBuster dari OWASP

Dalam artikel ini saya akan menggunakan tools gratisan, DirBuster yang dibuat oleh OWASP (Open Web Application Security Project), sebuah kelompok non-profit yang berfokus pada keamanan web. Seperti yang sudah saya katakan sebelumnya, kekuatan tools semacam ini tergantung pada kualtias kamus yang dimilikinya.
DirBuster memiliki kamus yang sangat lengkap, bukan nama fiktif yang tidak pernah dipakai, tapi memang benar-benar nama yang pernah dipakai sebagai nama direktori. Kumpulan nama ini didapatkan dari internet dengan cara melakukan crawling terhadap situs-situs internet lalu mengelompokkannya. Kumpulan nama yang dipakai minimal 3 situs berbeda ditaruh di file dengan akhiran small.txt, kumpulan nama yang dipakai minimal 2 situs berbeda ditaruh di file dengan akhiran medium.txt, dan semua nama yang ditemukan ditaruh dalam file berakhiran big.txt.
Bila anda membutuhkan daftar nama direktori saja untuk dipakai di program lain, anda juga bisa mendownload kamusnya saja tanpa harus mendownload DirBuster.
Tools ini sangat mudah digunakan, jadi silakan saja langsung download DirBuster. Sebelumnya pastikan dulu komputer anda sudah terinstall Java, karena tools ini dibuat dengan Java.
Scanning Type
Ada dua jenis scanning yang bisa dilakukan, pure brute force atau dictionary based attack. Bila anda memilih memakai teknik pure brute force, maka anda harus menentukan character set (kumpulan karakter) yang akan dijadikan nama direktori dan tentukan juga panjang minimal dan maksimalnya. Semakin besar populasi dari character set yang anda pilih dan semakin panjang max length yang anda pilih, semakin besar kumpulan kata yang dihasilkan, itu artinya dibutuhkan waktu yang semakin lama untuk mencoba semuanya. Gambar di bawah ini adalah screenshot ketika memilih pure brute force.
Bila memilih list based brute force, maka kita harus memilih file berisi daftar nama direktori. DirBuster sudah menyediakan banyak dictionary yang bisa dipilih sesuai kebutuhan:
  • directory-list-2.3-small.txt  (87650 words) : Minimal dipakai di 3 situs berbeda.
  • directory-list-2.3-medium.txt  (220546 words) : Minimal dipakai di 2 situs berbeda.
  • directory-list-2.3-big.txt  (1273819 words) : Minimal pernah dipakai.
  • directory-list-lowercase-2.3-small.txt  (81629 words) : Versi case insensitive dari directory-list-2.3-small.txt
  • directory-list-lowercase-2.3-medium.txt  (207629 words) : Versi case insensitive dari directory-list-2.3-medium.txt
  • directory-list-lowercase-2.3-big.txt  (1185240 words) : Versi case insensitive dari directory-list-2.3-big.txt
  • directory-list-1.0.txt  (141694 words)  : Daftar awalnya, tidak terurut
  • apache-user-enum-1.0.txt  (8916 usernames) : Dipakai untuk user enumeration, mendapatkan valid username di sebuah server
  • apache-user-enum-2.0.txt  (10341 usernames) : Dipakai untuk user enumeration
Dalam list yang disediakan DirBuster juga menyediakan daftar username yang dipakai untuk user enumeration, yaitu mendapatkan nama user yang valid di sebuah server. Dalam web server Apache yang mengaktifkan mod_userdir, bisa dilakukan user enumeration dengan cara menggunakan ~namauser sebagai nama direktori.
Gambar di bawah ini adalah screenshot ketika kita memilih menggunakan dictionary attack.
Starting Options

Pilihan lain yang harus dipilih adalah starting options, yaitu di mana titik mulainya DirBuster mencari direktori. Pilihannya adalah standard start point, atau URL Fuzz. Standard start point adalah pilihan yang paling banyak digunakan karena pilihan ini berarti kita meminta DirBuster untuk menggunakan nama direktori sebagai titik awal.
Pilihan yang ada ketika kita memilih Standard Start Point adalah checkbox Brute Force Dirs yang bisa dimatikan bila kita tidak ingin ingin membrute Direktori. Brute Force Files bisa dimatikan bila kita tidak ingin mencari file. Dua pilihan tersebut bisa diatur sesuai kebutuhan, apakah ingin mencari direktori dan nama file, atau direktori saja, atau nama file saja.
Pilihan File extention bisa diisi dengan ekstensi file yang ingin dicari, misalnya bisa kita isi dengan php, zip, gz, tar.gz. Namun bila kita tidak ingin menggunakan ekstensi, kita bisa centang pilihan Use Blank Extention.
Pilihan Be Recursive digunakan untuk membuat DirBuster melakukan pencarian secara mendalam (Deep First Search), yaitu mencari subdirektori dalam sebuah direktori, mencari sub-subdirektori dalam subdirektori dan seterusnya sampai kedalaman tertentu.


Ada kalanya kita harus membrute force nama direktori yang merupakan bagian dari parameter URL. Dalam kasus seperti itu kita bisa memakai pilihan URL Fuzz. Salah satu contoh kasusnya adalah ketika kita ingin melakukan scanning melalui sebuah web based proxy seperti PHPProxy.


Ketika kita ingin scanning website internal dengan IP address private dari website public yang sudah berhasil kita susupi, kita bisa gunakan PHProxy. URL PHProxy biasanya berbentuk http://somewebsite/myproxy/?q=http://situstarget/{dir}. Dalam kasus seperti ini, pilihan URL Fuzz bisa sangat berguna. Gambar di bawah ini menunjukkan skenario tersebut. Setelah seorang hacker berhasil menguasai web server public, dia akan mengupload web based proxy seperti PHProxy. Dengan proxy tersebut hacker bisa melebarkan serangannya ke arah dalam dengan menyerang web server internal yang tidak bisa dijangkau dari internet.
Walaupun tools ini sangat sederhana, tapi jangan remehkan keampuhannya. Silakan coba saja sendiri, mungkin nanti anda akan terkejut melihat banyaknya webmaster yang sembrono menaruh file/direktori sensitif di websitenya.