Bhunter — uzlaužam botu tīklu mezglus

Vīrusu analītiķi un datoru drošības pētnieki cenšas savākt pēc iespējas vairāk jaunu botnetu paraugu. Viņu mērķiem viņi izmanto honeypotus.… Bet ko darīt, ja vēlas novērot ļaunprogrammatūru reālos apstākļos? Pakļaut savu serveri, maršrutizētāju riskam? Un ko darīt, ja piemērota ierīce nav? Tieši šie jautājumi mudināja mani izstrādāt bhunter — rīku, kas nodrošina piekļuvi botnetu mezgliem.

Bhunter — uzlaužam botu tīklu mezglus

Pamatideja

Ir daudz veidu, kā izplatīt ļaunprātīgu programmatūru, lai paplašinātu botnetus: sākot no phishing un beidzot ar 0-day ievainojamību izmantošanu. Taču populārākais joprojām ir SSH paroli uzminēšana.

Ideja ir ļoti vienkārša. Ja no kāda botnetu mezgla tiek veikta paroli uzminēšana jūsu serverim, visticamāk, ka šis mezgls pats ir iekļuvis tīklā, izmantojot vienkāršu paroli. Tādēļ, lai iegūtu piekļuvi, jāatbild ar "atvairīšanu".

Tieši tā bhunter darbojas. Tas klausās 22. portā (SSH pakalpojums) un savāc visus lietotājvārdu un parolu komplektus, ar kuriem tiek mēģināts piekļūt. Pēc tam, izmantojot savāktās paroles, tas mēģina pieslēgties uzbrūkošajiem mezgliem.

Darba algoritms

Programmu var nosacīti sadalīt divās galvenajās daļās, kas darbojas atsevišķos pavedienos. Pirmais — honeypot. Tas apstrādā pieslēgšanās mēģinājumus, savāc unikālos lietotājvārdus un paroles (šajā gadījumā parole un lietotājvārds tiek uzskatīti par vienu veselumu), kā arī pievieno uzbrūkošo IP adreses uzbrukumiem nākotnē.

Otrā daļa atbild tieši par uzbrukumu. Turklāt uzbrukums tiek veikts divos režīmos: BurstAttack (uzbrukums secīgi) — lietotājvārdus un paroles uzminēšana no kopējā saraksta un SingleShotAttack (individuālu uzbrukumu) — uzminēšana ar parolēm, kuras izmantoja uzbrūkošais mezgls, bet vēl nav pievienotas kopējam sarakstam.

Lai iegūtu vismaz kādu lietotājvārdus un parolu bāzi tūlīt pēc palaišanas, bhunter tiek inicializēts ar sarakstu no faila /etc/bhunter/defaultLoginPairs.

Interfeiss

Ir paredzēti vairāki veidi, kā palaist bhunter:

Vienkārši ar komandu

sudo bhunter

Šāda palaišana ļauj pārvaldīt bhunter caur tā tekstuālo izvēlni: pievienot pieteikumus un paroli uzbrukumam, eksportēt pieteikumu un parolu datu bāzi, norādīt uzbrukuma mērķi. Visus pārrakstītos mezglus var redzēt failā /var/log/bhunter/hacked.log

Izmantojot tmux

sudo bhunter-ts # komanda, lai palaistu bhunter caur tmux  
sudo tmux attach -t bhunter # pievienojamies sesijai, kurā tiek palaists bhunter

Tmux ir termināla multiplikators, ļoti ērts rīks. Tas ļauj vienā terminālī izveidot vairākas logus un sadalīt logus paneļos. To izmantojot, var iziet no termināla un pēc tam atgriezties, nesniegdami uzsāktos procesus.

Scripts bhunter-ts izveido tmux sesiju un sadala logu trīs paneļos. Pirmajā - vislielākajā, atrodas tekstuālā izvēlne. Augšējā labajā daļā ir honeypota žurnāli, kur var redzēt ziņojumus par ieejas mēģinājumiem honeypotā. Apakšējā labajā panelī tiek parādīta informācija par uzbrukuma gaitu botu tīklu mezgliem un par veiksmīgajiem uzbrukumiem.

Šī metode ir labāka par pirmo, jo mēs varam droši aizvērt termināli un vēlāk atgriezties pie tā, tādējādi bhunter neapturēs darbu. Šiem, kas maz pazīstami ar tmux, ieteiktu šos pierakstus.

Kā pakalpojums

systemctl enable bhunter
systemctl start bhunter

Šajā gadījumā mēs ieslēdzam bhunter automātisko palaišanu sistēmas palaišanas laikā. Šajā metodē mijiedarbība ar bhunter nav paredzēta, un pārrakstīto mezglu sarakstu var iegūt no /var/log/bhunter/hacked.log

Efektivitāte

Strādājot ar bhunter, man izdevās atrast un piekļūt pilnīgi atšķirīgām ierīcēm: raspberry pi, maršrutētājiem (īpaši mikrotik), web-serveriem, un kādu reizi arī kalnrūpniecības fermai (diemžēl piekļuve tā bija tikai dienas laikā, tāpēc interesanta stāsta neradās). Šeit ir ekrānšāviņš no programmas, kur redzams pārrakstīto mezglu saraksts pēc dažām darba dienām:

Bhunter — uzlaužam botu tīklu mezglus

Diemžēl šī rīka efektivitāte nav sasniegusi manas cerības: bhunter var jāpārbauda paroles mezgliem vairākas dienas bez rezultātiem, bet var arī uzlauzt vairākas mērķus tikai pāris stundās. Bet regulārai jaunu botnetu paraugu ieplūšanai tas ir pietiekami.

Efektivitāti ietekmē tādi parametri kā: valsts, kurā atrodas serveris ar bhunter, hostings un IP adrese, no kuras tas ir piešķirts. Manā pieredzē bija gadījums, kad es īrēju divus virtuālos serverus no viena hostinga, un viens no tiem tika uzbrukts no botnet divas reizes biežāk.

Kļūdas, kuras es pagaidām neesmu izlabojis

Uzbrukuma gadījumā inficētajiem mezgliem dažās situācijās nav iespējams nepārprotami noteikt, vai parole ir derīga vai nē. Šādu gadījumu žurnāls tiek veikts failā /var/log/debug.log.

Paramiko modulis, kas tiek izmantots darbam ar SSH, dažkārt uzvedas nepareizi: tas nonāk bezgalīgā gaidīšanas stāvoklī, mēģinot izveidot savienojumu ar mezglu. Es eksperimentēju ar taimeriem, bet vēlamo rezultātu neieguvu.

Uz ko vēl ir jāstrādā?

Pakalpojuma nosaukums

Saskaņā ar RFC-4253 klients un serveris pirms savienojuma izveides apmainās ar pakalpojumu nosaukumiem, kas īsteno SSH protokolu. Šis nosaukums ietilpst laukā "SERVICE NAME", kas atrodams gan klienta pieprasījumā, gan servera atbildē. Lauks ir virkne, un tā vērtību var uzzināt, izmantojot wireshark vai nmap. Lūk, piemērs OpenSSH:

$ nmap -p 22 ***.**.***.** -sV
Sāk Nmap ...
PORT   STĀVOKLIS SERVISS VERSIJA
22/tcp atvērts  ssh     <b>OpenSSH 7.9p1 Debian 10+deb10u2</b> (protokols 2.0)
Nmap pabeigts: 1 IP adrese (1 viesis aktīvs) skannēts 0.47 sekundēs

Tomēr, runājot par Paramiko, šis lauks satur virkni formātā "Paramiko Python sshd 2.4.2", kas var atbaidīt botnetus, kuriem ir iekļauts "izvairīšanās" no slazdiem. Tāpēc uzskatu, ka ir nepieciešams aizstāt šo virknē ar kaut ko neitrālāku.

Citi vektori

SSH nav vienīgais attālināta pārvaldības līdzeklis. Ir vēl telnet, rdp. Jāpievērš uzmanība arī tiem.

Paplašinājums

Būtu lieliski, ja būtu vairāki slazdi dažādās valstīs un centralizēti vākt no tiem pieteikumus, paroles un uzlauztus mezglus kopējā datu bāzē.

Kur lejupielādēt?

Raksta rakstīšanas brīdī ir pieejama tikai testēšanas versija, kuru var lejupielādēt no repozitorija Github.

Avots: habr.com

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster