ViirusanalĂŒĂŒtikud ja kĂŒberohtude uurijad pĂŒĂŒavad koguda vĂ”imalikult palju uusi botivĂ”rkude nĂ€idiseid. Oma eesmĂ€rkide nimel kasutavad nad honeypoti... Aga mis siis, kui soovid jĂ€lgida pahavara reaalses keskkonnas? Soovida oma serverit vĂ”i ruuterit ohtu seada? Ja mis siis, kui sobivat seadet pole? Need kĂŒsimused ajendasid mind looma bhunteri â tööriista, et pÀÀseda botivĂ”rkude sĂ”lmedesse.

PÔhimÔte
On mitmeid viise pahavara levimiseks botivÔrkude laiendamiseks: alates phishing'ust kuni 0-day haavatavuste Àra kasutamiseni. Kuid endiselt on kÔige levinum meetod paroolide jÀrjestamine SSH-le.
Idee on vÀga lihtne. Kui mÔnest botivÔrgust tehdakse teie serverile paroolide jÀrjekord, siis on tÔenÀoliselt see sÔlm ise olnud vÀljakutse kaudu hÔivatud lihtsate paroolidega. Seega, et sellele juurde pÀÀseda, tuleb lihtsalt vastata talle "vastastikku".
Just nii toimib bhunter. Ta kuuleb 22. porti (SSH teenus) ja kogub kĂ”ik logiinid ja paroolid, millega ĂŒritatakse tema poole ĂŒhendust luua. SeejĂ€rel proovib ta kogutud paroole kasutada rĂŒndavate sĂ”lmede ĂŒhendamiseks.
Töö algoritm
Programmi vĂ”ib tinglikult jagada kaheks pĂ”hiosaks, mis töötavad eraldi voogudes. Esimene - honeypot. Töötleb sisselogimise katseid, kogub unikaalseid logi ja paroolide kombinatsioone (antud juhul loetakse logi ja parooli paar ĂŒhiseks), samuti lisab jĂ€rjekorda IP-aadresse, mis ĂŒritasid ĂŒhendust luua, et neid hiljem rĂŒnnata.
Teine osa vastutab otse rĂŒnnaku eest. RĂŒnnak toimub kahel reĆŸiimil: BurstAttack (jĂ€rjekorra rĂŒnnak) â logiinide ja paroolide proovimine ĂŒhest loendist ning SingleShotAttack (ĂŒhe lasku rĂŒnnak) â paroolide proovimine, mida on kasutanud rĂŒnnatav sĂ”lm, kuid mis pole veel ĂŒldisesse loendisse lisatud.
Kuna pÀrast kÀivitamist on oluline omada mingit logiinide ja paroolide baasi, initsialiseeritakse bhunter failist /etc/bhunter/defaultLoginPairs.
Liides
Bhunteri kÀivitamiseks on ette nÀhtud mitmeid viise:
Lihtsalt kÀsuga
sudo bhunterSelle kĂ€ivitamisega on vĂ”imalik hallata bhunterâit selle tekstimenĂŒĂŒ kaudu: lisada sisse logimisi ja paroole rĂŒnnaku jaoks, eksportida sisse logimise ja paroolide baasi, mÀÀrata rĂŒnnaku sihtmĂ€rk. KĂ”iki hĂ€kitud sĂ”lmi saab nĂ€hafailis /var/log/bhunter/hacked.log
Kasuta tmux
sudo bhunter-ts # kÀsk bhunter kÀivitamiseks lÀbi tmux
sudo tmux attach -t bhunter # liitume sessiooniga, kus bhunter jookseb
Tmux on terminali multiplexer, vĂ€ga mugav tööriist. See vĂ”imaldab ĂŒhes terminalis luua mitu akent ja jagada aknad paneelideks. Selle kasutamisel saab terminalist lahkuda ja hiljem tagasi tulla katkemata jooksvaid protsesse.
Skript bhunter-ts loob tmux seansi ja jagab akna kolmeks paneeliks. Esimeses - kĂ”ige suuremas, on tekstimenĂŒĂŒ. Ălemises paremas paneelis on honeypoti logid, kus saab nĂ€ha sissetuleku katsete teateid honeypot'i. Alumises paremas paneelis kuvatakse teavet rĂŒnnaku kĂ€igus olevate botivĂ”rkude sĂ”lmede ja eduka hĂ€kkimise kohta.
Selle meetodi eelis esimesega vÔrreldes on see, et saame terminali julgelt sulgeda ja hiljem tagasi tulla, samal ajal kui bhunter ei peata oma tööd. Neile, kes ei tunne tmux'it hÀsti, soovitan .
Teenuse vorm
systemctl enable bhunter
systemctl start bhunterAntud juhul aktiveerime bhunteri automaatse kĂ€ivitamise sĂŒsteemi kĂ€ivitamisel. Selles meetodis ei ole ettenĂ€htud interaktsiooni bhunteriga, kuid hĂ€kitud sĂ”lmede nimekirja saab saada failist /var/log/bhunter/hacked.log
TÔhusus
Bhunteriga töötamise ajal Ă”nnestus mul leida ja juurde pÀÀseda tĂ€iesti erinevatele seadmetele: raspberry pi, ruuteritele (eriti mikrotik), veebi-serveritele, ja ĂŒhel pĂ€eval ka kaevandamisfarmile (kahjuks oli pÀÀs sellele pĂ€eva jooksul, seega huvitavat lugu ei tulnud). Siin on ekraanipilt programmist, kus on nĂ€ha hĂ€kitud sĂ”lmede loetelu pĂ€rast mitmeid tööpĂ€evi:

Kahjuks ei saavutanud antud tööriista efektiivsus minu ootusi: bhunter suudab proovida paroole sÔlmedele mitu pÀeva tulemusteta, vÔi vÔib hÀkkida mitu sihtmÀrki paari tunni jooksul. Kuid regulaarseks uute botivÔrkude proovide saamiseks on see piisav.
TĂ”hususele mĂ”jutavad sellised parameetrid nagu: riik, kus server bhunter asub, hostimine ja IP-aadressi vahemik. Minu kogemuse jĂ€rgi oli juhtum, kus rentisin kaks virtuaalserverit ĂŒhelt hostijalt, ja ĂŒks neist oli botivĂ”rkude rĂŒnnakute sihtmĂ€rk kahel korral sagedamini.
Vead, mida ma veel ei ole parandanud
RĂŒnnaku ajal nakatunud sĂ”lmedele ei pruugi teatud olukordades olla selge, kas parool sobib vĂ”i mitte. Selliste juhtumite logimine toimub failis /var/log/debug.log.
Paramiko moodul, mida kasutatakse SSH-ga töötamiseks, kĂ€itub mĂ”nikord valesti: see jÀÀb ootama nĂ€dalatega vastust sĂ”lmelt, kui pĂŒĂŒab sellele ĂŒhendust luua. Olen katsetanud taimeritega, kuid mingit soovitud tulemust ei saanud.
Millega veel tuleb tööd teha?
Teenuse nimi
Vastavalt RFC-4253 vahetavad klient ja server enne ĂŒhenduse loomist teenuste nimesid, mis implementeerivad SSH protokolli. See nimi sisaldub vĂ€ljases "SERVICE NAME", mis on nii kliendi pĂ€ringus kui ka serveri vastuses. See vĂ€li on string ja selle vÀÀrtust saab teada, kasutades wiresharki vĂ”i nmapi. Siin on nĂ€ide OpenSSH jaoks:
$ nmap -p 22 ***.**.***.** -sV
Nmap käivitamine ...
PORT OLEK TEENUS VERSIOON
22/tcp avatud ssh <b>OpenSSH 7.9p1 Debian 10+deb10u2</b> (protokoll 2.0)
Nmap lõpetatud: 1 IP-aadress (1 host on üleval) skaneeritud 0.47 sekundiga
Kuid Paramiku puhul sisaldab see vĂ€li stringi, mis nĂ€eb vĂ€lja nagu "Paramiko Python sshd 2.4.2", mis vĂ”ib hirmutada botivĂ”rke, kus on loodud "pĂŒĂŒniste vĂ€ltimise" mehhanism. SeetĂ”ttu arvan, et on vajalik muuta see string midagi neutraalsemat.
Teised vektored
SSH ei ole ainus kaugjuhtimise vahend. Veel on telnet, rdp. Tuleks tÀhelepanu pöörata ka neile.
Laien
Oleks suurepĂ€rane omada mitu lĂ”ksu erinevates riikides ja tsentraliseeritult koguda neist logi, paroolid ja rikutud sĂ”lmed ĂŒhte andmebaasi.
Kus alla laadida?
Artikli kirjutamise hetkel on valmis ainult testversioon, mille saab alla laadida .
Allikas: habr.com
