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.
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
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:
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
Lähde: will.com