Dari exploit WARFTP yang sudah kita exploit lakukan kemaren, kita mendapatkan sebuah celah yaitu pada :
- user
- password
Nah dengan memanfaatkan celah tersebut kita akan buat aplikasi WARFTP tersebut bufferOverflow (cress system karena penggunaan memori meluap/tidak wajar menyebabkan aplikasi error). disini saya tidak menjabarkan apa itu bufferOverFlow, silahkan temen-temen masuk pada kategori informasi untuk mendapatkan informasi tentang bufferOverflow.
Dengan memanfaatkan pengiriman data yang besar kedalam user/password saat kita melakukan login ke dalam WARFTP tersebut kita bisa memasukkan PAYLOAD ke aplikasi. Apa yang disebabkan dengan kita mengirim PAYLOAD?? Tentu kita bisa exsploitasi aplikas.i tersebut untuk mendapatkan hak akses root (menguasai seluruh komputer target).
PAYLOAD ada banyak macam dan banyak kegunaan. Nah nanti kita akan bahas, kita mau menggunakan tipe PAYLOAD seperti apa.
sebelum buat fuzzer jangan lupa untuk mencari IG (Information Gatering). Misalnya kita tidak tau komputer target seperti apa. Sama seperti kita melakukan IG saat kita menggunakan MSFCONSOLE.
ini adalah script berbasi phyton yang yang akan kita gunakan sebagai template :
#!usr/bin/python
import socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#mengkoneksikan socket
buffer = "\x90" * 1000 #banyak paket data yang dikirim
s.connect(('192.168.56.101',21)) #deklarasi ip target dengan port untuk koneksidata=s.recv(1024) #jumlah data yang diterima
print ("Kirim data setan ke Target")
s.send('USER '+buffer+'\r\n')
data=s.recv(1024)
s.send('PASS PASSWORD '+'\r\n')
s.close()
print("data terkirim")
Oke sekarang kita siapkan dulu alat-alat yang kita butuhkan :
Setelah kedua komputer berjalan, kita jalankan dulu warFTP di komputer lab
bila oke mari kita buat fuzzer :)
buka terminal lalu ketik "nano warFTP.py" seperti pada terminal dibawah ini. (saya menggunakan konsole, temen" bisa menggunakan yang lain seperti geany, kwrite, kate, vi, dll sesuka temen" sendiri mo gunain alat bantu editor seperti apa ga masalah)
Intinya disini didalam fuzzer kita akan mengirimkan data ke bagian user dan password sebanyak seribu karakter. membuat aplikasi warftp eror / chras. dari crass tersebut kita teliti menggunakan Tools Debugger. Oke kita kopikan template server FTP di bagian atas tadi :
bila sudah coba kita lakukan koneksi ke aplikasi warftp dengan port 21 dari NC apakah kita terkoneksi dengan dia atau tidak. lihat bagian terminal berikut ini :
Sip kita sudah terkoneksi. Keluar dengan perintah ctrl+C. dan kita coba jalankan fuzzernya . O iya, file yang kita buat tadi berbasis python. saya biasa menggunakan perintah "python namafuzzer.py". Tapi temen" bisa menggunakan yang lain, tidak mesti nurut seperti yang saya gunakan. Oke :)
Lihat baik-baik kita sudah mengirim fuzzer ke target (komputer lab) berupa data setan ke bagian user dan password. sekarang kita lihat bagian dari komputer lab ??
Mana aplikasi WarFTP ???
ternyata aplikasi Warftp Mati / Hilang. Trus kenapa mati aplikasi tersebut ketika kita masukkan fuzzer??
Oke mari kita sedikit jabarkan. pada bagian ini aplikasi fuzzer yang kita buat ternyata akan memasukkan data \x90 sebanyak 1000 kebagian user dan password. Sehingga membuat aplikasi tersebut hilang kendali dalam menangani manajemen memory. sehingga aplikasi tersebut crass dan mati.
untuk lebih meyakinkan kita cek menggunakan ollydbg. Sebuah aplikasi yang digunakan untuk melakukan pengecekan debugger untuk windows. untuk linux pun ada. nah sekarang kita akan mengecek debugger yang ada diaplikasi warFTP terlebih dahulu..
Ternyata dari situ kita bisa tau ternyata kita mengirimkan data A banyak dan akhirnya data A itu di eksekusi. namun memory tidak kuat menampung data sebanyak itu dan akahirnya aplikasi bunuh diri.
nah apabila script buffer = "\x90" * 1000 #banyak paket data yang dikirim kita ganti dengan scrit yang jahat dan bisa mengambil alih komputer misalnya waah tentu berbahaya sekali. dan mari kita coba menyisipkan PAYLOAD kesana. hehehe... (nyoba ga usah nanggung kan ^^ )
nah namun sebelum kita mencoba untuk memasukkan PAYLOAD kita harus tau dulu struktural cara kerja proses dari sebuah program tersebut didalam register. berikut adalah bagannya :
- Lab (SO windows)
- Tools Debuger (OlyDbg)
- Aplikasi WarFTP 1.56
- Komputer Me (disini saya menggunakan BT 5 R2 Gnome)
- Terminal
- Sedikit keberuntungan
- Kopi + Rokok (bila diperlukan hehehe...)
Jalankan Komputer Lab dan Komputer Me
Komputer Lab Komputer Me
Setelah kedua komputer berjalan, kita jalankan dulu warFTP di komputer lab
bila oke mari kita buat fuzzer :)
buka terminal lalu ketik "nano warFTP.py" seperti pada terminal dibawah ini. (saya menggunakan konsole, temen" bisa menggunakan yang lain seperti geany, kwrite, kate, vi, dll sesuka temen" sendiri mo gunain alat bantu editor seperti apa ga masalah)
Intinya disini didalam fuzzer kita akan mengirimkan data ke bagian user dan password sebanyak seribu karakter. membuat aplikasi warftp eror / chras. dari crass tersebut kita teliti menggunakan Tools Debugger. Oke kita kopikan template server FTP di bagian atas tadi :
Lihat baik-baik kita sudah mengirim fuzzer ke target (komputer lab) berupa data setan ke bagian user dan password. sekarang kita lihat bagian dari komputer lab ??
Mana aplikasi WarFTP ???
ternyata aplikasi Warftp Mati / Hilang. Trus kenapa mati aplikasi tersebut ketika kita masukkan fuzzer??
Oke mari kita sedikit jabarkan. pada bagian ini aplikasi fuzzer yang kita buat ternyata akan memasukkan data \x90 sebanyak 1000 kebagian user dan password. Sehingga membuat aplikasi tersebut hilang kendali dalam menangani manajemen memory. sehingga aplikasi tersebut crass dan mati.
untuk lebih meyakinkan kita cek menggunakan ollydbg. Sebuah aplikasi yang digunakan untuk melakukan pengecekan debugger untuk windows. untuk linux pun ada. nah sekarang kita akan mengecek debugger yang ada diaplikasi warFTP terlebih dahulu..
- Jalankan aplikasi OllyDbg
- Buka aplikasi WarFTP di dalam OllyDbg sampai status runing
- Jalankan fuzzer.
- Cek bagian OllyDbg mana yang error.
Ternyata dari situ kita bisa tau ternyata kita mengirimkan data A banyak dan akhirnya data A itu di eksekusi. namun memory tidak kuat menampung data sebanyak itu dan akahirnya aplikasi bunuh diri.
nah apabila script buffer = "\x90" * 1000 #banyak paket data yang dikirim kita ganti dengan scrit yang jahat dan bisa mengambil alih komputer misalnya waah tentu berbahaya sekali. dan mari kita coba menyisipkan PAYLOAD kesana. hehehe... (nyoba ga usah nanggung kan ^^ )
nah namun sebelum kita mencoba untuk memasukkan PAYLOAD kita harus tau dulu struktural cara kerja proses dari sebuah program tersebut didalam register. berikut adalah bagannya :