Bhunter - hacking af botnet noder

Virusanalytikere og computersikkerhedsforskere ræser om at indsamle så mange prøver af nye botnets som muligt. De bruger honeypots til deres egne formål... Men hvad nu hvis du vil observere malwaren under virkelige forhold? Vil du sætte din server eller router i fare? Hvad hvis der ikke er en passende enhed? Det var disse spørgsmål, der fik mig til at oprette bhunter, et værktøj til at få adgang til botnet noder.

Bhunter - hacking af botnet noder

centrale idé

Der er mange måder at sprede malware for at udvide botnets: fra phishing til udnyttelse af 0-dages sårbarheder. Men den mest almindelige metode er stadig brute-forcing SSH-adgangskoder.

Ideen er meget enkel. Hvis en botnet-node forsøger at brute-force adgangskoder til din server, så er denne node højst sandsynligt fanget af brute-force simple passwords. Det betyder, at for at få adgang til det, skal du blot gøre gengæld.

Det er præcis sådan bhunter fungerer. Lytter til port 22 (SSH-tjeneste) og samler alle logins og adgangskoder, som de forsøger at oprette forbindelse til den med. Derefter, ved hjælp af de indsamlede adgangskoder, forsøger den at oprette forbindelse til angribende noder.

Arbejdsalgoritme

Programmet kan opdeles i 2 hoveddele, som fungerer i separate tråde. Den første er honningpotte. Behandler loginforsøg, indsamler unikke logins og adgangskoder (i dette tilfælde betragtes login + adgangskodeparret som en enkelt helhed), og tilføjer også IP-adresser, der forsøgte at oprette forbindelse til køen for yderligere angreb.

Den anden del er direkte ansvarlig for angrebet. Desuden udføres angrebet i to tilstande: BurstAttack (burst attack) - brute force logins og adgangskoder fra den generelle liste og SingleShotAttack (single shot attack) - brute force adgangskoder, der blev brugt af den angrebne node, men som endnu ikke er blevet brugt tilføjet til den generelle liste.

For i det mindste at have en database med logins og adgangskoder umiddelbart efter lanceringen, initialiseres bhunter med en liste fra filen /etc/bhunter/defaultLoginPairs.

grænseflade

Der er flere måder at starte bhunter på:

Bare som et hold

sudo bhunter

Med denne lancering er det muligt at styre bhunter gennem dens tekstmenu: Tilføj logins og adgangskoder til et angreb, eksporter en database med logins og adgangskoder, angiv et mål for et angreb. Alle hackede noder kan ses i filen /var/log/bhunter/hacked.log

Bruger tmux

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

Tmux er en terminal multiplexer, et meget praktisk værktøj. Giver dig mulighed for at oprette flere vinduer inden for en terminal og opdele vinduerne i paneler. Ved at bruge det kan du afslutte terminalen og derefter logge på uden at afbryde kørende processer.

bhunter-ts-scriptet opretter en tmux-session og opdeler vinduet i tre paneler. Den første, største, indeholder en tekstmenu. Øverst til højre indeholder honeypot logs, her kan du se beskeder om forsøg på at logge ind i honeypot. Det nederste højre panel viser information om angrebets fremskridt på botnet-noder og om vellykkede hacks.

Fordelen ved denne metode i forhold til den første er, at vi sikkert kan lukke terminalen og vende tilbage til den senere, uden at bhunter stopper sit arbejde. For dem, der er lidt bekendt med tmux, foreslår jeg dette snydeark.

Som en service

systemctl enable bhunter
systemctl start bhunter

I dette tilfælde aktiverer vi bhunter autostart ved systemstart. I denne metode er interaktion med bhunter ikke tilvejebragt, og listen over hackede noder kan hentes fra /var/log/bhunter/hacked.log

effektivitet

Mens jeg arbejdede på bhunter, lykkedes det mig at finde og få adgang til helt andre enheder: raspberry pi, routere (især mikrotik), webservere og en gang en minefarm (desværre var adgang til den i løbet af dagen, så der var ikke noget interessant historie). Her er et skærmbillede af programmet, som viser en liste over hackede noder efter flere dages arbejde:

Bhunter - hacking af botnet noder

Desværre nåede effektiviteten af ​​dette værktøj ikke op til mine forventninger: bhunter kan prøve adgangskoder til noder i flere dage uden held og kan hacke flere mål på et par timer. Men dette er nok til en regelmæssig tilstrømning af nye botnet-prøver.

Effektiviteten er påvirket af sådanne parametre som: det land, hvor serveren med bhunter er placeret, hosting og det område, hvorfra IP-adressen er tildelt. Efter min erfaring var der et tilfælde, hvor jeg lejede to virtuelle servere fra en hoster, og en af ​​dem blev angrebet af botnets 2 gange oftere.

Fejl, som jeg ikke har rettet endnu

Ved angreb på inficerede værter er det i nogle situationer ikke muligt entydigt at afgøre, om adgangskoden er korrekt eller ej. Sådanne tilfælde logges i filen /var/log/debug.log.

Paramiko-modulet, som bruges til at arbejde med SSH, opfører sig nogle gange forkert: det venter uendeligt på et svar fra værten, når det forsøger at oprette forbindelse til det. Jeg eksperimenterede med timere, men fik ikke det ønskede resultat

Hvad skal der ellers arbejdes med?

Servicenavn

Ifølge RFC-4253 udveksler klienten og serveren navne på tjenester, der implementerer SSH-protokollen før installation. Dette navn er indeholdt i feltet "SERVICE NAME", indeholdt både i anmodningen fra klientsiden og i svaret fra serversiden. Feltet er en streng, og dets værdi kan findes ved hjælp af 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 tilfældet med Paramiko indeholder dette felt en streng som "Paramiko Python sshd 2.4.2", som kan skræmme botnets, der er designet til at "undgå" fælder. Derfor synes jeg, det er nødvendigt at erstatte denne linje med noget mere neutralt.

Andre vektorer

SSH er ikke det eneste middel til fjernstyring. Der er også telnet, rdp. Det er værd at se nærmere på dem.

udvidelse

Det ville være fantastisk at have flere fælder i forskellige lande og centralt samle logins, adgangskoder og hackede noder fra dem til en fælles database

Hvor kan jeg downloade?

I skrivende stund er der kun en testversion klar, som kan downloades fra repository på Github.

Kilde: www.habr.com

Tilføj en kommentar