Bhunter - hackovanie uzlov botnetu

Vírusoví analytici a výskumníci v oblasti počítačovej bezpečnosti sa pretekajú v zhromaždení čo najväčšieho počtu vzoriek nových botnetov. Používajú honeypoty na svoje vlastné účely... Ale čo ak chcete pozorovať malvér v reálnych podmienkach? Ohroziť váš server alebo smerovač? Čo ak neexistuje vhodné zariadenie? Práve tieto otázky ma podnietili k vytvoreniu bhunteru, nástroja na získanie prístupu k uzlom botnetu.

Bhunter - hackovanie uzlov botnetu

ústredné myšlienkou

Existuje mnoho spôsobov, ako šíriť malvér na rozšírenie botnetov: od phishingu až po zneužívanie 0-dňových zraniteľností. Najbežnejšou metódou je však stále hrubé vynútenie hesiel SSH.

Myšlienka je veľmi jednoduchá. Ak sa nejaký uzol botnetu pokúša hrubo vynútiť heslá pre váš server, s najväčšou pravdepodobnosťou bol tento uzol zachytený jednoduchými heslami. To znamená, že na to, aby ste k nemu získali prístup, vám to stačí oplatiť.

Presne tak funguje bhunter. Počúva port 22 (služba SSH) a zhromažďuje všetky prihlasovacie údaje a heslá, pomocou ktorých sa k nemu pokúša pripojiť. Potom sa pomocou zozbieraných hesiel pokúša spojiť s útočiacimi uzlami.

Algoritmus práce

Program je možné rozdeliť na 2 hlavné časti, ktoré pracujú v samostatných vláknach. Prvým je honeypot. Spracúva pokusy o prihlásenie, zhromažďuje jedinečné prihlasovacie údaje a heslá (v tomto prípade sa pár prihlasovacie meno + heslo považuje za jeden celok) a tiež pridáva adresy IP, ktoré sa pokúšali pripojiť do fronty na ďalší útok.

Druhá časť je priamo zodpovedná za útok. Útok sa navyše vykonáva v dvoch režimoch: BurstAttack (nárazový útok) – prihlasovacie údaje a heslá hrubou silou zo všeobecného zoznamu a SingleShotAttack (útok jedným výstrelom) – heslá hrubou silou, ktoré napadnutý uzol použil, ale ešte neboli použité. pridané do všeobecného zoznamu.

Aby sme mali hneď po spustení aspoň nejakú databázu prihlasovacích údajov a hesiel, bhunter sa inicializuje zoznamom zo súboru /etc/bhunter/defaultLoginPairs.

rozhranie

Existuje niekoľko spôsobov, ako spustiť bhunter:

Len ako tím

sudo bhunter

S týmto spustením je možné ovládať bhunter prostredníctvom jeho textového menu: pridávať prihlasovacie mená a heslá pre útok, exportovať databázu prihlasovacích údajov a hesiel, špecifikovať cieľ útoku. Všetky hacknuté uzly je možné vidieť v súbore /var/log/bhunter/hacked.log

Pomocou tmux

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

Tmux je terminálový multiplexer, veľmi pohodlný nástroj. Umožňuje vytvoriť niekoľko okien v rámci jedného terminálu a rozdeliť okná na panely. Pomocou neho môžete ukončiť terminál a následne sa prihlásiť bez prerušenia spustených procesov.

Skript bhunter-ts vytvorí reláciu tmux a rozdelí okno na tri panely. Prvá, najväčšia, obsahuje textové menu. Vpravo hore sú záznamy o honeypotoch, tu môžete vidieť správy o pokusoch o prihlásenie do honeypotu. V pravom dolnom paneli sa zobrazujú informácie o priebehu útoku na uzly botnetu a o úspešných hackoch.

Výhodou tejto metódy oproti prvej je, že môžeme terminál bezpečne zavrieť a vrátiť sa k nemu neskôr bez toho, aby bhunter zastavil svoju prácu. Pre tých, ktorí sú málo oboznámení s tmux, odporúčam tento cheat sheet.

Ako služba

systemctl enable bhunter
systemctl start bhunter

V tomto prípade povolíme automatické spustenie bhunter pri štarte systému. Pri tejto metóde nie je k dispozícii interakcia s bhunterom a zoznam napadnutých uzlov je možné získať z /var/log/bhunter/hacked.log

účinnosť

Pri práci na bhunter sa mi podarilo nájsť a získať prístup k úplne iným zariadeniam: raspberry pi, routerom (najmä mikrotik), webovým serverom a kedysi ťažobnej farme (bohužiaľ prístup k nej bol cez deň, takže tam nebolo nič zaujímavé príbeh). Tu je snímka obrazovky programu, ktorá zobrazuje zoznam napadnutých uzlov po niekoľkých dňoch práce:

Bhunter - hackovanie uzlov botnetu

Bohužiaľ, efektivita tohto nástroja nesplnila moje očakávania: bhunter dokáže bez úspechu skúšať heslá do uzlov niekoľko dní a dokáže hacknúť niekoľko cieľov za pár hodín. Ale to stačí na pravidelný prílev nových vzoriek botnetov.

Efektívnosť ovplyvňujú parametre ako: krajina, v ktorej sa server s bhunter nachádza, hosting a rozsah, z ktorého je prideľovaná IP adresa. Z mojej skúsenosti sa stal prípad, keď som si prenajal dva virtuálne servery od jedného hostiteľa a jeden z nich bol napadnutý botnetmi 2-krát častejšie.

Chyby, ktoré som ešte neopravil

Pri napadnutí infikovaných hostiteľov nie je v niektorých situáciách možné jednoznačne určiť, či je heslo správne alebo nie. Takéto prípady sa zaznamenávajú do súboru /var/log/debug.log.

Modul Paramiko, ktorý sa používa na prácu s SSH, sa niekedy správa nesprávne: nekonečne čaká na odpoveď od hostiteľa, keď sa k nemu pokúša pripojiť. Experimentoval som s časovačmi, ale nedosiahol som požadovaný výsledok

Na čom ešte treba popracovať?

Názov služby

Podľa RFC-4253 si klient a server pred inštaláciou vymenia názvy služieb, ktoré implementujú protokol SSH. Tento názov je obsiahnutý v poli „SERVICE NAME“ v požiadavke zo strany klienta aj v odpovedi zo strany servera. Pole je reťazec a jeho hodnotu možno nájsť pomocou wireshark alebo nmap. Tu je príklad pre 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

V prípade Paramiko však toto pole obsahuje reťazec ako „Paramiko Python sshd 2.4.2“, ktorý môže vystrašiť botnety, ktoré sú navrhnuté tak, aby sa „vyhýbali“ pasciam. Preto si myslím, že je potrebné tento rad nahradiť niečím neutrálnejším.

Iné vektory

SSH nie je jediným prostriedkom vzdialenej správy. Existuje aj telnet, rdp. Stojí za to sa na ne pozrieť bližšie.

predĺženie

Bolo by skvelé mať niekoľko pascí v rôznych krajinách a centrálne z nich zhromažďovať prihlasovacie mená, heslá a hacknuté uzly do spoločnej databázy

Kde môžem stiahnuť?

V čase písania tohto článku je pripravená iba testovacia verzia, ktorú je možné stiahnuť úložisko na Github.

Zdroj: hab.com

Pridať komentár