Bhunter - хакване на ботнет възли

Анализаторите на вируси и изследователите на компютърната сигурност се надпреварват да съберат възможно най-много проби от нови ботнет мрежи. Те използват honeypots за свои собствени цели... Но какво ще стане, ако искате да наблюдавате зловреден софтуер в реални условия? Излагате вашия сървър или рутер на риск? Ами ако няма подходящо устройство? Именно тези въпроси ме подтикнаха да създам bhunter, инструмент за получаване на достъп до ботнет възли.

Bhunter - хакване на ботнет възли

централната идея

Има много начини за разпространение на зловреден софтуер за разширяване на ботнет мрежи: от фишинг до използване на 0-дневни уязвимости. Но най-разпространеният метод все още е грубото налагане на SSH пароли.

Идеята е много проста. Ако някой възел на ботнет се опитва да форсира пароли за вашия сървър, тогава най-вероятно самият този възел е бил заловен чрез грубо форсиране на прости пароли. Това означава, че за да получите достъп до него, просто трябва да отвърнете със същото.

Точно така работи bhunter. Слуша порт 22 (SSH услуга) и събира всички потребителски имена и пароли, с които се опитват да се свържат с него. След това, използвайки събраните пароли, той се опитва да се свърже с атакуващи възли.

Работен алгоритъм

Програмата може да бъде разделена на 2 основни части, които работят в отделни нишки. Първият е honeypot. Обработва опитите за влизане, събира уникални данни за влизане и пароли (в този случай двойката за вход + парола се счита за едно цяло) и също така добавя IP адреси, които са се опитали да се свържат с опашката за по-нататъшна атака.

Втората част е пряко отговорна за атаката. Освен това атаката се извършва в два режима: BurstAttack (взривна атака) - груба сила влизания и пароли от общия списък и SingleShotAttack (единична атака) - груба сила пароли, които са били използвани от атакувания възел, но все още не са били добавени към общия списък.

За да има поне някаква база данни с потребителски данни и пароли веднага след стартирането, bhunter се инициализира със списък от файла /etc/bhunter/defaultLoginPairs.

интерфейс

Има няколко начина за стартиране на bhunter:

Просто като екип

sudo bhunter

С това стартиране е възможно да се контролира bhunter чрез неговото текстово меню: добавяне на данни за влизане и пароли за атака, експортиране на база данни с данни за влизане и пароли, посочване на цел за атака. Всички хакнати възли могат да се видят във файла /var/log/bhunter/hacked.log

Използване на tmux

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

Tmux е терминален мултиплексор, много удобен инструмент. Позволява ви да създадете няколко прозореца в рамките на един терминал и да разделите прозорците на панели. Използвайки го, можете да излезете от терминала и след това да влезете, без да прекъсвате изпълняваните процеси.

Скриптът bhunter-ts създава tmux сесия и разделя прозореца на три панела. Първият, най-големият, съдържа текстово меню. Горният десен съдържа регистрационни файлове на honeypot, тук можете да видите съобщения за опити за влизане в honeypot. Долният десен панел показва информация за напредъка на атаката срещу възли на ботнет и за успешни хакове.

Предимството на този метод пред първия е, че можем безопасно да затворим терминала и да се върнем към него по-късно, без bhunter да спира работата му. За тези, които са малко запознати с tmux, предлагам този мамят лист.

Като услуга

systemctl enable bhunter
systemctl start bhunter

В този случай ние разрешаваме автоматичното стартиране на bhunter при стартиране на системата. При този метод не е осигурено взаимодействие с bhunter и списъкът с хакнати възли може да бъде получен от /var/log/bhunter/hacked.log

ефикасност

Докато работех върху bhunter, успях да намеря и да получа достъп до напълно различни устройства: raspberry pi, рутери (особено mikrotik), уеб сървъри и веднъж майнинг ферма (за съжаление достъпът до нея беше през деня, така че нямаше интересно история ). Ето екранна снимка на програмата, която показва списък с хакнати възли след няколко дни работа:

Bhunter - хакване на ботнет възли

За съжаление, ефективността на този инструмент не достигна очакванията ми: bhunter може да опитва пароли за възли в продължение на няколко дни без успех и може да хакне няколко цели за няколко часа. Но това е достатъчно за редовен приток на нови образци на ботнет.

Ефективността се влияе от такива параметри като: държавата, в която се намира сървърът с bhunter, хостингът и диапазонът, от който се разпределя IP адресът. Според моя опит имаше случай, когато наех два виртуални сървъра от един хостър и един от тях беше атакуван от ботнети 2 пъти по-често.

Грешки, които все още не съм коригирал

При атака на заразени хостове в някои ситуации не е възможно да се определи недвусмислено дали паролата е правилна или не. Такива случаи се регистрират във файла /var/log/debug.log.

Модулът Paramiko, който се използва за работа с SSH, понякога се държи неправилно: той безкрайно чака отговор от хоста, когато се опитва да се свърже с него. Експериментирах с таймери, но не получих желания резултат

Върху какво още трябва да се работи?

Име на услугата

Според RFC-4253 клиентът и сървърът обменят имена на услуги, които прилагат SSH протокола преди инсталирането. Това име се съдържа в полето „ИМЕ НА УСЛУГА“, което се съдържа както в заявката от страна на клиента, така и в отговора от страна на сървъра. Полето е низ и стойността му може да бъде намерена с помощта на wireshark или nmap. Ето пример за OpenSSH:

$ 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

Въпреки това, в случая на Paramiko, това поле съдържа низ като „Paramiko Python sshd 2.4.2“, който може да изплаши ботнет мрежи, които са предназначени да „избягват“ капани. Затова смятам, че е необходимо тази линия да бъде заменена с нещо по-неутрално.

Други вектори

SSH не е единственото средство за дистанционно управление. Има и telnet, rdp. Струва си да ги разгледаме по-отблизо.

разширение

Би било страхотно да има няколко капана в различни държави и централно да се събират данни за влизане, пароли и хакнати възли от тях в обща база данни

Къде мога да изтегля?

Към момента на писане е готова само тестова версия, която може да бъде изтеглена от хранилище в Github.

Източник: www.habr.com

Купете надежден хостинг за сайтове с DDoS защита, VPS VDS сървъри 🔥 Купете надежден уеб хостинг със защита от DDoS атаки, VPS VDS сървъри | ProHoster