HoneyPot Easy. Parte V
HoneyPots a la de 1, a la de 2, a la de 3, a la de 4 y ahora a la de 5 !!!! que rima con telecinco...
Vamos a empezar por repasar la línea de comandos de Honeyd.
-d Do not daemonize, be verbose.
-P Enable polling mode.
-l logfile Log packets and connections to logfile.
-s logfile Logs service status output to logfile.
-i interface Listen on interface.
-p file Read nmap-style fingerprints from file.
-x file Read xprobe-style fingerprints from file.
-a assocfile Read nmap-xprobe associations from file.
-0 osfingerprints Read pf-style OS fingerprints from file.
-f configfile Read configuration from file.
-c host:port:name:pass Reports starts to collector.
--webserver-port=port Port on which webserver listens.
--webserver-root=path Root of document tree.
--fix-webserver-permissions Change ownership and permissions.
--rrdtool-path=path Path to rrdtool.
--disable-webserver Disables internal webserver.
--disable-update Disables checking for security fixes.
-V, --version Print program version and exit.
-W port Honeyd web server prot.
-N Displays all available network interfaces.
-h, --help Print this message and exit.
Ahora pasamos a la parte interesante, en la creación de plantillas, TEMPLATES, en donde configuramos las opciones relativas al comportamiento del honeypot para un servicio emulado: Personalidad del sistema operativo ( si quieres volverte un experto, loco, pero experto en este tema, te aconsejo que leas NMAP os detection), Ip virtual asignada para emular, comportamiento ante protocolos ICMP/TCP/UDP y variables del sistema como uptime,descripción,UID, etc.
Escribimos en un elegante a la par que simpático notepad lo siguiente
CREATE Windows2000sp3.
No es case sensitive, es decir, que le da igual mayúsculas que minúsculas.
No puede empezar el nombre con un número, no puede tener caracteres "raros" ni espacios en el nombre.
Es recomendable configurar primero CREATE DEFAULT para definir el comportamiento por defecto en caso de no estar definido algún comportamiento específico.
Configuramos el comportamiento para las respuestas a un envio de FIN flag y para el envio de paquetes fragmentados.
Podemos omitir el comportamiento detallado con solo usar como "personality name" un nombre de personalidad válido (escrito exáctamente como aparece) en el fichero de firmas nmap-prints.
ANNOTATE Windows 2000 SP3.
Ahora vinculamos en nuestro "template" o plantilla que use esta personalidad.
SET <template name> PERSONALITY "<personality name>"SET Windows2000sp3 PERSONALITY "Windows 2000 SP3"
Le asignamos una dirección IP.
BIND <IP address(es)> <template name>BIND 10.0.0.1 Windows2000sp3
Cuando se detecte un ataque a una IP distinta, se comportará como definamos en Defautl Template.
Ahora configuramos los puertos visibles y bloqueados ( emulando el compotamiento de un firewall por delante).
ADD Windows2000sp3 UDP PORT 135 BLOCK
ADD Windows2000sp3 UDP PORT 137 BLOCK
ADD Windows2000sp3 UDP PORT 138 BLOCK
ADD Windows2000sp3 UDP PORT 389 BLOCK
ADD Windows2000sp3 UDP PORT 445 BLOCK
ADD Windows2000sp3 UDP PORT 500 OPEN
ADD Windows2000sp3 UDP PORT 4500 OPEN
Con esto digamos que tendríamos una configuración de honeypot de MUY BAJA INTERACCION ya que simplemente aparecerán los puertos abiertos o cerrados, pero no se podrá interactuar con ellos.
Mejoramos la interacción añadiendo scripts que emulan respuestas de servicios. Por ejemplo, para seguir con esta configuración de emulación de un exchange publicado, configuramos.
Aparte de los scripts, podemos implementar alta interacción desviando peticiones/ataques hacia ip´s/puertos de sistemas reales. Por ejemplo, desviar un ataque hacia el puerto 21, a un servidor FTP real de nuestra organización.
Seguimos configurando comportamientos.
Tiempo "vivo" el servidor.
SET <template name> UPTIME <seconds>
Tasa de paquetes perdidos.
SET <template name> DROPRATE IN <%>
UID y GID
SET <template name> UID number GID number
Copio y pego un ejemplo ya hecho.
Vamos a lanzar el demonio, ese demonio que todos llevamos dentro xD:
-f c:\Honeyd\Honeyd.config -i 1-l c:\Honeyd\Log 10.0.0.0/8
Ojo con las rutas, porque en casi todos los manuales hay varios fallos, por ejemplo nmaps.print ...
Si guardamos este comando en un fichero .bat. aunque sea peor para el número de visitas de esta web xD, no tendreis que recordar los parámetros...
Aparte, que os guste todo hecho. Vamos a repasar lo básico de networking.
si estamos en nuestra red, por ejemplo 192.168.1.0/24. Montamos el honeypot sobre un windows virtual, en modo bridge, por lo cual estaremos en esa misma red, con una ip por ejemplo 192.168.1.123. y una puerta de enlace, tal cual... si en ese equipo emulamos una red 10.0.0.0 con un equipo, en concreto este Exchange 10.0.0.1. Cuando probamos un ping o un ataque desde 192.168.1.123 a 10.0.0.1, se irá por la puerta de enlace 192.168.1.(por ejemplo 1) al router y no encontrará el equipo.
Es necesario indicar una ruta estática en el sistema atacante ( el que ejecuta nmap) en la que diga que para la red 10.0.0.0 ( segmento de red honeyd) use la ip ... del equipo sobre el que está instalado el honeypot !!!!
6 megas de fichero de log´s...
Como podeis apreciar, el registro del log es muy básico, dirección ip de origen, puerto de origen, ip destino, puerto destino, tamaño del paquete y los flag´s detectados.
Espero terminar este asunto mañana, de momentos...gracias por leerme.
Vamos a empezar por repasar la línea de comandos de Honeyd.
-d Do not daemonize, be verbose.
-P Enable polling mode.
-l logfile Log packets and connections to logfile.
-s logfile Logs service status output to logfile.
-i interface Listen on interface.
-p file Read nmap-style fingerprints from file.
-x file Read xprobe-style fingerprints from file.
-a assocfile Read nmap-xprobe associations from file.
-0 osfingerprints Read pf-style OS fingerprints from file.
-f configfile Read configuration from file.
-c host:port:name:pass Reports starts to collector.
--webserver-port=port Port on which webserver listens.
--webserver-root=path Root of document tree.
--fix-webserver-permissions Change ownership and permissions.
--rrdtool-path=path Path to rrdtool.
--disable-webserver Disables internal webserver.
--disable-update Disables checking for security fixes.
-V, --version Print program version and exit.
-W port Honeyd web server prot.
-N Displays all available network interfaces.
-h, --help Print this message and exit.
Ahora pasamos a la parte interesante, en la creación de plantillas, TEMPLATES, en donde configuramos las opciones relativas al comportamiento del honeypot para un servicio emulado: Personalidad del sistema operativo ( si quieres volverte un experto, loco, pero experto en este tema, te aconsejo que leas NMAP os detection), Ip virtual asignada para emular, comportamiento ante protocolos ICMP/TCP/UDP y variables del sistema como uptime,descripción,UID, etc.
Escribimos en un elegante a la par que simpático notepad lo siguiente
CREATE Windows2000sp3.
No es case sensitive, es decir, que le da igual mayúsculas que minúsculas.
No puede empezar el nombre con un número, no puede tener caracteres "raros" ni espacios en el nombre.
Es recomendable configurar primero CREATE DEFAULT para definir el comportamiento por defecto en caso de no estar definido algún comportamiento específico.
Configuramos el comportamiento para las respuestas a un envio de FIN flag y para el envio de paquetes fragmentados.
ANNOTATE "Windows 2000 SP3
" [NO] FINSCANANNOTATE "Windows 2000 SP3" FRAGMENT Podemos omitir el comportamiento detallado con solo usar como "personality name" un nombre de personalidad válido (escrito exáctamente como aparece) en el fichero de firmas nmap-prints.
ANNOTATE Windows 2000 SP3.
Ahora vinculamos en nuestro "template" o plantilla que use esta personalidad.
SET <template name> PERSONALITY "<personality name>"SET Windows2000sp3 PERSONALITY "Windows 2000 SP3"
Le asignamos una dirección IP.
BIND <IP address(es)> <template name>BIND 10.0.0.1 Windows2000sp3
Cuando se detecte un ataque a una IP distinta, se comportará como definamos en Defautl Template.
Ahora configuramos los puertos visibles y bloqueados ( emulando el compotamiento de un firewall por delante).
ADD Windows2000sp3 UDP PORT 135 BLOCK
ADD Windows2000sp3 UDP PORT 137 BLOCK
ADD Windows2000sp3 UDP PORT 138 BLOCK
ADD Windows2000sp3 UDP PORT 389 BLOCK
ADD Windows2000sp3 UDP PORT 445 BLOCK
ADD Windows2000sp3 UDP PORT 500 OPEN
ADD Windows2000sp3 UDP PORT 4500 OPEN
Con esto digamos que tendríamos una configuración de honeypot de MUY BAJA INTERACCION ya que simplemente aparecerán los puertos abiertos o cerrados, pero no se podrá interactuar con ellos.
Mejoramos la interacción añadiendo scripts que emulan respuestas de servicios. Por ejemplo, para seguir con esta configuración de emulación de un exchange publicado, configuramos.
ADD Windows2000sp3
TCP PORT 25 "sh c:\Honeyd\scripts\smtp.sh" ADD Windows2000sp3 TCP PORT 80 "cscript.exe c:\Honeyd\scripts\iis6.cs"
ADD Windows2000sp3 TCP PORT 110 "sh c:\Honeyd\scripts\pop.sh"
ADD Windows2000sp3 TCP PORT 119 "perl.exe c:\Honeyd\scripts\nntp.pl" ADD Windows2000sp3 TCP PORT 143 "wscript.exe c:\Honeyd\scripts\imap.vbs"ADD Windows2000sp3
TCP PORT 443 "sh c:\Honeyd\scripts\ssl.sh"Aparte de los scripts, podemos implementar alta interacción desviando peticiones/ataques hacia ip´s/puertos de sistemas reales. Por ejemplo, desviar un ataque hacia el puerto 21, a un servidor FTP real de nuestra organización.
ADD <
template name> <protocol> PORT <port number> PROXY <real server IP address port number > Seguimos configurando comportamientos.
Tiempo "vivo" el servidor.
SET <template name> UPTIME <seconds>
Tasa de paquetes perdidos.
SET <template name> DROPRATE IN <%>
UID y GID
SET <template name> UID number GID number
Copio y pego un ejemplo ya hecho.
###Example Honeyd Template-Exchange Server 2003###
#Create and bind template
CREATE Exchange Server 2003
ANNOTATE "Microsoft Windows.NET Enterprise Server (build 3615 beta)"
SET Exchange Server 2003 PERSONALITY "Microsoft Windows.NET
Enterprise Server (build 3615 beta)"
BIND 10.0.0.1 Exchange Server 2003
#Set port behavior
SET DEFAULT Exchange Server 2003 TCP ACTION RESET
SET DEFAULT Exchange Server 2003 UDP ACTION RESET
ADD Exchange Server 2003 UDP PORT 135 BLOCK
ADD Exchange Server 2003 UDP PORT 137 BLOCK
ADD Exchange Server 2003 UDP PORT 138 BLOCK
ADD Exchange Server 2003 UDP PORT 389 BLOCK
ADD Exchange Server 2003 UDP PORT 445 BLOCK
ADD Exchange Server 2003 UDP PORT 500 OPEN
ADD Exchange Server 2003 UDP PORT 4500 OPEN
ADD Exchange Server 2003 TCP PORT 25 "sh c:\Honeyd\scripts\smtp.sh"
ADD Exchange Server 2003 TCP PORT 80 "cscript.exe c:\Honeyd\scripts\iis6.cs"
ADD Exchange Server 2003 TCP PORT 88 OPEN
ADD Exchange Server 2003 TCP PORT 110 "sh c:\Honeyd\scripts\pop.sh"
ADD Exchange Server 2003 TCP PORT 119 "perl.exe c:\Honeyd\scripts\nntp.pl"
ADD Exchange Server 2003 TCP PORT 143 "wscript.exe c:\Honeyd\scripts\imap.vbs"
ADD Exchange Server 2003 TCP PORT 135 BLOCK
ADD Exchange Server 2003 TCP PORT 137 BLOCK
ADD Exchange Server 2003 TCP PORT 139 BLOCK
ADD Exchange Server 2003 TCP PORT 443 "sh c:\Honeyd\scripts\ssl.sh"
ADD Exchange Server 2003 TCP PORT 445 BLOCK
ADD Exchange Server 2003 TCP PORT 593 OPEN
ADD Exchange Server 2003 TCP PORT 1063 OPEN
ADD Exchange Server 2003 TCP PORT 1071 OPEN
ADD Exchange Server 2003 TCP PORT 1073 OPEN
ADD Exchange Server 2003 TCP PORT 3389 OPEN
#Set template system variables
SET Exchange Server 2003 UPTIME 2248020
SET Exchange Server 2003 DROPRATE IN 0.005
SET Exchange Server 2003 UID 20208 GID 13876
###End of Exchange Server 2003 Example template### Una vez lo tenemos, lo guardamos en el fichero Honeyd.config a continuación de la plantilla default. Vamos a lanzar el demonio, ese demonio que todos llevamos dentro xD:
honeyd.exe -d -p nmap.prints -a
NMAP.ASSOC -f c:\Honeyd\Honeyd.config -i 1-l c:\Honeyd\Log 10.0.0.0/8
Ojo con las rutas, porque en casi todos los manuales hay varios fallos, por ejemplo nmaps.print ...
Si guardamos este comando en un fichero .bat. aunque sea peor para el número de visitas de esta web xD, no tendreis que recordar los parámetros...
Aparte, que os guste todo hecho. Vamos a repasar lo básico de networking.
si estamos en nuestra red, por ejemplo 192.168.1.0/24. Montamos el honeypot sobre un windows virtual, en modo bridge, por lo cual estaremos en esa misma red, con una ip por ejemplo 192.168.1.123. y una puerta de enlace, tal cual... si en ese equipo emulamos una red 10.0.0.0 con un equipo, en concreto este Exchange 10.0.0.1. Cuando probamos un ping o un ataque desde 192.168.1.123 a 10.0.0.1, se irá por la puerta de enlace 192.168.1.(por ejemplo 1) al router y no encontrará el equipo.
Es necesario indicar una ruta estática en el sistema atacante ( el que ejecuta nmap) en la que diga que para la red 10.0.0.0 ( segmento de red honeyd) use la ip ... del equipo sobre el que está instalado el honeypot !!!!
6 megas de fichero de log´s...
Como podeis apreciar, el registro del log es muy básico, dirección ip de origen, puerto de origen, ip destino, puerto destino, tamaño del paquete y los flag´s detectados.
Espero terminar este asunto mañana, de momentos...gracias por leerme.