Analistët dhe kërkuesit e sigurisë kompjuterike po përpiqen të grumbullojnë sa më shumë mostra të botnetëve të rinj. Ata përdorin honeypots për qëllimet e tyre.… Por çfarë nëse dëshiron të vëzhgosh një malware në kushte reale? Të ekspozosh serverin tënd, routerin? Çfarë nëse nuk ke një pajisje të tillë? Pikërisht këto pyetje më çuan në krijimin e bhunter — një mjet për të aksesuar nyjat e rrjeteve botërore.

Ideja kryesore
Ekzistojnë shumë metoda për të shpërndarë malware për të zgjeruar botnetët: duke filluar nga phishing-u dhe duke përfunduar në eksploatimin e vulnerabiliteteve 0-day. Por metoda më e zakonshme ende mbetet thyerja me fjalëkalim të SSH.
Ideja është shumë e thjeshtë. Nëse nga një nyje e botnetit po kryhet thyerja e fjalëkalimeve për serverin tuaj, ka të ngjarë që ajo nyje vetë është kapur nga një thyerje e fjalëkalimeve të thjeshta. Kështu që, për të fituar qasje te ajo, thjesht duhet t'i përgjigjesh me "ndihmë".
Kështu funksionon bhunter. Përcjell portin 22 (shërbimi SSH) dhe mbledh të gjitha logat dhe fjalëkalimet me të cilat përpiqen të lidhin. Pastaj, duke përdorur fjalëkalimet e mbledhura, përpiqet të lidhet me nyjat sulmuese.
Algoritmi i funksionimit
Programi mund të ndahet në dy pjesë kryesore, të cilat funksionojnë në rrjedha të veçanta. E para — honeypot. Trajton përpjekjet për hyrje, mbledh logat dhe fjalëkalimet unike (në këtë rast, çifti login+fjalëkalim konsiderohet si njënjësi), si dhe shton në radhë për sulm IP adresat që përpiqen të lidhin.
Pjesa e dytë përgjigjet direkt për sulmin. Sulmi kryhet në dy mënyra: BurstAttack (sulm me radhë) — provimi i logave dhe fjalëkalimeve nga një listë e përgjithshme dhe SingleShotAttack (sulm me goditje të vetme) — provimi i fjalëkalimeve që janë përdorur nga nyja e sulmuar, por nuk janë shtuar ende në listën e përgjithshme.
Për të pasur të paktën një bazë logash dhe fjalëkalimesh menjëherë pas aktivizimit, bhunter inicializohet me një listë nga skedari /etc/bhunter/defaultLoginPairs.
Interfaci
Janë parashikuar disa mënyra për të aktivizuar bhunter:
Thjesht me komandën
sudo bhunterMe ndihmën e këtij nisjeje, kemi mundësinë të menaxhojmë bhunter-in përmes menusë së tij tekstuale: të shtojmë login dhe fjalëkalime për sulm, të eksportojmë bazën e login dhe fjalëkalime, dhe të specifikojmë një objektiv për sulmin. Të gjitha nodet e hackuara mund të shihen në skedarin /var/log/bhunter/hacked.log
Duke përdorur tmux
sudo bhunter-ts # komanda për të nisur bhunter përmes tmux
sudo tmux attach -t bhunter # lidhemi me seancën ku është nisur bhunter
Tmux është një shumë-përdorues terminologjik, një instrument shumë i dobishëm. Lejon të krijoni disa dritare brenda një terminali dhe të ndajeni dritaret në panelet. Përmes tij, mund të dilni nga terminali dhe më pas të riktheheni pa ndaluar proceset e nisura.
Skripti bhunter-ts krijon një seancë tmux dhe ndan dritaren në tri panelet. Në të parën — që është më e madhe, ndodhet menuja tekstuale. E sipërmja e djathtë përmban log-jet e honeypot-it, ku mund të shikoni mesazhet për përpjekjet e kyçjes në honeypot. Në panelin e poshtëm të djathtë jepet informacioni mbi përparimin e sulmit në nodet e rrjeteve bot dhe për ndërhyrjet e suksesshme.
Avantazhi i këtij mënyre krahasuar me të parën është që mund të mbyllim pa frikë terminalin dhe të kthehemi më vonë, duke vazhduar punën e bhunter. Për ata që nuk janë shumë të njohur me tmux, ju rekomandoj .
Si një shërbim
systemctl enable bhunter
systemctl start bhunterNë këtë rast, ne aktivizojmë nisjen automatik të bhunter në startimin e sistemit. Në këtë metodë, ndërveprimi me bhunter nuk parashikohet, ndërsa lista e nodëve të thyer mund të merret nga /var/log/bhunter/hacked.log
Efikasiteti.
Gjatë punës time me bhunter, kam arritur të gjej dhe marr akses në pajisje të ndryshme: raspberry pi, ruterë (veçanërisht mikrotik), serverë web, dhe një herë një fermë për minimit (fatkeqësisht, aksesimi ishte gjatë ditës, kështu që nuk pati një histori interesante). Ja një screenshot i programit, ku shikohet lista e nodëve të thyer pas disa ditëve pune:

Fatkeqësisht, efikasiteti i këtij instrumenti nuk arriti pritshmëritë e mia: bhunter mund të provojë fjalëkalimet për nodët për disa ditë pa rezultat, dhe mund të thyejë disa qëllime për disa orë. Por për një fluks të rregullt të mostrave të reja të botnetëve, kjo është e mjaftueshme.
Efiçencën e ndikojnë parametrat si: vendi ku ndodhet serveri me bhunter, hosting-u dhe gama nga e cila alokohet adresa IP. Nga përvoja ime, kishte një rast kur kam marrë me qira dy servera virtualë nga një host, dhe një prej tyre u sulmua nga botnetët dyfish më shpesh.
Gabimet që ende nuk i kam ndrequr
Gjatë sulmeve ndaj nyjave të infektuara, në disa raste nuk ndodh që të përcaktohet në mënyrë të saktë nëse është pranuar fjalëkalimi apo jo. Regjistrimi i rasteve të tilla bëhet në skedarin /var/log/debug.log.
Moduli Paramiko, i cili përdoret për punë me SSH, ndonjëherë sillet padrejtë: hyn në një pritje të pafund për përgjigje nga nyja kur përpiqet të lidhet me të. Kam eksperimentuar me timerat, por nuk kam arritur rezultatin e dëshiruar.
Për çfarë tjetër duhet të punojmë?
Emri i shërbimit
Sipas RFC-4253, klienti dhe serveri para vendosjes shkëmbejnë emrat e shërbimeve që zbatojnë protokollin SSH. Ky emër përmban fushën "SERVICE NAME", e cila ndodhet si në kërkesën nga klienti, ashtu edhe në përgjigjen nga serveri. Fusha është një varg dhe vlera e saj mund të zbulohet duke përdorur wireshark ose nmap. Ja një shembull për OpenSSH:
$ nmap -p 22 ***.**.***.** -sV
Duke me Nmap ...
PORT SHTETI SHËRBIMI VERSION
22/tcp e hapur ssh <b>OpenSSH 7.9p1 Debian 10+deb10u2</b> (protokolli 2.0)
Nmap përfunduar: 1 adresë IP (1 host aktiv) e skanuar në 0.47 sekonda
Megjithatë, në rastin e Paramiko, ky fushë përmban një varg si "Paramiko Python sshd 2.4.2", që mund të frikëshojë botnet-et, të cilat kanë të inkorporuar "shmangien" e kurtheve. Prandaj, mendoj se është e nevojshme ta zëvendësoj këtë varg me diçka më neutrale.
Vektorë të tjerë
SSH nuk është mjeti i vetëm për menaxhim të largët. Ka edhe telnet, rdp. Vlen të shikoni edhe për to.
Zgjerimi
Do të ishte fantastike të kishte disa kurthe në vende të ndryshme dhe të mblidhnim në mënyrë qendrore emrat, fjalëkalimet dhe nodet e thyera në një bazë të përbashkët.
Ku mund ta shkarkoj?
Në momentin e shkruarjes së artikullit, është e gatshme vetëm një version testimi, i cili mund të shkarkohet nga .
Burimi: habr.com
