Bhunter - piratear nodos de botnets

Os analistas de virus e os investigadores de seguridade informática corren para recoller tantas mostras de novas botnets como sexa posible. Usan honeypots para os seus propios fins... Pero e se queres observar o malware en condicións reais? Poñer en risco o seu servidor ou router? E se non hai un dispositivo axeitado? Foron estas preguntas as que me levaron a crear bhunter, unha ferramenta para acceder aos nodos de botnet.

Bhunter - piratear nodos de botnets

idea central

Hai moitas formas de espallar malware para expandir as redes de bots: desde phishing ata explotar vulnerabilidades de día 0. Pero o método máis común segue sendo a forza bruta de contrasinais SSH.

A idea é moi sinxela. Se algún nodo de botnet está tentando usar contrasinais de forza bruta para o teu servidor, o máis probable é que este nodo fose capturado mediante contrasinais simples de forza bruta. Isto significa que para acceder a el, só tes que corresponder.

Así é exactamente como funciona bhunter. Escoita o porto 22 (servizo SSH) e recolle todos os inicios de sesión e contrasinais cos que tentan conectarse a el. Despois, usando os contrasinais recollidos, tenta conectarse aos nodos atacantes.

Algoritmo de traballo

O programa pódese dividir en 2 partes principais, que funcionan en fíos separados. O primeiro é o pote de mel. Procesa os intentos de inicio de sesión, recolle inicios de sesión e contrasinais únicos (neste caso, o par inicio de sesión + contrasinal considérase como un único todo) e tamén engade enderezos IP que tentaron conectarse á cola para máis ataques.

A segunda parte é directamente responsable do ataque. Ademais, o ataque realízase en dous modos: BurstAttack (ataque de ráfaga) - inicios de sesión de forza bruta e contrasinais da lista xeral e SingleShotAttack (ataque de tiro único) - contrasinais de forza bruta que foron utilizados polo nodo atacado, pero aínda non foron engadido á lista xeral.

Para ter polo menos algunha base de datos de inicios de sesión e contrasinais inmediatamente despois do lanzamento, bhunter iníciase cunha lista do ficheiro /etc/bhunter/defaultLoginPairs.

interface

Hai varias formas de lanzar bhunter:

Só como equipo

sudo bhunter

Con este lanzamento, é posible controlar bhunter a través do seu menú de texto: engadir inicios de sesión e contrasinais para un ataque, exportar unha base de datos de inicios de sesión e contrasinais, especificar un obxectivo para un ataque. Todos os nós pirateados pódense ver no ficheiro /var/log/bhunter/hacked.log

Usando tmux

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

Tmux é un multiplexor de terminal, unha ferramenta moi cómoda. Permítelle crear varias fiestras nun terminal e dividir as fiestras en paneis. Usalo, pode saír do terminal e logo iniciar sesión sen interromper os procesos en execución.

O script bhunter-ts crea unha sesión tmux e divide a xanela en tres paneis. O primeiro, o máis grande, contén un menú de texto. A parte superior dereita contén rexistros de honeypot, aquí podes ver mensaxes sobre os intentos de iniciar sesión no honeypot. O panel inferior dereito mostra información sobre o progreso do ataque aos nodos de botnet e sobre os hackeos exitosos.

A vantaxe deste método sobre o primeiro é que podemos pechar o terminal con seguridade e volver a el máis tarde, sen que bhunter deteña o seu traballo. Para aqueles que están pouco familiarizados co tmux, suxiro esta folla de trampas.

Como servizo

systemctl enable bhunter
systemctl start bhunter

Neste caso, activamos o inicio automático de bhunter ao iniciar o sistema. Neste método, a interacción con bhunter non se proporciona e a lista de nós pirateados pódese obter en /var/log/bhunter/hacked.log

Eficacia

Mentres traballaba en bhunter, conseguín atopar e acceder a dispositivos completamente diferentes: raspberry pi, enrutadores (especialmente mikrotik), servidores web e, unha vez, unha granxa mineira (desafortunadamente, o acceso a ela era durante o día, polo que non había nada interesante). historia). Aquí tes unha captura de pantalla do programa, que mostra unha lista de nós pirateados despois de varios días de traballo:

Bhunter - piratear nodos de botnets

Desafortunadamente, a eficacia desta ferramenta non alcanzou as miñas expectativas: bhunter pode probar contrasinais aos nodos durante varios días sen éxito e pode piratear varios obxectivos nun par de horas. Pero isto é suficiente para unha afluencia regular de novas mostras de botnets.

A eficacia está influenciada por parámetros como: o país no que se atopa o servidor con bhunter, a hospedaxe e o rango desde o que se asigna o enderezo IP. Na miña experiencia, houbo un caso no que aluguei dous servidores virtuais dun servidor e un deles foi atacado por botnets 2 veces máis a miúdo.

Erros que aínda non solucionei

Ao atacar hosts infectados, nalgunhas situacións non é posible determinar sen ambigüidades se o contrasinal é correcto ou non. Estes casos están rexistrados no ficheiro /var/log/debug.log.

O módulo Paramiko, que se usa para traballar con SSH, ás veces compórtase incorrectamente: agarda sen parar unha resposta do host cando intenta conectarse a el. Experimentei con temporizadores, pero non obtiven o resultado desexado

En que máis hai que traballar?

Nome do servizo

Segundo RFC-4253, o cliente e o servidor intercambian nomes de servizos que implementan o protocolo SSH antes da instalación. Este nome está contido no campo "NOME DO SERVIZO", contido tanto na solicitude do lado do cliente como na resposta do lado do servidor. O campo é unha cadea e o seu valor pódese atopar mediante wireshark ou nmap. Aquí tes un exemplo de 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

Non obstante, no caso de Paramiko, este campo contén unha cadea como "Paramiko Python sshd 2.4.2", que pode espantar as botnets deseñadas para "evitar" trampas. Polo tanto, creo que é necesario substituír esta liña por outra máis neutra.

Outros vectores

SSH non é o único medio de xestión remota. Tamén hai telnet, rdp. Paga a pena botalos un ollo máis de cerca.

extensión

Sería xenial ter varias trampas en diferentes países e recoller de forma centralizada inicios de sesión, contrasinais e nós pirateados nunha base de datos común.

Onde podo descargar?

No momento de escribir este artigo, só está lista unha versión de proba, que se pode descargar desde repositorio en Github.

Fonte: www.habr.com

Engadir un comentario