Bhunter - botnet tugunlarini buzish

Virus tahlilchilari va kompyuter xavfsizligi bo'yicha tadqiqotchilar yangi botnetlarning iloji boricha ko'proq namunalarini to'plash uchun poygalanishmoqda. Ular asal idishlarini o'z maqsadlari uchun ishlatishadi ... Ammo zararli dasturni real sharoitda kuzatmoqchi bo'lsangiz-chi? Server yoki routeringizni xavf ostiga qo'yasizmi? Agar mos qurilma bo'lmasa-chi? Aynan shu savollar meni botnet tugunlariga kirish uchun bhunter vositasini yaratishga undadi.

Bhunter - botnet tugunlarini buzish

Asosiy g'oya

Botnetlarni kengaytirish uchun zararli dasturlarni tarqatishning ko'plab usullari mavjud: fishingdan tortib 0 kunlik zaifliklardan foydalanishgacha. Ammo eng keng tarqalgan usul hali ham SSH parollarini qo'pol ravishda majburlashdir.

Fikr juda oddiy. Agar ba'zi botnet tugunlari sizning serveringiz uchun parollarni qo'pol kuch ishlatmoqchi bo'lsa, bu tugunning o'zi oddiy parollar yordamida qo'lga olingan bo'lishi mumkin. Bu shuni anglatadiki, unga kirish uchun siz faqat o'zaro munosabatda bo'lishingiz kerak.

Bhunter aynan shunday ishlaydi. 22-portni (SSH xizmati) tinglaydi va unga ulanishga harakat qiladigan barcha login va parollarni to'playdi. Keyin, to'plangan parollardan foydalanib, hujum qiluvchi tugunlarga ulanishga harakat qiladi.

Ish algoritmi

Dasturni ikkita asosiy qismga bo'lish mumkin, ular alohida mavzularda ishlaydi. Birinchisi - asal idishi. Kirish urinishlarini qayta ishlaydi, noyob login va parollarni to'playdi (bu holda login + parol juftligi bir butun sifatida ko'rib chiqiladi), shuningdek keyingi hujum uchun navbatga ulanishga harakat qilgan IP manzillarini qo'shadi.

Ikkinchi qism to'g'ridan-to'g'ri hujum uchun javobgardir. Bundan tashqari, hujum ikki rejimda amalga oshiriladi: BurstAttack (portlash hujumi) - umumiy ro'yxatdagi qo'pol kuch loginlari va parollari va SingleShotAttack (bir martalik hujum) - hujum qilingan tugun tomonidan ishlatilgan, ammo hali ishlatilmagan qo'pol kuch parollari. umumiy ro'yxatga qo'shildi.

Ishga tushgandan so'ng darhol kamida bir nechta login va parollar ma'lumotlar bazasiga ega bo'lish uchun bhunter /etc/bhunter/defaultLoginPairs fayli ro'yxati bilan ishga tushiriladi.

Interfeys

Bhunterni ishga tushirishning bir necha yo'li mavjud:

Faqat jamoa sifatida

sudo bhunter

Ushbu ishga tushirish bilan bhunterni matn menyusi orqali boshqarish mumkin: hujum uchun login va parollarni qo'shing, login va parollar ma'lumotlar bazasini eksport qiling, hujum uchun nishonni belgilang. Barcha buzilgan tugunlarni /var/log/bhunter/hacked.log faylida ko'rish mumkin

tmux dan foydalanish

sudo bhunter-ts # команда запуска bhunter через tmux  
sudo tmux attach -t bhunter # подключаемся к сессии, в которой запущен bhunter

Tmux - terminal multipleksor, juda qulay vosita. Bitta terminalda bir nechta oyna yaratish va oynalarni panellarga bo'lish imkonini beradi. Undan foydalanib, siz terminaldan chiqishingiz va keyin ishlaydigan jarayonlarni to'xtatmasdan tizimga kirishingiz mumkin.

Bhunter-ts skripti tmux seansini yaratadi va oynani uchta panelga ajratadi. Birinchi, eng katta, matn menyusini o'z ichiga oladi. Yuqori o'ng tomonda asal potining jurnallari mavjud, bu yerda siz honeypotga kirishga urinishlar haqidagi xabarlarni ko'rishingiz mumkin. Pastki o'ng panelda botnet tugunlariga hujumning borishi va muvaffaqiyatli buzishlar haqida ma'lumot ko'rsatiladi.

Bu usulning birinchisidan afzalligi shundaki, biz terminalni xavfsiz yopamiz va keyinroq bhunter ishini to'xtatmasdan unga qaytishimiz mumkin. Tmux bilan ozgina tanish bo'lganlar uchun men taklif qilaman bu aldash varag'i.

Xizmat sifatida

systemctl enable bhunter
systemctl start bhunter

Bunday holda, biz tizimni ishga tushirishda bhunter autostart-ni yoqamiz. Ushbu usulda bhunter bilan o'zaro aloqa ta'minlanmaydi va buzilgan tugunlar ro'yxatini /var/log/bhunter/hacked.log dan olish mumkin.

Samaradorlik

Bhunter ustida ishlayotganimda men butunlay boshqa qurilmalarni topdim va ularga kirishga muvaffaq bo'ldim: malina pi, routerlar (ayniqsa mikrotik), veb-serverlar va bir marta konchilik fermasi (afsuski, unga kirish kun davomida edi, shuning uchun qiziq narsa yo'q edi. hikoya). Mana bir necha kunlik ishdan keyin buzilgan tugunlar ro'yxatini ko'rsatadigan dasturning skrinshoti:

Bhunter - botnet tugunlarini buzish

Afsuski, ushbu vositaning samaradorligi mening kutganlarimga yetmadi: bhunter bir necha kun davomida tugunlarga parollar kiritishga urinib ko'rishi va muvaffaqiyatsiz bo'lishi va bir necha soat ichida bir nechta nishonlarni buzishi mumkin. Ammo bu yangi botnet namunalarining muntazam oqimi uchun etarli.

Samaradorlikka quyidagi parametrlar ta'sir qiladi: bhunter serveri joylashgan mamlakat, xosting va IP manzili ajratilgan diapazon. Mening tajribamda bitta xostingdan ikkita virtual serverni ijaraga olganim va ulardan biri botnetlar tomonidan 2 marta tez-tez hujumga uchragan.

Hali tuzatmagan xatolarim

Infektsiyalangan xostlarga hujum qilganda, ba'zi hollarda parol to'g'ri yoki yo'qligini aniq aniqlash mumkin emas. Bunday holatlar /var/log/debug.log faylida qayd etilgan.

SSH bilan ishlashda foydalaniladigan Paramiko moduli baʼzan oʻzini notoʻgʻri tutadi: u hostga ulanishga urinayotganda cheksiz javob kutadi. Men taymerlar bilan tajriba o'tkazdim, ammo kerakli natijaga erishmadim

Yana nima ustida ishlash kerak?

Xizmat nomi

RFC-4253 ga binoan, mijoz va server o'rnatishdan oldin SSH protokolini amalga oshiradigan xizmatlar nomlarini almashadilar. Bu nom “XIZMAT NOMI” maydonida joylashgan bo'lib, mijoz tomonidan so'rovda ham, server tomonidan javobda ham mavjud. Maydon qator bo'lib, uning qiymatini wireshark yoki nmap yordamida topish mumkin. Mana OpenSSH uchun misol:

$ nmap -p 22 ***.**.***.** -sV
Starting Nmap ...
PORT   STATE SERVICE VERSION
22/tcp open  ssh     <b>OpenSSH 7.9p1 Debian 10+deb10u2</b> (protocol 2.0)
Nmap done: 1 IP address (1 host up) scanned in 0.47 seconds

Biroq, Paramiko misolida, bu maydon "Paramiko Python sshd 2.4.2" kabi qatorni o'z ichiga oladi, bu esa tuzoqlardan "saqlanish" uchun mo'ljallangan botnetlarni qo'rqitishi mumkin. Shuning uchun, menimcha, bu chiziqni neytralroq narsa bilan almashtirish kerak.

Boshqa vektorlar

SSH masofadan boshqarishning yagona vositasi emas. Bundan tashqari, telnet, rdp mavjud. Ularni batafsil ko'rib chiqishga arziydi.

kengaytirish

Turli mamlakatlarda bir nechta tuzoqlarga ega bo'lish va ulardan loginlar, parollar va buzilgan tugunlarni umumiy ma'lumotlar bazasiga markazlashtirilgan holda to'plash juda yaxshi bo'lar edi.

Qayerdan yuklab olsam bo'ladi?

Yozish vaqtida faqat sinov versiyasi tayyor, uni yuklab olish mumkin Github-dagi ombor.

Manba: www.habr.com

a Izoh qo'shish