
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.
-noloop: No hace bucle, es decir, mata cada servidor después de una conexión. Si es un servidor UDP, lo mata después de que el cliente haya introducido un "comando".
-no_multiplexing: Impide que el servidor TCP haga multiplexación, es decir, lanzar servidores en un proceso hijo. Aunque puedes ahorrar mucha memoria de esta manera, NO se recomienda: se sabe que nmap puede tumbar los servidores TCP de Malbait, y tenerlos en un proceso hijo significa que malbait puede recuperarse de esto y de otros intentos de conexión maliciosos, y registrarlos. Así que si usas la opción "-no_multiplexing" te GARANTIZO que terminarás con archivos temporales huérfanos esparcidos por tu carpeta / directorio de trabajo como un sarpullido, y esto te pondrá muy triste; también perderás servidores permanentemente cuando se estrellen. TL;DR: No uses esta opción.
-maxreq:nn Te permite generar potencialmente nn servidores TCP al mismo tiempo, para que puedas atender (potencialmente) a esa cantidad de "clientes" a la vez. El valor por defecto es 2.
-noblocking: lanza servidores en modo "nonblocking"; no tiene mucho sentido, aunque podría hacernos menos vulnerables a las putadas de nmap si se usa junto con -no_multiplexing. Pero ¿por qué querrías hacer eso? En serio, algunos clientes prefieren que seas nonblocking, así que si tienes problemas, prueba con esta opción.
-timeout:nn Establece el tiempo de espera para los clientes en nn segundos. El valor por defecto es 30, pero si estás recibiendo muchos ataques automatizados, quizás quieras bajarlo para no perderte todo el otro malware que se conecta a tu ordenador.
-report:filename.txt Te permite poner nombre a tus propios archivos de informe.
-recvbuffer:nn: Establece una variable interna que almacena en búfer recv (bytes recibidos) con el valor nn. El valor por defecto es 1024, así que si quieres engullir más de 1k a la vez (no es un deseo irrazonable), aquí es donde lo cambias.
La salida de texto de malbait es un poco... desordenada en este momento. Está llena de mensajes de depuración e información de estado. Puedes ignorarla con seguridad a menos que seas un desarrollador o un masoquista. Los mensajes de error reales se registran en el archivo de registro.
Malbait crea tres tipos de archivos de registro: un archivo CSV que te da una visión general de todos los clientes que se han conectado a tu máquina, un archivo de texto con datos y análisis más detallados, y archivos temporales (con nombres como TEMP-16537) que se eliminarán automáticamente a medida que malbait abre / cierra puertos y crea / destruye "servidores".
Perdón por los archivos temporales, era la única manera de asegurar que TODO el tráfico fuera capturado, ¡incluso cuando intenta tumbarnos! Si ves alguno por ahí, no hagas nada, solo actualiza la página y probablemente desaparecerán.
Si la gente muestra interés en este programa y me envía correos / dinero / cartas de amor / amenazas, le daré soporte con actualizaciones y nuevas funciones: por ejemplo, puedo añadir fácilmente soporte ICMP, y quizás también un mejor manejo de clientes web. Me lo he pasado genial escribiendo esto y sé que disfrutaría muchísimo dándole soporte. Pero si no tengo noticias de la gente, asumiré que no es tan útil y pasaré a otras cosas. Así que si quieres ver más funciones geniales, o deseas que arregle el Molesto Error X, por favor ponte en contacto conmigo.
Mi dirección de correo electrónico es [email protected] La dirección de bitcoin para este programa (pista, pista) es 16P267RxgkLsEDVEKwLGsfnUCJ6bfgyWKR
Gracias por leer, y por favor, por favor, envíame tus Satoshis.