30/05/16

Melakukan Fuzz Testing Dengan Kali-Linux

Exhacking.net - 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 di harapkan.
Lalu, apa yang akan terjadi dengan program bila pengguna memberikan input yang tidak di harapkan?  

Fuzz testing adalah pengujian yang di lakukan untuk menjawab pertanyaan tersebut.  
Fuzz testing adalah jenis pengujian black box di mana penguji memberikan berbagai jenis input yang tidak valid pada program.
Kali Linux mem-bundle beberapa tools untuk keperluan fuzz testing yang dapat di temukan 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 di pakai 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 "/././.." di mungkinkan 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 di pakai 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.
Haris 32
Haris 32

I'm Just A Writer blogger usual And Happy to do some experiments And my dreams Want To Become A programmer and i love Linux.

Tidak ada komentar:

Posting Komentar

Silahkan berkomentar jika ada yang ingin di tanyakan 😊