
Honeypot simple de TCP/UDP implementado en Perl
Programa honeypot TCP/UDP implementado en Perl
README para malbait, 2/10/17
(por cierto, mi dirección de bitcoin es 3A7yuqBcPAcVEM59bNAVQdTCmkxRb5JRgE )
(Aquí hay una alternativa, también para BTC, ya que he recibido informes de que algunas carteras de bitcoin no admiten ciertas direcciones: 1PEDKUiUTxGNJ3XTPfXCTAjpzVzX1VZAme )
Bienvenido a malbait, ¡tu honeypot perl simple y todo en uno!
Malbait es un honeypot, o programa "cebo de malware". Está diseñado para hacer perder el tiempo a los hackers y monitorizar el tráfico hostil en internet (o en tu LAN).
Malbait crea una serie de servidores falsos en puertos TCP seleccionados o por defecto y, si se selecciona, en puertos UDP. Si alguien o algo se conecta a ellos, su entrada quedará registrada en los archivos de registro.
Estos se ejecutan como procesos en segundo plano, así que tendrás que apagar el ordenador o usar el comando "kill" (o, mejor aún, "skill") del shell para deshacerte de ellos. Puedes monitorizarlos con netstat. Recomiendo:
sudo netstat -anp|grep perl
para ver qué está escuchando, y
sudo skill -9 perl
para matarlos cuando ya hayas tenido suficiente.
NB: Si usas install.sh para instalar este programa, tendrás que ejecutar
sudo skill -9 malbait
en su lugar. Aunque todavía puedes monitorizarlo con: sudo netstat -anp|grep perl
Alternativamente, puedes simplemente apagar la máquina. ¡Obviamente, no uses malbait mientras uses perl para cualquier otra cosa! Recomiendo una máquina "cebo" dedicada, ya sea algo pequeño como una Raspberry Pi ejecutando los puertos por defecto, o un ordenador grande ejecutando tantos puertos como puedas escuchar (preferiblemente todos ellos).
Malbait usa TCP por defecto, pero puede soportar UDP por sí solo, y ambos pueden ejecutarse lado a lado.
Se recomienda MUY ENCARECIDAMENTE que uses este programa en modo superusuario, ya sea invocando gainroot (sudo gainroot) o ejecutándolo con sudo (sudo malbait). DEBES tener permisos de superusuario para abrir cualquiera de los primeros 1024 puertos.
Se invoca así
malbait -foo
si lo ejecutas sin parámetros, escupirá un texto largo explicando el uso en detalle. Si quieres empezar "listo para usar", ejecuta
malbait -defaults
Esto abrirá sus puertos por defecto y creará servidores donde sea posible.
Malbait puede crear servidores ficticios para Telnet, FTP, SMTP, POP3, BGP, HTTP (no brillantemente), TR-69 (no brillantemente), imap, systat, echo y el antiguo servidor "time" ASCII. Por defecto se abren en todos sus puertos estándar, pero puedes especificar puertos para ellos.
También puedes abrir un rango de puertos, es decir,
malbait -ports:1-1024
abrirá los puertos 1-1024 (los puertos "bien conocidos" o "restringidos") y creará servidores falsos donde corresponda.
El uso de malbait solo está limitado por la cantidad de memoria que tengas. Las opciones -trans_proto:tcpudp y -ports: te dan el poder de vigilar cada puerto si tienes una máquina lo bastante hardcore; o de tumbar tu ordenador si no la tienes. Descubro que mi pequeño portátil Lenovo x200 puede manejar unos 6000 puertos más o menos antes de empezar a volverse loco, pero tu kilometraje puede variar. ¿Quieres ver lo potente que es REALMENTE tu nueva máquina? Malbait puede proporcionar un punto de referencia; personalmente me encantaría ver qué pasa en una máquina ejecutando
malbait -ports:1-65535 -trans_proto:tcpudp
en un ordenador muy potente: en mi experiencia con solo el 10% de eso, definitivamente hay más tráfico UDP malicioso por ahí (principalmente gilipollas intentando estafar llamadas telefónicas gratis, al parecer), y telnet es una auténtica placa de Petri, pero me encantaría ver un estudio del territorio inexplorado más allá, si alguien tiene la potencia (y la capacidad y los cojones / ovarios de desactivar completamente su cortafuegos!).
Si intentas abrir, digamos, un servidor FTP en modo UDP, ( malbait -proto:ftp -trans_proto:udp ) abrirá los puertos por defecto, ¡pero no obtendrás un servidor FTP falso! UDP solo creará servidores para servicios compatibles con UDP, que son asciitime, systat, echo y los meta-protocolos especiales "hacktime" y "fuzz".
Hacktime es una broma inspirada en la película "Kung Fury". Crea servidores de tiempo NTP, tanto de la vieja escuela como modernos, y transmite o todos unos o todos FFs, con la idea de emular la fecha de reinicio del milenio Unix ("hacktime-2036") o un sistema recién arrancado ("hacktime-1900"). Obviamente, el servidor NTP es mucho más complicado que eso y probablemente no funcionará, pero definitivamente confundirá a cualquier hacker que te ataque pensando que eres un servidor NTP.
Fuzz es exactamente eso: un intento de fastidiar los ataques automatizados lanzándoles basura aleatoria. De nuevo, esto es experimental y no me lo tomo necesariamente muy en serio, pero pensé que alguien podría encontrarlo útil, así que se queda.
El servidor HTTP busca un archivo llamado "webpage.html". Si no lo encuentra, genera una página 404 simple en su lugar. De nuevo, no es brillante: este programa trata más de ayudarte a examinar los clientes exóticos y aleatorios que intentan conectarse a ti que de las aburridas arañas web.
Ten en cuenta que si lo abres en un navegador web verás muchas cadenas "HTTP/1.1 200 OK" debajo del contenido; esto se debe a que no está pensado para abrirse en un navegador web, sino para mantener enganchados el mayor tiempo posible a los bots de rastreo web potencialmente maliciosos.
Por supuesto, siéntete libre de reemplazar la webpage.html por defecto con la tuya propia: aunque eres bienvenido a usarla, está diseñada con fines de demostración.
La opción -transblank te permite anular la creación de servidores falsos. Así que si invocas
malbait.pl -port:23 -proto:transblank
o
malbait.pl -proto:telnet -transblank
malbait transmitirá lo más parecido a una respuesta en blanco (un único y solitario retorno de carro) a los clientes en lugar de crear un "servidor Telnet".
Se han proporcionado varias opciones para los amantes de la exótica informática.