Bhunter — thyejmë nyjat e bot-rreteve

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.

Bhunter — thyejmë nyjat e bot-rreteve

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 bhunter

Me 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 këtë shpjegim të shpejtë.

Si një shërbim

systemctl enable bhunter
systemctl start bhunter

Në 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:

Bhunter — thyejmë nyjat e bot-rreteve

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 repoja në Github.

Burimi: habr.com

Bli një hosting të besueshëm për faqet me mbrojtje DDoS, VPS VDS serverë 🔥 Bli një hosting të besueshëm për faqet me mbrojtje DDoS, VPS VDS serverë | ProHoster