Bhunter – įsilaužimo botnet mazgai

Virusų analitikai ir kompiuterių saugumo tyrinėtojai lenktyniauja, kad surinktų kuo daugiau naujų robotų tinklų pavyzdžių. Medaus puodus jie naudoja savo reikmėms... Bet ką daryti, jei kenkėjišką programą norite stebėti realiomis sąlygomis? Pavojus serveriui ar maršruto parinktuvui? Ką daryti, jei nėra tinkamo įrenginio? Būtent šie klausimai paskatino mane sukurti „bhunter“ – įrankį prieigai prie „botnet“ mazgų.

Bhunter – įsilaužimo botnet mazgai

centrinė idėja

Yra daug būdų, kaip platinti kenkėjiškas programas, kad būtų išplėsti botnetai: nuo sukčiavimo iki 0 dienų pažeidžiamumų išnaudojimo. Tačiau labiausiai paplitęs metodas vis dar yra žiaurus SSH slaptažodžių naudojimas.

Idėja labai paprasta. Jei koks nors botneto mazgas bando priverstinai priverstinai panaudoti jūsų serverio slaptažodžius, greičiausiai šis mazgas buvo užfiksuotas naudojant žiauriai priverstinius paprastus slaptažodžius. Tai reiškia, kad norint prie jo prieiti, tereikia atsilyginti.

Būtent taip veikia bhunter. Klausosi 22 prievado (SSH paslauga) ir renka visus prisijungimo vardus ir slaptažodžius, kuriais bandoma prie jo prisijungti. Tada, naudodamas surinktus slaptažodžius, jis bando prisijungti prie atakuojančių mazgų.

Darbo algoritmas

Programą galima suskirstyti į 2 pagrindines dalis, kurios veikia atskiromis gijomis. Pirmasis yra medaus puodas. Apdoroja bandymus prisijungti, renka unikalius prisijungimo vardus ir slaptažodžius (šiuo atveju prisijungimo ir slaptažodžio pora laikoma viena visuma), taip pat prideda IP adresus, kurie bandė prisijungti prie tolimesnės atakos eilės.

Antroji dalis yra tiesiogiai atsakinga už ataką. Be to, ataka vykdoma dviem režimais: BurstAttack (burst ataka) - brutalios jėgos prisijungimai ir slaptažodžiai iš bendro sąrašo ir SingleShotAttack (vieno šūvio ataka) - brutalios jėgos slaptažodžiai, kuriuos naudojo užpultas mazgas, bet dar nebuvo. įtraukta į bendrą sąrašą.

Kad iš karto po paleidimo būtų bent šiek tiek prisijungimų ir slaptažodžių duomenų bazė, „bhunter“ inicijuojamas sąrašu iš failo /etc/bhunter/defaultLoginPairs.

sąsaja

Yra keli būdai paleisti „bhunter“:

Tiesiog kaip komanda

sudo bhunter

Su šiuo paleidimu galima valdyti „bhunter“ per jo tekstinį meniu: pridėti prisijungimo vardus ir slaptažodžius atakai, eksportuoti prisijungimų ir slaptažodžių duomenų bazę, nurodyti atakos tikslą. Visus nulaužtus mazgus galima pamatyti faile /var/log/bhunter/hacked.log

Naudojant tmux

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

Tmux yra terminalo multiplekseris, labai patogus įrankis. Leidžia sukurti kelis langus viename terminale ir padalinti langus į plokštes. Naudodami jį galite išeiti iš terminalo ir prisijungti nepertraukdami vykdomų procesų.

Bhunter-ts scenarijus sukuria tmux seansą ir padalija langą į tris skydelius. Pirmajame, didžiausiame, yra teksto meniu. Viršutiniame dešiniajame yra medaus puodo žurnalai, čia galite matyti pranešimus apie bandymus prisijungti prie medaus puodo. Apatiniame dešiniajame skydelyje rodoma informacija apie atakos prieš botnet mazgus eigą ir sėkmingus įsilaužimus.

Šio metodo pranašumas, palyginti su pirmuoju, yra tas, kad galime saugiai uždaryti terminalą ir grįžti į jį vėliau, nestabdant jo darbo. Mažai susipažinusiems su tmux siūlau šis sukčiavimo lapas.

Kaip paslauga

systemctl enable bhunter
systemctl start bhunter

Tokiu atveju įjungiame „bhunter“ automatinį paleidimą sistemos paleidimo metu. Taikant šį metodą sąveika su bhunter nepateikiama, o nulaužtų mazgų sąrašą galima gauti iš /var/log/bhunter/hacked.log

Veiksmingumas

Dirbant su bhunter pavyko rasti ir gauti prieigą prie visiškai skirtingų įrenginių: raspberry pi, maršrutizatorių (ypač mikrotik), žiniatinklio serverių, o kažkada buvo kasybos ferma (deja, prieiga prie jos buvo dienos metu, todėl įdomaus nebuvo istorija). Čia yra programos ekrano kopija, kurioje rodomas nulaužtų mazgų sąrašas po kelių dienų darbo:

Bhunter – įsilaužimo botnet mazgai

Deja, šio įrankio efektyvumas nepateisino mano lūkesčių: bhunter gali kelias dienas nesėkmingai bandyti slaptažodžius į mazgus, o per porą valandų gali nulaužti kelis taikinius. Tačiau to pakanka reguliariam naujų botneto pavyzdžių antplūdžiui.

Efektyvumui įtakos turi tokie parametrai kaip: šalis, kurioje yra serveris su bhunter, priegloba ir diapazonas, iš kurio skiriamas IP adresas. Mano patirtimi buvo toks atvejis, kai iš vieno serverio išsinuomojau du virtualius serverius ir vieną iš jų 2 kartus dažniau atakavo botnetai.

Klaidos, kurių dar nepataisiau

Atakuojant užkrėstus pagrindinius kompiuterius, kai kuriose situacijose neįmanoma vienareikšmiškai nustatyti, ar slaptažodis teisingas, ar ne. Tokie atvejai registruojami /var/log/debug.log faile.

Paramiko modulis, naudojamas darbui su SSH, kartais elgiasi neteisingai: be galo laukia atsakymo iš pagrindinio kompiuterio, kai bando prie jo prisijungti. Eksperimentavau su laikmačiais, bet negavau norimo rezultato

Prie ko dar reikia padirbėti?

Paslaugos pavadinimas

Pagal RFC-4253 klientas ir serveris keičiasi paslaugų, kurios įdiegia SSH protokolą, pavadinimais prieš diegiant. Šis pavadinimas yra lauke „SERVICE NAME“, kuris yra tiek kliento užklausoje, tiek atsakyme iš serverio pusės. Laukas yra eilutė, o jo reikšmę galima rasti naudojant wireshark arba nmap. Štai OpenSSH pavyzdys:

$ 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

Tačiau „Paramiko“ atveju šiame lauke yra tokia eilutė kaip „Paramiko Python sshd 2.4.2“, kuri gali atbaidyti robotų tinklus, skirtus „išvengti“ spąstų. Todėl manau, kad šią eilutę būtina pakeisti kažkuo neutralesniu.

Kiti vektoriai

SSH nėra vienintelė nuotolinio valdymo priemonė. Taip pat yra telnet, rdp. Verta į juos atidžiau pažvelgti.

pratęsimas

Būtų puiku turėti keletą spąstų skirtingose ​​šalyse ir centralizuotai rinkti iš jų prisijungimo vardus, slaptažodžius ir įsilaužtus mazgus į bendrą duomenų bazę

Kur galiu parsisiųsti?

Rašymo metu yra paruošta tik bandomoji versija, kurią galima atsisiųsti iš „Github“ saugykla.

Šaltinis: www.habr.com

Добавить комментарий