Bhunter - bottiverkkosolmujen hakkerointi

Virusanalyytikot ja tietoturvatutkijat kilpailevat kerätäkseen mahdollisimman monia näytteitä uusista botnet-verkoista. He käyttävät honeypotteja omiin tarkoituksiinsa... Mutta entä jos haluat tarkkailla haittaohjelmia todellisissa olosuhteissa? Vaarana palvelimesi tai reitittimesi? Entä jos sopivaa laitetta ei ole? Nämä kysymykset saivat minut luomaan bhunterin, työkalun, jolla pääsen käsiksi botnet-solmuihin.

Bhunter - bottiverkkosolmujen hakkerointi

keskeinen ajatus

On monia tapoja levittää haittaohjelmia bottiverkkojen laajentamiseksi: tietojenkalastelusta 0 päivän haavoittuvuuksien hyödyntämiseen. Mutta yleisin menetelmä on edelleen raa'a pakottaminen SSH-salasanoihin.

Idea on hyvin yksinkertainen. Jos jokin botnet-solmu yrittää pakottaa salasanoja palvelimellesi, luultavasti tämä solmu on vangittu raa'alla pakottamalla yksinkertaisilla salasanoilla. Tämä tarkoittaa, että saadaksesi pääsyn siihen, sinun on vain vastattava.

Juuri näin bhunter toimii. Kuuntelee porttia 22 (SSH-palvelu) ja kerää kaikki kirjautumistunnukset ja salasanat, joilla he yrittävät muodostaa yhteyden siihen. Sitten se yrittää muodostaa yhteyden hyökkääviin solmuihin kerättyjen salasanojen avulla.

Työn algoritmi

Ohjelma voidaan jakaa kahteen pääosaan, jotka toimivat erillisissä säikeissä. Ensimmäinen on hunajaruukku. Käsittelee kirjautumisyritykset, kerää yksilöllisiä kirjautumistunnuksia ja salasanoja (tässä tapauksessa kirjautumistunnus ja salasana -paria pidetään yhtenä kokonaisuutena) ja lisää myös IP-osoitteet, jotka yrittivät muodostaa yhteyden jonoon myöhempää hyökkäystä varten.

Toinen osa on suoraan vastuussa hyökkäyksestä. Lisäksi hyökkäys suoritetaan kahdessa tilassa: BurstAttack (purskehyökkäys) - brute force -kirjautumistunnukset ja salasanat yleisestä luettelosta ja SingleShotAttack (yksittäinen hyökkäys) - brute force -salasanat, joita hyökätty solmu käytti, mutta joita ei ole vielä käytetty lisätty yleiseen listaan.

Jotta kirjautumistunnuksista ja salasanoista olisi ainakin osa tietokannasta heti käynnistämisen jälkeen, bhunter alustetaan luettelolla tiedostosta /etc/bhunter/defaultLoginPairs.

liitäntä

On olemassa useita tapoja käynnistää bhunter:

Ihan joukkueena

sudo bhunter

Tämän julkaisun avulla on mahdollista ohjata bhunteria sen tekstivalikon kautta: lisätä kirjautumistunnuksia ja salasanoja hyökkäystä varten, viedä kirjautumistunnusten ja salasanojen tietokanta, määrittää hyökkäyksen kohde. Kaikki hakkeroidut solmut näkyvät tiedostossa /var/log/bhunter/hacked.log

Käyttämällä tmux

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

Tmux on terminaalimultiplekseri, erittäin kätevä työkalu. Voit luoda useita ikkunoita yhteen terminaaliin ja jakaa ikkunat paneeleiksi. Sen avulla voit poistua päätteestä ja kirjautua sitten sisään keskeyttämättä käynnissä olevia prosesseja.

Bhunter-ts-skripti luo tmux-istunnon ja jakaa ikkunan kolmeen paneeliin. Ensimmäinen, suurin, sisältää tekstivalikon. Oikeassa yläkulmassa on honeypot-lokit, josta näet viestejä yrityksistä kirjautua sisään honeypottiin. Oikeassa alakulmassa näkyvät tiedot botnet-solmuihin kohdistuvan hyökkäyksen edistymisestä ja onnistuneista hakkeroista.

Tämän menetelmän etuna ensimmäiseen verrattuna on, että voimme turvallisesti sulkea terminaalin ja palata siihen myöhemmin ilman, että bhunter pysäyttää sen toimintaa. Niille, jotka ovat vähän perehtyneet tmuxiin, suosittelen tämä huijauslehti.

Palveluna

systemctl enable bhunter
systemctl start bhunter

Tässä tapauksessa otamme käyttöön bhunterin automaattisen käynnistyksen järjestelmän käynnistyksen yhteydessä. Tässä menetelmässä vuorovaikutusta bhunterin kanssa ei tarjota, ja hakkeroitujen solmujen luettelo löytyy osoitteesta /var/log/bhunter/hacked.log

tehokkuuden

Bhunterin parissa työskennellessäni onnistuin löytämään ja pääsemään käsiksi täysin erilaisiin laitteisiin: Raspberry pi, reitittimet (erityisesti mikrotik), web-palvelimet ja kerran kaivostila (valitettavasti pääsy siihen oli päivällä, joten mielenkiintoista ei ollut). tarina). Tässä on kuvakaappaus ohjelmasta, joka näyttää luettelon hakkeroiduista solmuista useiden työpäivien jälkeen:

Bhunter - bottiverkkosolmujen hakkerointi

Valitettavasti tämän työkalun tehokkuus ei vastannut odotuksiani: bhunter voi yrittää salasanoja solmuille useiden päivien ajan tuloksetta ja voi hakkeroida useita kohteita muutamassa tunnissa. Mutta tämä riittää uusien botnet-näytteiden säännölliseen virtaan.

Tehokkuuteen vaikuttavat sellaiset parametrit kuin: maa, jossa bhunterin sisältävä palvelin sijaitsee, isäntä ja alue, josta IP-osoite on allokoitu. Kokemukseni mukaan vuokrasin kaksi virtuaalipalvelinta yhdeltä isännöitsijältä, ja yksi niistä joutui bottiverkkojen hyökkäykseen 2 kertaa useammin.

Bugeja, joita en ole vielä korjannut

Tartunnan saaneita isäntiä vastaan ​​hyökätessä joissain tilanteissa ei ole mahdollista yksiselitteisesti määrittää, onko salasana oikea vai ei. Tällaiset tapaukset kirjataan /var/log/debug.log-tiedostoon.

SSH:n kanssa työskentelevä Paramiko-moduuli käyttäytyy joskus väärin: se odottaa loputtomasti vastausta isännältä, kun se yrittää muodostaa yhteyden siihen. Kokeilin ajastimia, mutta en saanut toivottua tulosta

Mitä muuta pitää työstää?

Palvelun nimi

RFC-4253:n mukaan asiakas ja palvelin vaihtavat SSH-protokollan toteuttavien palveluiden nimet ennen asennusta. Tämä nimi on "PALVELUN NIMI" -kentässä, joka sisältyy sekä asiakaspuolen pyyntöön että palvelinpuolen vastaukseen. Kenttä on merkkijono, ja sen arvo löytyy wireshark- tai nmap-komennolla. Tässä esimerkki OpenSSH:sta:

$ 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

Paramikon tapauksessa tämä kenttä sisältää kuitenkin merkkijonon, kuten "Paramiko Python sshd 2.4.2", joka voi pelotella botnet-verkkoja, jotka on suunniteltu "välttämään" ansoja. Siksi mielestäni on välttämätöntä korvata tämä rivi jollain neutraalemmalla.

Muut vektorit

SSH ei ole ainoa etähallinnan keino. Siellä on myös telnet, rdp. Kannattaa tutustua niihin tarkemmin.

laajentaminen

Olisi hienoa saada useita ansoja eri maissa ja kerätä niistä keskitetysti kirjautumistunnukset, salasanat ja hakkeroidut solmut yhteiseen tietokantaan

Mistä voin ladata?

Kirjoitushetkellä vain testiversio on valmis, jonka voi ladata osoitteesta arkisto Githubissa.

Lähde: will.com

Lisää kommentti