Cara Membangun FTP Password Sniffer Dengan Scapy Dan Python


FTP adalah protokol yang sangat penting. Ini tidak hanya penting bagi perusahaan besar, tetapi juga bagi para hacker. Jika hacker dapat memecahkan sandi server FTP, mereka dapat meng-upload file apapun yang mereka inginkan, termasuk muatan berkompromi server. Hari ini kita akan membangun sebuah sniffer password yang akan mengendus informasi login FTP seperti itu. Pertama, mari kita membahas bagaimana sniffer akan bekerja.

Bila menggunakan FTP biasa, kedua ujung komunikasi tidak menggunakan enkripsi apapun. Ini berarti bahwa setiap data yang dikirim antara mereka dapat dicegat dan dibaca dalam perjalanan. Sebagai hacker, kita dapat menonton informasi ini bolak-balik, dan kami dapat mendeteksi dan menangkap hasil login. Sekarang kita akan tahu bagaimana sniffer akan bekerja, mari kita ke kode!

Catatan:

Kami akan berusaha mendefinisikan beberapa fungsi untuk menggunakan mereka nanti, urutan di mana kita membuat fungsi ini agar mereka tidak mengambil tempat.

Langkah 1: Impor Modul dan Jalan Pengaturan Interpreter

Hal pertama yang kita harus lakukan adalah mengimpor modul diperlukan dan mengatur jalur interpreter. Jalan interpreter akan menandai file ini sebagai script python, dan modul berisi kode yang dibutuhkan untuk scanner. Mari kita lihat potongan ini:

Kita bisa melihat di sini bahwa kita telah menempatkan impor scapy dalam mencoba / kecuali blok. Hal ini dalam kasus pengguna tidak telah scapy diinstal pada komputer mereka. Kami juga telah menetapkan variabel dengan nilai argumen baris perintah pertama. Ini akan menjadi antarmuka penyerang ingin mengendus paket off. Kami juga telah membuat dua daftar, masing-masing dengan satu elemen. Ini akan berisi nama pengguna dan password yang kita cegat. Sekarang hal-hal ini telah ditetapkan, mari kita lanjutkan!

Langkah 2: Memeriksa untuk paket 230 Response

Kami akan memiliki beberapa fungsi untuk memeriksa paket kami, dan salah satu dari mereka akan mendeteksi log sukses. Kami akan memberi penamaan fungsi check_login ini (). Mari kita lihat fungsi ini sekarang:

Kita bisa melihat bahwa fungsi ini mengambil tiga argumen, paket untuk memeriksa, username, dan password. Pertama jika cek paket untuk melihat apakah mengandung string "230". 230 adalah kode respon untuk berhasil login. Jika kita mengendus respon 230 dari server, yang berarti bahwa nama pengguna terakhir dan password kita caputured adalah kredensial valid! Jika paket adalah 230, kami memberitahu pengguna bahwa kami menemukan identitasnya valid, dan sekarang mereka dalam format bersih.

Sekarang kita memiliki fungsi untuk memeriksa login valid, mari kita beralih ke langkah berikutnya dan membuat fungsi untuk memeriksa paket untuk FTP.

Langkah 3: Memeriksa untuk File Transfer Protocol

Ketika kita mengendus paket, kita akan melihat semua lalu lintas, bukan hanya FTP lalu lintas. Untuk menyingkirkan lalu lintas non-FTP, kita dapat membangun sebuah fungsi sederhana untuk memeriksa sifat FTP umum dan lulus pada paket yang memenuhi sifat-sifat ini. Mari kita lihat fungsi sederhana namun penting:

Fungsi ini sederhana. Hanya dibutuhkan satu argumen, paket untuk memeriksa. Pertama akan menguji header TCP dan header data mentah. Jika header ini hadir dalam paket kami, itu akan menyelidiki header TCP untuk melihat apakah baik sumber atau port tujuan adalah port 21. Ini adalah port dikaitkan dengan foto layanan FTP sisi server. Ini akan mengembalikan jika semua persyaratan terpenuhi, dan False bijak lainnya.

Sekarang kita memiliki fungsi untuk menyingkirkan semua lalu lintas non-FTP, mari kita beralih ke fungsi terakhir kami. Fungsi ini akan memeriksa username dan password, dan memanggil dua fungsi kami sebelumnya.

Langkah 4: Menangani Paket

Fungsi terakhir ini benar-benar akan menangani paket dan memberi mereka makan dalam fungsi kami yang lain. Kami akan memberi nama itu check_pkt (). Mari kita lihat fungsi akhir ini dan kemudian kita akan membedah:

Pertama, kita sebut check_for_ftp kami () fungsi dan lulus paket mengendus untuk itu. Jika hasilnya benar, fungsi terus, jika itu adalah palsu, fungsi berhenti menyelidiki paket.

Kemudian, ia akan mengekstrak data dari dalam header data mentah dan menetapkan ke variabel data. Kemudian memeriksa untuk string 'USER' dan 'LULUS' dalam data ini. Jika salah satu dari string ini hadir, itu akan membagi data dimanapun string terdeteksi, dan akan menambahkan elemen kedua dari daftar yang dihasilkan pada akhir nama pengguna atau sandi daftar. Alasan kita menggunakan split () adalah karena jalur () memiliki kebiasaan buruk pengupasan karakter keluar dari username dan password.

Jika paket tidak berisi baik username atau password, akan memanggil fungsi check_login () dan akan lulus paket, bersama dengan username dan password terakhir di daftar terakhir. Sekarang Kita memiliki fungsi akhir kita

Langkah 5: Mulai Sniffing

Sekarang kita benar-benar dapat mulai mengendus, mari kita cepat membedah potongan kode ini dan mulai mengendus:

Sebelum kita mulai mengendus, kami mencetak yang mengendus telah dimulai pada antarmuka yang ditentukan. Kami kemudian memanggil mengendus () fungsi scapy ini. Dalam fungsi kita tentukan antarmuka untuk mengendus, dan fungsi untuk lulus semua paket melalui (check_pkt kami () fungsi). Kami juga expicilty mengatakan tidak untuk menyimpan salah satu paket mengendus karena kita tidak akan membutuhkan mereka untuk apa pun.

Kami menempatkan fungsi mengendus () dalam mencoba / kecuali blok hanya dalam kasus itu gagal untuk memulai sniffing pada interface yang diberikan. Hal ini dapat disebabkan oleh pengguna memberikan antarmuka palsu. Setelah pengguna berhenti sniffing, kami mencetak sniffing telah berhenti. Di sana kami pergi, script kami ( Pastebin atau Null Byte Suite ) selesai, sekarang mari kita menguji itu!

Langkah 6: Uji It Out

Naskah bernama ftpsniffer.py, dan telah menggunakan chmod perintah untuk membuat executable. Skrub telah mengajukan diri untuk menjadi korban kami hari ini. Kami akan mengendus untuk login ke repositori FTP disebutkan dalam ini posting. Kami akan routing lalu lintas melalui sistem menyerang di tengah serangan.

Pertama, mari kita menginisialisasi sniffing dengan mengeksekusi script kami, saya akan mengendus off antarmuka nirkabel saya, wlan0:

Sekarang mari kita pindah ke mesin korban kami menjalankan windows 7 dan login ke server FTP:

Sekarang mari kita kembali ke mesin penyerang kami dan melihat apakah kita sudah menangkap mandat ini:

Ada yang kita miliki! Kami berhasil menangkap login dari vicitm! Mari kita membungkus ini?

Wrapping It Up

Di sana kami pergi. Dengan melewati paket mengendus melalui berbagai pemeriksaan header, dan penggalian data kunci ketika hadir, kami mampu mencegat kredensial login FTP!

Terima kasih telah membaca!

Comments

Popular Posts