Virusanalytikere og forskere inden for computersikkerhed strĂŠber efter at samle sĂ„ mange prĂžver af nye botnets som muligt. De bruger honeypots til deres formĂ„l⊠Men hvad hvis man Ăžnsker at observere skadelig software under reelle betingelser? SĂŠtte sin server eller router i fare? Hvad hvis der ikke er nogen passende enhed? Netop disse spĂžrgsmĂ„l fĂžrte til oprettelsen af bhunter â et vĂŠrktĂžj til at fĂ„ adgang til botnet-noder.

Grunnleggende idé
Der findes mange mÄder at sprede skadelig software for at udvide botnets: fra phishing til udnyttelse af 0-day sÄrbarheder. Men den mest udbredte metode er stadig at brute force SSH-adgangskoder.
Ideen er meget enkel. Hvis der fra en node i botnettet foretages brute force angreb pÄ din server, er det sandsynligt, at denne node selv er blevet overtaget ved brute force angreb pÄ enkle adgangskoder. Derfor, for at fÄ adgang til den, skal man bare svare med "det samme".
SÄdan fungerer bhunter. Det lytter pÄ port 22 (SSH-tjenesten) og indsamler alle login og adgangskoder, som der forsÞges at oprette forbindelse med. Derefter, ved hjÊlp af de indsamlede adgangskoder, forsÞger det at oprette forbindelse til de angribende noder.
Algoritmen for arbejdsgang
Programmet kan groft opdeles i to hoveddele, som arbejder i separate trĂ„de. Den fĂžrste â honeypot. Den behandler loginforsĂžg, indsamler unikke login og adgangskoder (i dette tilfĂŠlde betragtes login+adgangskode som en enhed), samt tilfĂžjer IP-adresser, der har forsĂžgt at oprette forbindelse, til en kĂž til videre angreb.
Den anden del er direkte ansvarlig for angrebet. Angrebet udfĂžres i to tilstande: BurstAttack (angreb med kĂž) â brute force af login og adgangskoder fra en samlet liste og SingleShotAttack (angreb med enkelt skud) â brute force af adgangskoder, som blev brugt af den angrebne node, men som endnu ikke er blevet tilfĂžjet til den samlede liste.
For at have en nogenlunde database af login og adgangskoder lige efter opstarten, initialiseres bhunter med en liste fra filen /etc/bhunter/defaultLoginPairs.
Grensesnittet
Der er flere mÄder at starte bhunter pÄ:
Bare ved hjĂŠlp af kommandoen
sudo bhunterVed denne opstart er der mulighed for at styre bhunter gennem dens tekstmenu: tilfÞje login og adgangskoder til angreb, eksportere databasen med login og adgangskoder, angive mÄl for angrebet. Alle hackede noder kan ses i filen /var/log/bhunter/hacked.log
Bruke tmux
sudo bhunter-ts # kommando for Ă„ starte bhunter gjennom tmux
sudo tmux attach -t bhunter # kobler til sesjonen der bhunter kjĂžrer
Tmux er en terminalmultiplexer og et veldig nyttig verktĂžy. Den lar deg opprette flere vinduer innen ett terminalvindu, og vinduer kan deles opp i paneler. Med det kan du logge ut av terminalen og deretter logge inn igjen uten Ă„ stoppe kjĂžrende prosesser.
Skriptet bhunter-ts oppretter en tmux-Þkt og deler vinduet i tre paneler. I det stÞrste panelet finnes menyen. Det Þverste hÞyre panelet viser loggene fra honeypoten; her kan du se meldinger om innloggingsforsÞk pÄ honeypoten. I det nederste hÞyre panelet vises informasjon om angrep pÄ botnettets noder og om vellykkede brudd.
Fordelen med denne metoden fremfor den fÞrste er at vi trygt kan lukke terminalen og gÄ tilbake til den senere, samtidig som bhunter vil fortsette Ä kjÞre. For de som er lite kjent med tmux, foreslÄr jeg .
Som en tjeneste
systemctl enable bhunter
systemctl start bhunterI dette tilfellet aktiverer vi automatisk oppstart av bhunter ved systemstart. I denne metoden er det ikke noe samspill med bhunter, og listen over kompromitterte noder kan hentes fra /var/log/bhunter/hacked.log
Effektivitet
I lÞpet av arbeidet med bhunter har jeg klart Ä finne og fÄ tilgang til helt forskjellige enheter: raspberry pi, rutere (spesielt mikrotik), web-servere, og en gang en miningfarm (dessverre var tilgangen til den bare i lÞpet av en dag, sÄ det ble ikke en interessant historie). Her er et skjermbilde av programmet, hvor du kan se listen over kompromitterte noder etter flere dager med drift:

Dessverre nÄdde effektiviteten til dette verktÞyet ikke mine forventninger: bhunter kan bruke flere dager pÄ Ä kjÞre gjennom passord til noder uten resultat, men kan ogsÄ bryte seg inn pÄ flere mÄl pÄ bare noen timer. Men for regelmessig tilstrÞmning av nye botnet-typer er dette tilstrekkelig.
Effektiviteten pÄvirkes av faktorer som: landet hvor serveren med bhunter befinner seg, hosting og omrÄdet fra hvilket IP-adressen tildeles. I min erfaring var det et tilfelle der jeg leide to virtuelle servere fra en leverandÞr, og den ene ble utsatt for angrep fra botnett to ganger oftere.
Bugs jeg ikke har fikset ennÄ
Ved angrep pÄ infiserte noder er det i noen situasjoner vanskelig Ä avgjÞre om passordet var korrekt eller ikke. Logging av slike tilfeller skjer i filen /var/log/debug.log.
Paramiko-modulen, som brukes til Ä jobbe med SSH, oppfÞrer seg noen ganger unormalt: den gÄr i en uendelig ventetilstand pÄ svar fra noden nÄr den prÞver Ä koble seg til. Jeg har eksperimentert med tidtakere, men har ikke oppnÄdd Þnsket resultat.
Hva annet mÄ vi jobbe med?
Tjenestenavn
I henhold til RFC-4253 utveksler klient og server tjenestenavnene som implementerer SSH-protokollen fÞr oppsett. Dette navnet finnes i feltet «SERVICE NAME», som finnes bÄde i forespÞrselen fra klienten og i svaret fra serveren. Feltet er en streng, og verdien kan findes ved Ä bruke Wireshark eller Nmap. Her er et eksempel for 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
Men i tilfelle av Paramiko inneholder dette feltet en streng av typen «Paramiko Python sshd 2.4.2», noe som kan skremme botnett som er programmert til Ä «unngÄ» feller. Derfor mener jeg det er nÞdvendig Ä erstatte denne strengen med noe mer nÞytralt.
Andre vektorer
SSH er ikke det eneste middelet for fjernadministrasjon. Det finnes ogsÄ Telnet og RDP. Det kan vÊre verdt Ä ta en nÊrmere titt pÄ disse ogsÄ.
Utvidelse
Det ville vĂŠrt flott Ă„ ha flere feller i ulike land og sentralt samle inn brukernavn, passord og kompromitterte noder i en felles database.
Hvor kan jeg laste ned?
PĂ„ tidspunktet for skrivingen er det kun en testversjon tilgjengelig for nedlasting fra .
Kilde: habr.com
