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.
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
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:
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
Bron: will.com