Bhunter – botnet csomópontok feltörése

Víruselemzők és számítógépes biztonsági kutatók versenyeznek, hogy minél több mintát gyűjtsenek az új botnetekből. Saját céljaikra használják a honeypotokat... De mi van, ha valós körülmények között szeretné megfigyelni a kártevőt? Veszélybe teszi szerverét vagy útválasztóját? Mi van, ha nincs megfelelő eszköz? Ezek a kérdések késztettek arra, hogy létrehozzam a bhuntert, egy eszközt a botnet csomópontokhoz való hozzáféréshez.

Bhunter – botnet csomópontok feltörése

központi gondolata

A rosszindulatú programok terjesztésének számos módja van a botnetek bővítése érdekében: az adathalászattól a 0 napos sebezhetőségek kihasználásáig. De a legelterjedtebb módszer továbbra is az SSH-jelszavak durva kényszerítése.

Az ötlet nagyon egyszerű. Ha néhány botnet-csomópont megpróbálja kikényszeríteni a kiszolgáló jelszavait, akkor valószínűleg ezt a csomópontot magát a durva kényszerítő egyszerű jelszavakat ragadták meg. Ez azt jelenti, hogy ahhoz, hogy hozzáférhessen, csak viszonoznia kell.

A bhunter pontosan így működik. Figyeli a 22-es portot (SSH szolgáltatás), és összegyűjti az összes bejelentkezési nevet és jelszót, amellyel megpróbál csatlakozni hozzá. Ezután az összegyűjtött jelszavak segítségével megpróbál csatlakozni a támadó csomópontokhoz.

A munka algoritmusa

A program 2 fő részre osztható, amelyek külön szálban működnek. Az első a mézesedény. Feldolgozza a bejelentkezési kísérleteket, összegyűjti az egyedi bejelentkezési adatokat és jelszavakat (ebben az esetben a bejelentkezés + jelszó párost egyetlen egésznek tekintjük), és hozzáadja azokat az IP-címeket is, amelyek megpróbáltak csatlakozni a sorhoz további támadás céljából.

A második rész közvetlenül felelős a támadásért. Ezenkívül a támadást két módban hajtják végre: BurstAttack (burst támadás) - brute force bejelentkezési adatok és jelszavak az általános listáról és SingleShotAttack (egylövéses támadás) - brute force jelszavak, amelyeket a támadott csomópont használt, de még nem használtak. felkerült az általános listára.

Annak érdekében, hogy az indítás után azonnal rendelkezzen a bejelentkezési adatokból és jelszavakból álló adatbázissal, a bhunter inicializálása az /etc/bhunter/defaultLoginPairs fájlból származó listával történik.

felület

A bhunter elindításának többféle módja van:

Csak mint egy csapat

sudo bhunter

Ezzel az indítással lehetséges a bhunter vezérlése a szöveges menüjén keresztül: bejelentkezési nevek és jelszavak hozzáadása a támadásokhoz, bejelentkezési adatok és jelszavak adatbázisának exportálása, támadás célpontjának megadása. Az összes feltört csomópont a /var/log/bhunter/hacked.log fájlban látható

tmux használatával

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

A Tmux egy terminál multiplexer, egy nagyon kényelmes eszköz. Lehetővé teszi több ablak létrehozását egy terminálon belül, és az ablakok panelekre bontását. Használatával a futó folyamatok megszakítása nélkül kiléphet a terminálból, majd bejelentkezhet.

A bhunter-ts szkript létrehoz egy tmux munkamenetet, és három panelre osztja az ablakot. Az első, a legnagyobb, szöveges menüt tartalmaz. A jobb felső sarokban a honeypot naplók találhatók, itt láthatja a honeypotba való belépési kísérletekről szóló üzeneteket. A jobb alsó panel információkat jelenít meg a botnet csomópontjai elleni támadás előrehaladásáról és a sikeres feltörésekről.

Ennek a módszernek az az előnye az elsőhöz képest, hogy biztonságosan bezárhatjuk a terminált, és később visszatérhetünk hozzá anélkül, hogy a bhunter leállítaná a munkáját. Aki keveset ismeri a tmux-ot, annak ajánlom ezt a csalólapot.

Szolgáltatásként

systemctl enable bhunter
systemctl start bhunter

Ebben az esetben engedélyezzük a bhunter automatikus indítást a rendszer indításakor. Ebben a módszerben nincs lehetőség interakcióra a bhunterrel, és a feltört csomópontok listája a /var/log/bhunter/hacked.log fájlból érhető el.

hatékonyság

A bhunteren dolgozva sikerült teljesen más eszközöket találnom és hozzáférnem: Raspberry pi, routerek (főleg mikrotik), webszerverek és egyszer egy bányafarm (sajnos nappal volt a hozzáférés, így nem volt érdekes sztori ). Íme egy képernyőkép a programról, amely a több napos munka után feltört csomópontok listáját mutatja:

Bhunter – botnet csomópontok feltörése

Sajnos ennek az eszköznek a hatékonysága nem érte el az elvárásaimat: a bhunter több napig is sikertelenül próbálkozhat a jelszavakkal a csomópontokon, és néhány óra alatt több célpontot is feltörhet. Ez azonban elegendő az új botnet minták rendszeres beáramlásához.

A hatékonyságot olyan paraméterek befolyásolják, mint: az ország, ahol a bhunterrel rendelkező szerver található, a tárhely, valamint az IP-cím kiosztásának tartománya. Tapasztalataim szerint volt olyan eset, amikor két virtuális szervert béreltem egy hostertől, és az egyiket kétszer gyakrabban támadták meg a botnetek.

Hibák, amiket még nem javítottam ki

A fertőzött gazdagépek támadásakor bizonyos helyzetekben nem lehet egyértelműen megállapítani, hogy a jelszó helyes-e vagy sem. Az ilyen eseteket a /var/log/debug.log fájl naplózza.

Az SSH-val együttműködő Paramiko modul időnként hibásan viselkedik: vég nélkül vár választ a gazdagéptől, amikor megpróbál csatlakozni hozzá. Kísérleteztem időzítőkkel, de nem kaptam meg a kívánt eredményt

Min kell még dolgozni?

Szolgáltatás neve

Az RFC-4253 szerint a kliens és a kiszolgáló felcseréli az SSH protokollt megvalósító szolgáltatások nevét a telepítés előtt. Ez a név a „SZOLGÁLTATÁS NEVE” mezőben található, mind az ügyféloldali kérésben, mind a szerveroldali válaszban. A mező egy karakterlánc, és értéke a wireshark vagy az nmap segítségével található meg. Íme egy példa az OpenSSH-ra:

$ 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

A Paramiko esetében azonban ez a mező olyan karakterláncot tartalmaz, mint a „Paramiko Python sshd 2.4.2”, amely elriaszthatja azokat a botneteket, amelyek célja a csapdák „elkerülése”. Ezért úgy gondolom, hogy ezt a sort valami semlegesebbre kell cserélni.

Egyéb vektorok

Az SSH nem az egyetlen módja a távoli felügyeletnek. Van még telnet, rdp. Érdemes közelebbről is szemügyre venni őket.

kiterjesztés

Jó lenne, ha több csapda lenne különböző országokban, és központilag gyűjtenénk belőlük a bejelentkezési adatokat, jelszavakat és a feltört csomópontokat egy közös adatbázisba

Hol tölthetem le?

A cikk írásakor még csak egy tesztverzió áll készen, amely innen letölthető adattár a Githubon.

Forrás: will.com

Hozzászólás