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.
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
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:
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ő
Forrás: will.com