Bhunter - piratarea nodurilor botnetului

Analiștii de viruși și cercetătorii în securitatea computerelor se întrec pentru a colecta cât mai multe mostre de noi botnet-uri. Ei folosesc honeypots în scopuri proprii... Dar dacă doriți să observați malware-ul în condiții reale? Vă puneți serverul sau routerul în pericol? Ce se întâmplă dacă nu există un dispozitiv potrivit? Aceste întrebări m-au determinat să creez bhunter, un instrument pentru a obține acces la nodurile botnet.

Bhunter - piratarea nodurilor botnetului

idee centrală

Există multe modalități de a răspândi malware pentru a extinde rețelele bot: de la phishing la exploatarea vulnerabilităților de 0 zile. Dar cea mai comună metodă este încă forțarea brută a parolelor SSH.

Ideea este foarte simplă. Dacă un nod de botnet încearcă să forțeze parole brute pentru serverul dvs., atunci cel mai probabil acest nod în sine a fost capturat de parole simple cu forțare brută. Aceasta înseamnă că, pentru a avea acces la el, trebuie doar să răspunzi.

Exact așa funcționează bhunter. Ascultă portul 22 (serviciu SSH) și colectează toate login-urile și parolele cu care încearcă să se conecteze la el. Apoi, folosind parolele colectate, încearcă să se conecteze la nodurile atacatoare.

Algoritm de lucru

Programul poate fi împărțit în 2 părți principale, care funcționează în fire separate. Primul este honeypot. Procesează încercările de autentificare, colectează date de conectare și parole unice (în acest caz, perechea autentificare + parolă este considerată ca un întreg) și adaugă, de asemenea, adrese IP care au încercat să se conecteze la coadă pentru un atac suplimentar.

A doua parte este direct responsabilă pentru atac. Mai mult, atacul se desfășoară în două moduri: BurstAttack (atac în rafală) - login-uri și parole de forță brută din lista generală și SingleShotAttack (atac cu o singură lovitură) - parole de forță brută care au fost folosite de nodul atacat, dar nu au fost încă adăugat la lista generală.

Pentru a avea cel puțin o bază de date de autentificare și parole imediat după lansare, bhunter este inițializat cu o listă din fișierul /etc/bhunter/defaultLoginPairs.

interfață

Există mai multe moduri de a lansa bhunter:

Doar ca o echipă

sudo bhunter

Cu această lansare, este posibil să controlați bhunter prin meniul său text: adăugați autentificări și parole pentru un atac, exportați o bază de date de autentificări și parole, specificați o țintă pentru un atac. Toate nodurile piratate pot fi văzute în fișierul /var/log/bhunter/hacked.log

Folosind tmux

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

Tmux este un multiplexor terminal, un instrument foarte convenabil. Vă permite să creați mai multe ferestre într-un singur terminal și să împărțiți ferestrele în panouri. Folosind-o, puteți ieși din terminal și apoi vă puteți autentifica fără a întrerupe procesele care rulează.

Scriptul bhunter-ts creează o sesiune tmux și împarte fereastra în trei panouri. Primul, cel mai mare, conține un meniu text. Cel din dreapta sus conține jurnale de honeypot, aici puteți vedea mesaje despre încercările de a vă conecta la honeypot. Panoul din dreapta jos afișează informații despre progresul atacului asupra nodurilor de botnet și despre hack-uri reușite.

Avantajul acestei metode față de prima este că putem închide terminalul în siguranță și revenim la el mai târziu, fără ca bhunter să-și oprească activitatea. Pentru cei care sunt puțin familiarizați cu tmux, le sugerez această foaie de cheat.

Ca serviciu

systemctl enable bhunter
systemctl start bhunter

În acest caz, activăm bhunter autostart la pornirea sistemului. În această metodă, interacțiunea cu bhunter nu este furnizată, iar lista nodurilor piratate poate fi obținută din /var/log/bhunter/hacked.log

eficacitate

În timp ce lucram la bhunter, am reușit să găsesc și să obțin acces la dispozitive complet diferite: raspberry pi, routere (în special mikrotik), servere web și, cândva, o fermă minieră (din păcate, accesul la ea era în timpul zilei, așa că nu era nimic interesant. poveste ). Iată o captură de ecran a programului, care arată o listă de noduri piratate după câteva zile de lucru:

Bhunter - piratarea nodurilor botnetului

Din păcate, eficiența acestui instrument nu a atins așteptările mele: bhunter poate încerca parole la noduri timp de câteva zile fără succes și poate sparge mai multe ținte în câteva ore. Dar acest lucru este suficient pentru un aflux regulat de noi mostre de rețele botnet.

Eficacitatea este influențată de parametri precum: țara în care se află serverul cu bhunter, găzduirea și intervalul din care este alocată adresa IP. Din experiența mea, a existat un caz când am închiriat două servere virtuale de la un hoster, iar unul dintre ele a fost atacat de botnet-uri de 2 ori mai des.

Bug-uri pe care nu le-am remediat încă

Când se atacă gazdele infectate, în unele situații nu este posibil să se determine fără ambiguitate dacă parola este corectă sau nu. Astfel de cazuri sunt înregistrate în fișierul /var/log/debug.log.

Modulul Paramiko, care este folosit pentru a lucra cu SSH, uneori se comportă incorect: așteaptă la nesfârșit un răspuns de la gazdă atunci când încearcă să se conecteze la acesta. Am experimentat cu cronometre, dar nu am obținut rezultatul dorit

La ce mai trebuie lucrat?

Numele serviciului

Conform RFC-4253, clientul și serverul schimbă numele serviciilor care implementează protocolul SSH înainte de instalare. Acest nume este conținut în câmpul „NUMELE SERVICIULUI”, conținut atât în ​​cererea din partea clientului, cât și în răspunsul din partea serverului. Câmpul este un șir, iar valoarea acestuia poate fi găsită folosind wireshark sau nmap. Iată un exemplu pentru 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

Cu toate acestea, în cazul lui Paramiko, acest câmp conține un șir precum „Paramiko Python sshd 2.4.2”, care poate speria rețelele bot care sunt concepute pentru a „evita” capcanele. Prin urmare, cred că este necesar să înlocuim această linie cu ceva mai neutru.

Alți vectori

SSH nu este singurul mijloc de management de la distanță. Există și telnet, rdp. Merită să le aruncăm o privire mai atentă.

extensie

Ar fi grozav să aveți mai multe capcane în diferite țări și să colectați la nivel central date de conectare, parole și noduri piratate de la ele într-o bază de date comună

Unde pot descărca?

În momentul scrierii, este gata doar o versiune de test, care poate fi descărcată de pe depozit pe Github.

Sursa: www.habr.com

Adauga un comentariu