Melakukan Fuzz Testing Dengan Kali Linux


Pada saat membuat program, developer mengharapkan pengguna memasukkan input sesuai dengan yang seharusnya. Pada kenyataannya, pengguna (terutama yang iseng) mungkin saja memberikan input yang tidak diharapkan. Lalu, apa yang akan terjadi dengan program bila pengguna memberikan input yang tidak diharapkan? Fuzz testing adalah pengujian yang dilakukan untuk menjawab pertanyaan tersebut. Fuzz testing adalah jenis pengujian black box dimana penguji memberikan berbagai jenis input yang tidak valid pada program.

Kali Linux mem-bundle beberapa tools untuk keperluan fuzz testing yang dapat ditemukan di menu Kali Linux, Vulnerability Analysis, Fuzzing Tools. Saya akan mencoba beberapa tools tersebut.

Tool pertama yang saya temukan, BED, adalah sebuah script Perl yang dipakai untuk menguji penanganan protokol. BED mendukung protokol seperti FTP, SMTP, POP, HTTP, IRC, IMAP, PJL, LPD, FINGER, SOCKS4, dan SOCKS5. Dengan demikian, BED tidak dipakai untuk menguji program seperti aplikasi web, melainkan menguji infrastruktur seperti web server, mail server, FTP server dan sebagainya. BED akan berhenti bila berhasil membuat server yang diuji menjadi down atau crash. Sebagai contoh, saya ingin menguji seberapa handal FTP server di router yang saya pakai. Karena kemampuan pemrosesan di router ekonomis yang terbatas dan jarang sekali upgrade firmware, saya pantas merasa ragu dengan keamanannya. Oleh sebab itu, saya dapat melakukan pengujian dengan perintah seperti berikut ini:

# bed -s FTP -u admin -v password -t 192.168.1.1

BED 0.5 by mjm ( www.codito.de ) & eric ( www.snake-basket.de )

+ Buffer overflow testing:

    ...

+ Formatstring testing:

    ...

* Normal tests
 + Buffer overflow testing:

    ...

 + Formatstring testing:

    ...

 + Unicode testing:

    ...

 + random number testing:

    ...

 + testing misc strings 1:

    ...

 + testing misc strings 2:

    ...

 + testing misc strings 3:

    ...

 + testing misc strings 4:

    ...

 + testing misc strings 5:

 ...


Script BED akan menguji dengan memakai input berupa overflow string ("A" x 1023 atau "\\" x 200), format string (seperti %s%s%s%s atau %.2048d), unicode string (seperti "x99" x 512), large number (seperti -268435455), dan misc string (seperti "/" atau "\r\n"). Khusus pada FTP, ia juga akan menguji apakah directory traversal dengan input seperti "/././.." dimungkinkan atau tidak.

Tool lainnya yang berada dalam kategori ini adalah powerfuzzer. Tool berbasis GUI ini dapat dipakai untuk menguji aplikasi web. Sebagai contoh, saya akan melakukan pengujian pada router saya yang memiliki halaman administrasi dalam bentuk aplikasi web. Saya dapat memberikan perintah berikut ini untuk menjalankan powerfuzzer:

# powerfuzzer

Saya mengisi bagian credentials dengan nama user dan password router. Setelah itu, saya mengisi Target URL dengan lokasi router yaitu di http://192.168.1.1 dan men-klik tombol Scan. powerfuzzer akan bekerja dan menampilkan hasil pemeriksaan setelah selesai. powerpuzzer pada dasarnya adalah script Python yang bekerja mengisi parameter yang dipakai pada parameter pada request GET dan POST dengan nilai yang tidak valid seperti lokasi file (misalnya /etc/passwd atau http://www.google.com/), script (misalnya "a;env", "a);env", dan "/e"), injeksi (dengan payload berupa "\xbf'\"("), javascript (untuk memeriksa XSS), dan string CRLF seperti "http://www.google.com\r\nPowerfuzzer: v1 BETA".

Menariknya, hasil pengujian menunjukkan terdapat celah keamanan XSS pada web administrasi router saya. Bukan hanya itu saja! Dengan mengirim payload tertentu menggunakan method POST pada URL tersebut, router akan crash dan di-restart kembali.

Selain memakai tools yang ada di kategori Fuzzing Tools, bila melakukan fuzz testing pada aplikasi web, saya dapat menggunakan tool yang ada di menu Kali Linux, Web Applications, Web Application Fuzzers. Disini saya dapat menggunakan tool yang lebih ‘user-friendly’ dan berbasis GUI seperti Burp dan Zed Attack Proxy (ZAP).

Fuzz testing pada Burp dilakukan dengan memilih tab Intruder dan memilih salah satu jenis payload yang diujikan seperti Illegal Unicode. Pada ZAP, saya dapat memilih tab Active Scan untuk mencari celah keamanan pada URL yang telah diperoleh oleh spider. ZAP akan melakukan beberapa pemeriksaan, termasuk diantaranya adalah Cross Site Scripting (XSS), SQL Injection dan CRLF injection. Untuk melakukan fuzz testing pada URL tunggal di ZAP, saya perlu memilih sebuah parameter atau header di bagian Request, kemudian men-klik kanan dan memilih Fuzz…. Pada dialog yang muncul, saya dapat memilih fuzzer yang akan dipakai, seperti jbrofuzz/Buffer Overflows, jbrofuzz/Format String Errors, jbrofuzz/Integer Overflows, jbrofuzz/SQL Injection, dan sebagainya.

Perihal Solid Snake
I'm nothing...

Apa komentar Anda?

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: