Bhunter - inbraak botnet nodusse

Virusontleders en rekenaarsekuriteitsnavorsers jaag om soveel monsters van nuwe botnets as moontlik te versamel. Hulle gebruik heuningpotte vir hul eie doeleindes... Maar wat as jy die wanware in werklike omstandighede wil waarneem? Stel u bediener of router in gevaar? Wat as daar geen geskikte toestel is nie? Dit was hierdie vrae wat my aangespoor het om bhunter te skep, 'n instrument om toegang tot botnet-nodusse te verkry.

Bhunter - inbraak botnet nodusse

sentrale idee

Daar is baie maniere om wanware te versprei om botnets uit te brei: van uitvissing tot die uitbuiting van 0-dag kwesbaarhede. Maar die mees algemene metode is steeds brute-dwingende SSH-wagwoorde.

Die idee is baie eenvoudig. As een of ander botnet-nodus probeer om wagwoorde vir jou bediener brute-force te maak, dan is hierdie node heel waarskynlik self vasgevang deur brute-forseer eenvoudige wagwoorde. Dit beteken dat om toegang daartoe te verkry, jy net moet wederkerig.

Dit is presies hoe bhunter werk. Luister na poort 22 (SSH-diens) en versamel alle aanmeldings en wagwoorde waarmee hulle probeer koppel daaraan. Dan, met behulp van die versamelde wagwoorde, probeer dit om aan aanvallende nodusse te koppel.

Werkalgoritme

Die program kan in 2 hoofdele verdeel word, wat in aparte drade werk. Die eerste is heuningpot. Verwerk aanmeldpogings, versamel unieke aanmeldings en wagwoorde (in hierdie geval word die aanmelding + wagwoord-paar as 'n enkele geheel beskou), en voeg ook IP-adresse by wat probeer het om aan die tou te koppel vir verdere aanval.

Die tweede deel is direk verantwoordelik vir die aanval. Boonop word die aanval in twee modusse uitgevoer: BurstAttack (burst attack) - brute force logins en wagwoorde vanaf die algemene lys en SingleShotAttack (enkel skoot aanval) - brute force wagwoorde wat deur die aangeval nodus gebruik is, maar nog nie is nie by die algemene lys gevoeg.

Om ten minste 'n databasis van aanmeldings en wagwoorde onmiddellik na bekendstelling te hê, word bhunter geïnisialiseer met 'n lys van die lêer /etc/bhunter/defaultLoginPairs.

koppelvlak

Daar is verskeie maniere om bhunter te begin:

Net as 'n span

sudo bhunter

Met hierdie bekendstelling is dit moontlik om bhunter deur sy tekskieslys te beheer: voeg aanmeldings en wagwoorde by vir 'n aanval, voer 'n databasis van aanmeldings en wagwoorde uit, spesifiseer 'n teiken vir 'n aanval. Alle gekapte nodusse kan in die lêer /var/log/bhunter/hacked.log gesien word

Gebruik tmux

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

Tmux is 'n terminale multiplekser, 'n baie gerieflike hulpmiddel. Laat jou toe om verskeie vensters binne een terminaal te skep en die vensters in panele te verdeel. Deur dit te gebruik, kan jy die terminale verlaat en dan aanmeld sonder om lopende prosesse te onderbreek.

Die bhunter-ts-skrip skep 'n tmux-sessie en verdeel die venster in drie panele. Die eerste, grootste, bevat 'n tekskieslys. Regs bo bevat heuningpotlogs, hier kan jy boodskappe sien oor pogings om by die heuningpot aan te meld. Die onderste regterkantste paneel vertoon inligting oor die vordering van die aanval op botnet-nodusse en oor suksesvolle hacks.

Die voordeel van hierdie metode bo die eerste is dat ons die terminaal veilig kan sluit en later daarna kan terugkeer, sonder dat bhunter sy werk stop. Vir diegene wat min vertroud is met tmux, stel ek voor hierdie cheat sheet.

As 'n diens

systemctl enable bhunter
systemctl start bhunter

In hierdie geval aktiveer ons bhunter-outobegin by die opstart van die stelsel. In hierdie metode word interaksie met bhunter nie verskaf nie, en die lys van gekapte nodusse kan verkry word vanaf /var/log/bhunter/hacked.log

effektiwiteit

Terwyl ek aan bhunter gewerk het, het ek daarin geslaag om heeltemal verskillende toestelle te vind en toegang te verkry: raspberry pi, routers (veral mikrotik), webbedieners, en een keer 'n mynplaas (ongelukkig was toegang daartoe gedurende die dag, so daar was geen interessante storie). Hier is 'n skermkiekie van die program, wat 'n lys gekapte nodusse toon na 'n paar dae se werk:

Bhunter - inbraak botnet nodusse

Ongelukkig het die doeltreffendheid van hierdie instrument nie aan my verwagtinge voldoen nie: bhunter kan wagwoorde na nodusse vir 'n paar dae sonder sukses probeer, en kan verskeie teikens binne 'n paar uur hack. Maar dit is genoeg vir 'n gereelde invloei van nuwe botnet-monsters.

Die doeltreffendheid word beïnvloed deur parameters soos: die land waarin die bediener met bhunter geleë is, hosting en die reeks waaruit die IP-adres toegeken word. In my ervaring was daar 'n geval toe ek twee virtuele bedieners van een gasheer gehuur het, en een van hulle is 2 keer meer gereeld deur botnets aangeval.

Foute wat ek nog nie reggemaak het nie

Wanneer besmette gashere aangeval word, is dit in sommige situasies nie moontlik om ondubbelsinnig te bepaal of die wagwoord korrek is of nie. Sulke gevalle word aangeteken in die /var/log/debug.log lêer.

Die Paramiko-module, wat gebruik word om met SSH te werk, tree soms verkeerd op: dit wag eindeloos vir 'n reaksie van die gasheer wanneer dit probeer om daaraan te koppel. Ek het met timers geëksperimenteer, maar het nie die gewenste resultaat gekry nie

Waaraan moet nog gewerk word?

Diensnaam

Volgens RFC-4253 ruil die kliënt en bediener die name van dienste wat die SSH-protokol implementeer voor installasie. Hierdie naam is vervat in die "SERVICE NAME" veld, vervat in beide die versoek van die kliënt kant en in die antwoord van die bediener kant. Die veld is 'n string, en die waarde daarvan kan gevind word deur gebruik te maak van wireshark of nmap. Hier is 'n voorbeeld vir 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

In die geval van Paramiko bevat hierdie veld egter 'n string soos "Paramiko Python sshd 2.4.2", wat botnets kan afskrik wat ontwerp is om lokvalle te "vermy". Daarom dink ek dit is nodig om hierdie lyn met iets meer neutraal te vervang.

Ander vektore

SSH is nie die enigste manier van afstandbestuur nie. Daar is ook telnet, rdp. Dit is die moeite werd om hulle van nader te bekyk.

uitbreiding

Dit sal wonderlik wees om verskeie lokvalle in verskillende lande te hê en logins, wagwoorde en gekapte nodusse sentraal daaruit in 'n gemeenskaplike databasis te versamel

Waar kan ek aflaai?

Met die skryf hiervan is slegs 'n toetsweergawe gereed, wat afgelaai kan word vanaf bewaarplek op Github.

Bron: will.com

Voeg 'n opmerking