Bhunter - meretas node botnet

Analis virus dan peneliti keamanan komputer berlomba mengumpulkan sebanyak mungkin sampel botnet baru. Mereka menggunakan honeypot untuk tujuan mereka sendiri... Namun bagaimana jika Anda ingin mengamati malware tersebut dalam kondisi nyata? Membuat server atau router Anda berisiko? Bagaimana jika tidak ada perangkat yang cocok? Pertanyaan-pertanyaan inilah yang mendorong saya untuk membuat bhunter, alat untuk mendapatkan akses ke node botnet.

Bhunter - meretas node botnet

ide sentral

Ada banyak cara menyebarkan malware untuk memperluas botnet: mulai dari phishing hingga mengeksploitasi kerentanan 0 hari. Namun metode yang paling umum masih berupa brute force password SSH.

Idenya sangat sederhana. Jika beberapa node botnet mencoba memaksa kata sandi untuk server Anda, kemungkinan besar node ini sendiri ditangkap oleh kata sandi sederhana yang dipaksakan secara brute force. Artinya untuk mendapatkan akses ke sana, Anda hanya perlu membalasnya.

Ini persisnya cara kerja bhunter. Mendengarkan port 22 (layanan SSH) dan mengumpulkan semua login dan kata sandi yang mereka coba sambungkan. Kemudian, dengan menggunakan kata sandi yang dikumpulkan, ia mencoba terhubung ke node penyerang.

Algoritma kerja

Program ini dapat dibagi menjadi 2 bagian utama, yang bekerja dalam thread terpisah. Yang pertama adalah honey pot. Memproses upaya login, mengumpulkan login dan kata sandi unik (dalam hal ini, pasangan login + kata sandi dianggap sebagai satu kesatuan), dan juga menambahkan alamat IP yang mencoba terhubung ke antrian untuk serangan lebih lanjut.

Bagian kedua bertanggung jawab langsung atas serangan tersebut. Selain itu, serangan dilakukan dalam dua mode: BurstAttack (serangan meledak) - login brute force dan kata sandi dari daftar umum dan SingleShotAttack (serangan tembakan tunggal) - kata sandi brute force yang digunakan oleh node yang diserang, tetapi belum digunakan ditambahkan ke daftar umum.

Untuk memiliki setidaknya beberapa database login dan kata sandi segera setelah peluncuran, bhunter diinisialisasi dengan daftar dari file /etc/bhunter/defaultLoginPairs.

Antarmuka.

Ada beberapa cara untuk meluncurkan bhunter:

Sama seperti sebuah tim

sudo bhunter

Dengan peluncuran ini, bhunter dapat dikontrol melalui menu teksnya: menambahkan login dan kata sandi untuk serangan, mengekspor database login dan kata sandi, menentukan target serangan. Semua node yang diretas dapat dilihat di file /var/log/bhunter/hacked.log

Menggunakan tmux

sudo bhunter-ts # ΠΊΠΎΠΌΠ°Π½Π΄Π° запуска bhunter Ρ‡Π΅Ρ€Π΅Π· tmux  
sudo tmux attach -t bhunter # ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡΡ ΠΊ сСссии, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°ΠΏΡƒΡ‰Π΅Π½ bhunter

Tmux adalah terminal multiplexer, alat yang sangat nyaman. Memungkinkan Anda membuat beberapa jendela dalam satu terminal, dan membagi jendela menjadi beberapa panel. Dengan menggunakannya, Anda dapat keluar dari terminal dan kemudian masuk tanpa mengganggu proses yang sedang berjalan.

Skrip bhunter-ts membuat sesi tmux dan membagi jendela menjadi tiga panel. Yang pertama, terbesar, berisi menu teks. Kanan atas berisi log honeypot, di sini Anda dapat melihat pesan tentang upaya masuk ke honeypot. Panel kanan bawah menampilkan informasi tentang kemajuan serangan terhadap node botnet dan peretasan yang berhasil.

Keuntungan metode ini dibandingkan metode pertama adalah kita dapat menutup terminal dengan aman dan kembali lagi nanti, tanpa bhunter menghentikan kerjanya. Bagi yang kurang familiar dengan tmux, saya sarankan lembar contekan ini.

Sebagai sebuah layanan

systemctl enable bhunter
systemctl start bhunter

Dalam hal ini, kami mengaktifkan bhunter autostart saat startup sistem. Dalam metode ini, interaksi dengan bhunter tidak disediakan, dan daftar node yang diretas dapat diperoleh dari /var/log/bhunter/hacked.log

Efektivitas

Saat mengerjakan bhunter, saya berhasil menemukan dan mendapatkan akses ke perangkat yang benar-benar berbeda: raspberry pi, router (terutama mikrotik), server web, dan pernah menjadi mining farm (sayangnya, akses ke sana siang hari, jadi tidak ada yang menarik cerita ). Berikut adalah tangkapan layar program, yang menampilkan daftar node yang diretas setelah beberapa hari bekerja:

Bhunter - meretas node botnet

Sayangnya, efektivitas alat ini tidak mencapai harapan saya: bhunter dapat mencoba kata sandi ke node selama beberapa hari tanpa hasil, dan dapat meretas beberapa target dalam beberapa jam. Tapi ini cukup untuk masuknya sampel botnet baru secara teratur.

Efektivitasnya dipengaruhi oleh parameter seperti: negara di mana server dengan bhunter berada, hosting, dan rentang alokasi alamat IP. Menurut pengalaman saya, ada kasus ketika saya menyewa dua server virtual dari satu hoster, dan salah satunya diserang botnet 2 kali lebih sering.

Bug yang belum saya perbaiki

Saat menyerang host yang terinfeksi, dalam beberapa situasi tidak mungkin untuk menentukan dengan pasti apakah kata sandinya benar atau tidak. Kasus seperti ini dicatat dalam file /var/log/debug.log.

Modul Paramiko, yang digunakan untuk bekerja dengan SSH, terkadang berperilaku tidak benar: modul ini terus-menerus menunggu respons dari host ketika mencoba menyambungkannya. Saya bereksperimen dengan pengatur waktu, tetapi tidak mendapatkan hasil yang diinginkan

Apa lagi yang perlu dikerjakan?

Nama layanan

Menurut RFC-4253, klien dan server bertukar nama layanan yang mengimplementasikan protokol SSH sebelum instalasi. Nama ini terdapat di kolom β€œNAMA LAYANAN”, yang terdapat dalam permintaan dari sisi klien dan respons dari sisi server. Bidangnya adalah string, dan nilainya dapat ditemukan menggunakan wireshark atau nmap. Berikut ini contoh untuk OpenSSH:

$ nmap -p 22 ***.**.***.** -sV
Starting Nmap ...
PORT   STATE SERVICE VERSION
22/tcp open  ssh     <b>OpenSSH 7.9p1 Debian 10+deb10u2</b> (protocol 2.0)
Nmap done: 1 IP address (1 host up) scanned in 0.47 seconds

Namun, dalam kasus Paramiko, bidang ini berisi string seperti β€œParamiko Python sshd 2.4.2”, yang dapat menakuti botnet yang dirancang untuk β€œmenghindari” jebakan. Oleh karena itu, menurut saya garis ini perlu diganti dengan sesuatu yang lebih netral.

Vektor lainnya

SSH bukan satu-satunya cara manajemen jarak jauh. Ada juga telnet, rdp. Ada baiknya untuk melihat mereka lebih dekat.

perpanjangan

Akan sangat bagus untuk memiliki beberapa jebakan di berbagai negara dan mengumpulkan login, kata sandi, dan node yang diretas secara terpusat ke dalam database umum.

Dimana saya bisa mendownload?

Pada saat penulisan, hanya versi uji yang siap, yang dapat diunduh repositori di Github.

Sumber: www.habr.com

Tambah komentar