Bhunter — thyej zgjidhim nodet e rrjeteve bot.

AnalistĂ«t e viruseve dhe hulumtuesit e sigurisĂ« kompjuterike pĂ«rpiqen tĂ« grumbullojnĂ« sa mĂ« shumĂ« mostra tĂ« botnetĂ«ve tĂ« rinj. Ata pĂ«rdorin honeypot... Por çfarĂ« nĂ«se duam tĂ« vĂ«zhgojmĂ« malware-in nĂ« kushte reale? TĂ« vendosim nĂ«n sulm serverin tonĂ«, routerin? Po nĂ«se nuk ka njĂ« pajisje tĂ« pĂ«rshtatshme? KĂ«to pyetje mĂ« çuan nĂ« krijimin e bhunter — njĂ« mjet pĂ«r qasje nĂ« nodet e rrjeteve bot.

Bhunter — thyej zgjidhim nodet e rrjeteve bot.

Ideja kryesore

Ekzistojnë shumë mënyra për shpërndarjen e softuerëve të dëmshëm për të zgjeruar botnetët: duke filluar nga phishing-u dhe përfunduar me shfrytëzimin e vulnerabiliteteve zero-day. Por mënyra më e zakonshme mbetet akoma brute force për fjalëkalimet e SSH.

Ideja Ă«shtĂ« shumĂ« e thjeshtĂ«. NĂ«se njĂ« nga nodet e rrjetit bot po pĂ«rpiqet tĂ« bĂ«jĂ« brute force pĂ«r fjalĂ«kalime nĂ« serverin tuaj, probabiliteti Ă«shtĂ« qĂ« ky nod vetĂ« Ă«shtĂ« kapur nga brute force pĂ«r fjalĂ«kalime tĂ« thjeshta. Prandaj, pĂ«r tĂ« fituar qasje te ai, thjesht duhet t’i pĂ«rgjigjeni me "mirĂ«sjellje".

Kështu funksionon bhunter. Dëgjon portin 22 (shërbimi SSH) dhe mbledh të gjitha loginat dhe fjalëkalimet me të cilat përpiqen të lidhen me të. Pastaj, duke përdorur fjalëkalimet e mbledhura, përpiqet të lidhet me nodet e sulmuesve.

Algoritmi i punës

Programi mund tĂ« ndahet nĂ« mĂ«nyrĂ« konceptuale nĂ« 2 pjesĂ« kryesore, tĂ« cilat punojnĂ« nĂ« (procese) pĂ«rcjellĂ«s. E para — honeypot. PĂ«rpunon pĂ«rpjekjet pĂ«r hyrje, mbledh logina dhe fjalĂ«kalime unike (nĂ« kĂ«tĂ« rast, çifti login + fjalĂ«kalim shqyrtohet si njĂ« njĂ«si e vetme), si dhe shton nĂ« radhĂ« pĂ«r sulm IP adresat qĂ« pĂ«rpiqen tĂ« lidhen.

Pjesa e dytĂ« pĂ«rgjigjet drejtpĂ«rdrejt pĂ«r sulmin. Dhe sulmi zhvillohet nĂ« dy mĂ«nyra: BurstAttack (sulm me radhĂ«) — pĂ«rzgjidhja e logineve dhe fjalĂ«kalimeve nga njĂ« listĂ« e pĂ«rbashkĂ«t dhe SingleShotAttack (sulm me gjuajtje tĂ« vetme) — pĂ«rzgjidhja e fjalĂ«kalimeve qĂ« janĂ« pĂ«rdorur nga nodi qĂ« sulmohet, por qĂ« ende nuk janĂ« shtuar nĂ« listĂ«n e pĂ«rgjithshme.

Për të pasur ndonjë bazë loginesh dhe fjalëkalimesh disa sapo të fillohet, bhunter inicializohet me një listë nga skedari /etc/bhunter/defaultLoginPairs.

Ndërfaqja

Parashikohen disa mënyra për të filluar bhunter:

Thjesht me komandën

sudo bhunter

Me një nisje të tillë, ka mundësi të menaxhosh bhunter'in përmes menusë së tij tekstuale: të shtosh përdorues dhe fjalëkalime për sulm, të eksportohet baza e të dhënave të përdoruesve dhe fjalëkalimeve, dhe të caktosh një qëllim për sulm. Të gjitha nyjat e thyer mund të shihen në skedarin /var/log/bhunter/hacked.log

Duke përdorur tmux

sudo bhunter-ts # komandë për nisjen e bhunter përmes tmux  
sudo tmux attach -t bhunter # lidhemi me sesionin ku është nisur bhunter

Tmux është një multiplexori terminali, një mjet shumë i përshtatshëm. Lejon që brenda një terminali të krijosh disa dritare, dhe dritaret të ndahet në panelet. Duke e përdorur, mund të dalësh nga terminali dhe më pas të rikthehesh pa e ndërprerë punën e proceseve të nisura.

Skripti bhunter-ts krijon njĂ« sesion tmux dhe ndan dritaren nĂ« tre panelet. NĂ« tĂ« parĂ«n — mĂ« tĂ« madhen, ndodhet menuja tekstuale. Dritarja e sipĂ«rme e djathtĂ« pĂ«rmban logjet e honeypot’it, kĂ«tu mund tĂ« shihen mesazhet mbi pĂ«rpjekjet pĂ«r hyrje nĂ« honeypot. NĂ« panelin e poshtĂ«m tĂ« djathtĂ« jepet informacion mbi ecurinĂ« e sulmit ndaj nyjeve tĂ« rrjeteve bot, dhe pĂ«r thyerjet e suksesshme.

Avantazhi i kësaj metode ndaj së parës është se mund të mbyllim me guxim terminalin dhe të kthehemi më vonë, ndërsa bhunter nuk do ta ndalë punën. Ata që janë pak të njohur me tmux i rekomandoj këtë shpjegues.

Si një shërbim

systemctl enable bhunter
systemctl start bhunter

Në këtë rast, ne ndezim vetë-nisjen e bhunter gjatë nisjes së sistemit. Në këtë metodë, ndërveprimi me bhunter nuk është parashikuar, dhe lista e nyjeve të thyer mund të merret nga /var/log/bhunter/hacked.log

Efikasitet

Gjatë punës mbi bhunter kam arritur të gjej dhe të këmbej në pajisje komplet të ndryshme: raspberry pi, routerë (sidomos mikrotik), serverë web, dhe një herë një fermë për minimin (fatkeqësisht, qasja ndaj saj ishte për një ditë, prandaj nuk ka dalë një histori interesante). Këtu është një screenshot i programit, ku shikohet lista e nyjeve të thyer pas disa ditësh pune:

Bhunter — thyej zgjidhim nodet e rrjeteve bot.

Fatkeqësisht, efektiviteti i këtij instrumenti nuk arriti pritjet e mia: bhunter mund të provëdhijë fjalëkalime për nyje për disa ditë pa rezultat, ose mund të thyejë disa qëllime brenda disa orësh. Por për një fluks të rregullt të modeleve të reja të botnets, kjo është e mjaftueshme.

Efektivitetin e ndikojnë parametra si: vendi ku ndodhet serveri me bhunter, hostingu dhe diapazoni nga i cili është ndarë adresa IP. Nga përvoja ime, kishte një rast kur unë kam marrë me qira dy serverë virtualë nga një hostues dhe njëri prej tyre u sulmua nga botnetët dy herë më shpesh.

Bugs që unë ende nuk i kam rregulluar

Në sulm ndaj nyjave të infektuara, në disa raste nuk mund të përcaktohet qartë nëse fjala kalim ka përfunduar apo jo. Logimi i këtyre rasteve mbahet në skedarin /var/log/debug.log.

Moduli Paramiko, i cili përdoret për të punuar me SSH, ndonjëherë sillet në mënyrë të papërshtatshme: hyjnë në pritje të pafund për një përgjigje nga nyja, kur përpiqet të lidhet me të. Kam eksperimentuar me kohët, por nuk kam arritur rezultatin e dëshiruar.

ÇfarĂ« tjetĂ«r mbetet pĂ«r tĂ« punuar?

Emri i shërbimit

Sipas RFC-4253, klienti dhe serveri para vendosjes shkëmbejnë emrat e shërbimeve që implementojnë protokollin SSH. Ky emër gjendet në fushën "SERVICE NAME", e cila përfshihet si në kërkesën nga klienti, ashtu edhe në përgjigjen nga serveri. Ky fushë përbën një varg dhe vlerën e tij mund ta zbuloni duke përdorur wireshark ose nmap. Ja një shembull për OpenSSH:

$ nmap -p 22 ***.**.***.** -sV
Duke Nmap ...
PORT   STANDI SHËRBIMI VERSION
22/tcp hapur  ssh     <b>OpenSSH 7.9p1 Debian 10+deb10u2</b> (protokolli 2.0)
Nmap përfundoi: 1 adresë IP (1 host aktiv) e skanuar në 0.47 sekonda

Megjithatë, në rastin me Paramiko, ky fushë përmban një varg të tipit "Paramiko Python sshd 2.4.2", që mund të frikësojë botnetët, të cilat kanë në të një "shmangie" nga gjilpërat. 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 menaxhimin e largët. Ekzistojnë gjithashtu telnet, rdp. Duhet t'i kushtoni vëmendje edhe atyre.

Zgjerim

Do të ishte e shkëlqyer të kisha disa gjilpëra në vende të ndryshme dhe të mbledhja në mënyrë qendrore loginat, fjalëkalimet dhe nyjat e thyera në një bazë të dhënash të përbashkët.

Ku të shkarkohet?

Në momentin e shkruarjes së këtij artikulli, është gati vetëm një version provues, i cili mund të shkarkohet nga repozitari në Github.

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster