Bhunter - hakiranje botnet čvorova

Analitičari virusa i istraživači računalne sigurnosti utrkuju se u prikupljanju što više uzoraka novih botneta. Oni koriste honeypots za svoje potrebe... Ali što ako želite promatrati malware u stvarnim uvjetima? Ugroziti vaš poslužitelj ili usmjerivač? Što ako nema odgovarajućeg uređaja? Upravo su me ta pitanja potaknula da napravim bhunter, alat za dobivanje pristupa botnet čvorovima.

Bhunter - hakiranje botnet čvorova

središnja ideja

Postoji mnogo načina za širenje zlonamjernog softvera za proširenje botneta: od krađe identiteta do iskorištavanja 0-dnevnih ranjivosti. Ali najčešća metoda još uvijek je grubo forsiranje SSH lozinki.

Ideja je vrlo jednostavna. Ako neki botnet čvor pokušava brutalno forsirati lozinke za vaš poslužitelj, onda je najvjerojatnije ovaj čvor sam zarobljen brutalnim forsiranjem jednostavnih lozinki. To znači da da biste mu pristupili, samo trebate uzvratiti istom mjerom.

Upravo tako radi bhunter. Sluša port 22 (SSH servis) i prikuplja sve prijave i lozinke s kojima se pokušavaju spojiti na njega. Zatim se pomoću prikupljenih lozinki pokušava spojiti na napadačke čvorove.

Algoritam rada

Program se može podijeliti u 2 glavna dijela, koji rade u zasebnim nitima. Prvi je honeypot. Obrađuje pokušaje prijave, prikuplja jedinstvene prijave i lozinke (u ovom slučaju par prijava + lozinka smatra se jednom cjelinom), a također dodaje IP adrese koje su se pokušale spojiti u red čekanja za daljnji napad.

Drugi dio je izravno odgovoran za napad. Štoviše, napad se provodi u dva načina: BurstAttack (rafalni napad) - brute force prijave i lozinke s opće liste i SingleShotAttack (single shot napad) - brute force lozinke koje je koristio napadnuti čvor, ali još nisu dodan na opći popis.

Kako bi imao barem neku bazu podataka za prijavu i lozinku odmah nakon pokretanja, bhunter se inicijalizira s popisom iz datoteke /etc/bhunter/defaultLoginPairs.

sučelje

Postoji nekoliko načina za pokretanje bhuntera:

Samo kao tim

sudo bhunter

S ovim pokretanjem, moguće je kontrolirati bhunter putem njegovog tekstualnog izbornika: dodati prijave i lozinke za napad, izvesti bazu podataka za prijave i lozinke, odrediti metu za napad. Svi hakirani čvorovi mogu se vidjeti u datoteci /var/log/bhunter/hacked.log

Korištenje tmuxa

sudo bhunter-ts # команда запуска bhunter через tmux  
sudo tmux attach -t bhunter # подключаемся к сессии, в которой запущен bhunter

Tmux je terminalski multiplekser, vrlo praktičan alat. Omogućuje stvaranje nekoliko prozora unutar jednog terminala i podjelu prozora u panele. Pomoću njega možete izaći iz terminala i zatim se prijaviti bez prekidanja pokrenutih procesa.

Skripta bhunter-ts stvara tmux sesiju i dijeli prozor na tri panela. Prvi, najveći, sadrži tekstualni izbornik. Gornji desni sadrži zapise honeypota, ovdje možete vidjeti poruke o pokušajima prijave u honeypot. Donja desna ploča prikazuje informacije o tijeku napada na botnet čvorove i o uspješnim hakiranju.

Prednost ove metode u odnosu na prvu je što možemo sigurno zatvoriti terminal i vratiti mu se kasnije, a da bhunter ne zaustavi njegov rad. Za one koji su malo upoznati s tmuxom, predlažem ova varalica.

Kao usluga

systemctl enable bhunter
systemctl start bhunter

U ovom slučaju, omogućujemo automatsko pokretanje bhuntera pri pokretanju sustava. U ovoj metodi nije omogućena interakcija s bhunterom, a popis hakiranih čvorova može se dobiti iz /var/log/bhunter/hacked.log

efikasnost

Dok sam radio na bhunteru, uspio sam pronaći i dobiti pristup potpuno drugim uređajima: raspberry pi, ruterima (posebno mikrotiku), web serverima i jednom farmi za rudarenje (nažalost, pristup joj je bio danju, pa nije bilo zanimljivih priča ). Evo snimke zaslona programa koja prikazuje popis hakiranih čvorova nakon nekoliko dana rada:

Bhunter - hakiranje botnet čvorova

Nažalost, učinkovitost ovog alata nije dostigla moja očekivanja: bhunter može bezuspješno isprobavati lozinke za čvorove nekoliko dana i može hakirati nekoliko ciljeva u nekoliko sati. Ali to je dovoljno za redoviti priljev novih uzoraka botneta.

Na učinkovitost utječu parametri kao što su: država u kojoj se nalazi poslužitelj s bhunterom, hosting i raspon iz kojeg se dodjeljuje IP adresa. Po mom iskustvu, bio je slučaj kada sam unajmio dva virtualna poslužitelja od jednog hostera, a jedan od njih bio je napadnut od strane botneta 2 puta češće.

Greške koje još nisam ispravio

Prilikom napada na zaražene hostove u nekim situacijama nije moguće jednoznačno utvrditi je li lozinka ispravna ili ne. Takvi se slučajevi bilježe u datoteku /var/log/debug.log.

Modul Paramiko, koji se koristi za rad sa SSH-om, ponekad se ponaša neispravno: beskrajno čeka odgovor od glavnog računala kada se pokuša spojiti na njega. Eksperimentirao sam s mjeračima vremena, ali nisam dobio željeni rezultat

Na čemu još treba poraditi?

Naziv usluge

Prema RFC-4253, klijent i poslužitelj razmjenjuju imena usluga koje implementiraju SSH protokol prije instalacije. Ovo ime je sadržano u polju "SERVICE NAME", sadržano iu zahtjevu sa strane klijenta i u odgovoru sa strane poslužitelja. Polje je string, a njegova se vrijednost može pronaći pomoću wiresharka ili nmapa. Evo primjera za 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

Međutim, u slučaju Paramiko-a, ovo polje sadrži niz poput "Paramiko Python sshd 2.4.2", koji može prestrašiti botnetove koji su dizajnirani da "izbjegnu" zamke. Stoga smatram da je ovu liniju potrebno zamijeniti nečim neutralnijim.

Ostali vektori

SSH nije jedino sredstvo daljinskog upravljanja. Tu je i telnet, rdp. Vrijedi ih pomnije pogledati.

nastavak

Bilo bi sjajno imati nekoliko zamki u različitim zemljama i centralno prikupljati prijave, lozinke i hakirane čvorove iz njih u zajedničku bazu podataka

Gdje mogu preuzeti?

U trenutku pisanja teksta spremna je samo testna verzija koju je moguće preuzeti s repozitorij na Githubu.

Izvor: www.habr.com

Dodajte komentar