Bhunter — hackar nodernas bot-nĂ€tverk

Virusanalytiker och forskare inom datasĂ€kerhet strĂ€var efter att samla sĂ„ mĂ„nga prover av nya botnĂ€t som möjligt. I sina syften anvĂ€nder de honeypots... Men vad om man vill observera skadlig kod under verkliga förhĂ„llanden? SĂ€tta sin server eller router i riskzonen? Och vad om det inte finns nĂ„gon lĂ€mplig enhet? Just dessa frĂ„gor ledde mig till skapandet av bhunter — ett verktyg för att fĂ„ tillgĂ„ng till noder i botnĂ€t.

Bhunter — hackar nodernas bot-nĂ€tverk

Huvudidén

Det finns mÄnga sÀtt att sprida skadlig programvara för att utöka botnÀt: frÄn phishing till utnyttjande av 0-day-sÄrbarheter. Men den mest utbredda metoden Àr fortfarande brute force-attacker mot SSH-lösenord.

Idén Àr mycket enkel. Om nÄgot node frÄn botnÀtet försöker göra en brute force-attack mot din server, Àr det troligt att den noden sjÀlv har blivit övertagen genom att utnyttja enkla lösenord. Det betyder att för att fÄ tillgÄng till den, behöver man bara svara med "ömsesidighet".

SÄ hÀr fungerar bhunter. Den lyssnar pÄ port 22 (SSH-tjÀnst) och samlar alla inloggningar och lösenord som försöker ansluta. DÀrefter, med hjÀlp av de insamlade lösenorden, försöker den ansluta till angripande noder.

Arbetsalgoritm

Programmet kan grovt delas in i tvĂ„ huvuddelar som arbetar i separata trĂ„dar. Den första — honeypot. Den hanterar inloggningsförsök, samlar unika anvĂ€ndarnamn och lösenord (i detta fall betraktas en inloggning+lösenord-kombination som en helhet) och lĂ€gger till IP-adresser i kön för vidare attacker som försökte ansluta.

Den andra delen ansvarar direkt för attacken. Attacken utförs i tvĂ„ lĂ€gen: BurstAttack (köattack) — brute force av anvĂ€ndarnamn och lösenord frĂ„n en gemensam lista och SingleShotAttack (enskilda skott) — brute force av lösenord som för anvĂ€ndaren under attacken, men som Ă€nnu inte har lagts till i den gemensamma listan.

För att ha nÄgon grund av anvÀndarnamn och lösenord direkt efter start, initieras bhunter med en lista frÄn filen /etc/bhunter/defaultLoginPairs.

GrÀnssnitt

Flertalet sÀtt att starta bhunter Àr förutsedda:

Bara med kommandot

sudo bhunter

Vid sÄdan start finns det möjlighet att styra bhunter genom dess textmeny: lÀgga till anvÀndarnamn och lösenord för attack, exportera databasen med anvÀndarnamn och lösenord, ange mÄlet för attacken. Alla hackade noder kan ses i filen /var/log/bhunter/hacked.log

Genom att anvÀnda tmux

sudo bhunter-ts # kommand för att starta bhunter via tmux  
sudo tmux attach -t bhunter # anslut till sessionen dÀr bhunter körs

Tmux Àr en terminalmultiplexer, ett mycket anvÀndbart verktyg. Det gör det möjligt att skapa flera fönster inom en terminal och dela upp fönster i paneler. Genom att anvÀnda det kan man logga ut frÄn terminalen och sedan logga in igen utan att avbryta pÄgÄende processer.

Skriptet bhunter-ts skapar en tmux-session och delar fönstret i tre paneler. I den första – den största – finns det textmeny. Den övre högra panelen innehĂ„ller loggar frĂ„n honeypoten, dĂ€r man kan se meddelanden om inloggningsförsök. I den nedre högra panelen visas information om attackens gĂ„ng pĂ„ botnets-noder och om lyckade intrĂ„ng.

Fördelen med detta tillvÀgagÄngssÀtt jÀmfört med det första Àr att vi kan stÀnga terminalen och ÄtervÀnda senare, och bhunter kommer att fortsÀtta fungera. För dem som Àr obekanta med tmux föreslÄr jag denna snabbguide.

Som en tjÀnst

systemctl enable bhunter
systemctl start bhunter

I det hÀr fallet aktiverar vi automatisk start av bhunter vid systemstart. I denna metod Àr interaktionen med bhunter inte möjlig, och listan över hackade noder kan fÄs frÄn /var/log/bhunter/hacked.log

Effektivitet

Under min tid med bhunter har jag lyckats hitta och fÄ tillgÄng till helt olika enheter: raspberry pi, routrar (sÀrskilt mikrotik), webbservrar, och en gÄng en gruvgÄrd (tyvÀrr var tillgÄngen endast under en dag, sÄ jag fick ingen intressant historia). HÀr Àr en skÀrmdump av programmet som visar listan över hackade noder efter nÄgra dagars arbete:

Bhunter — hackar nodernas bot-nĂ€tverk

TyvÀrr har effektiviteten hos detta verktyg inte uppfyllt mina förvÀntningar: bhunter kan pröva lösenord till noder i flera dagar utan resultat, men kan ocksÄ hacka flera mÄl pÄ nÄgra timmar. Men för en regelbunden tillströmning av nya exempel pÄ botnÀt Àr detta tillrÀckligt.

Effektiviteten pÄverkas av faktorer sÄsom: landet dÀr servern med bhunter Àr placerad, hostingtjÀnsten och intervallet frÄn vilket IP-adressen tilldelas. UtifrÄn min erfarenhet har jag haft fall dÀr jag hyrde tvÄ virtuella servrar frÄn samma hostingleverantör, och en av dem utsattes för attacker frÄn botnÀt dubbelt sÄ ofta.

Buggar som jag fortfarande inte har fixat

Vid attacker mot infekterade noder gÄr det ibland inte att tydligt avgöra om lösenordet var rÀtt eller ej. Loggning av sÄdana fall sker i filen /var/log/debug.log.

Paramiko-modulen, som anvÀnds för att arbeta med SSH, beter sig ibland inkonsekvent: den hamnar i en oÀndlig vÀntan pÄ svar frÄn noden nÀr den försöker ansluta. Jag har experimenterat med timers, men har inte fÄtt det resultat jag önskat.

Vad mer ÄterstÄr att arbeta med?

TjÀnstnamn

Enligt RFC-4253 utbyter klienten och servern tjÀnstenamn som implementerar SSH-protokollet före etableringen. Detta namn finns i fÀltet "SERVICE NAME", som ingÄr bÄde i begÀran frÄn klienten och i svaret frÄn servern. FÀltet Àr en strÀng, och dess vÀrde kan upptÀckas med hjÀlp av Wireshark eller Nmap. HÀr Àr ett exempel för OpenSSH:

$ nmap -p 22 ***.**.***.** -sV
Startar Nmap ...
PORT   STATUS TJÄNST VERSION
22/tcp öppen  ssh     <b>OpenSSH 7.9p1 Debian 10+deb10u2</b> (protokoll 2.0)
Nmap klart: 1 IP-adress (1 värd uppe) skannad på 0.47 sekunder

Men nÀr det gÀller Paramiko innehÄller detta fÀlt en strÀng som ser ut som "Paramiko Python sshd 2.4.2", vilket kan avskrÀcka botnÀt som har byggt in "undvikande" av fÀllor. DÀrför anser jag att det Àr nödvÀndigt att byta ut denna strÀng till nÄgot mer neutralt.

Andra vektorer

SSH Àr inte det enda verktyget för fjÀrrstyrning. Det finns Àven telnet, RDP. Det Àr vÀrt att se nÀrmare pÄ dem ocksÄ.

Utvidgning

Det skulle vara bra att ha flera fÀllor i olika lÀnder och centralt samla in inloggningar, lösenord och hackade noder till en gemensam databas.

Var kan jag ladda ner?

Vid tidpunkten för denna artikels skrivande finns endast en testversion tillgÀnglig att ladda ner frÄn förvaret pÄ GitHub..

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster