Desplegando Honeypot con Kippo.

 

¿Qué es un honeypot? 

La función de un honeypot consiste en atraer y analizar los ataques recibidos.

Es importante tener claro, que nuestro sistema simulará una vulnerabilidad (o varias) para obtener información del atacante y obviamente, lo que buscamos, es, que para el atacante esto sea indetectable.

Como es lógico, hay bastantes honeypots que son open source, además, los hay que integran varios servicios y algunos que no, por ejemplo, uno puede emular sólo SSH y otro SSH y TELNET etc…

Entendido este concepto, quiero dejar claro que en cada entrada, voy a explicar paso por paso como desplegar un honeypot (open source)  de los muchos que hay disponibles en internet.

Si queréis obtener más información sobre los honeypots:  Hacking desde 0 – HoneyPot y Que son los HoneyPot

Underc0de - HoneyPot Kippo

¿Qué es Kippo?

Kippo es un sistema que ha sido desarrollado utilizando Python y Twisted, una potente librería. Kippo permite emular servicios de Secure Shell (SSH).

Desplegando Kippo

Puesto a que Kippo emulará SSH, lo primero que tenemos que hacer, será cambiar de puerto nuestro SSH, ya que, lo suyo, es que Kippo apunte al 22 (puerto por defecto), donde gran cantidad de bots atacarán, sin si quiera detectar, el real.

Para ello, editaremos el fichero de configuración alojado en /etc/ssh/sshd_config

Underc0de - configurando kippo parte 1

Yo he elegido el Puerto 55, pero vosotros podéis escoger otro.

Underc0de - Configuando kippo parte 2

Reiniciamos el servicio SSH para que comience a escuchar en el puerto que queremos.

Underc0de - Configuando kippo parte 3

Instalamos las dependencias necesarias para ejecutar Kippo:

Underc0de - Configuando kippo parte 4

Crearemos un usuario sin privilegios para ejecutar Kippo:

Descargamos kippo del repositorio oficial de github:

Vamos a comenzar a configurarlo desde el fichero de “backup” que nos viene por defecto, para ello, renombramos kippo.cfg.dist por kippo.cfg

Underc0de - Configuando kippo desde backup

A continuación, vemos los valores más importantes a tener en cuenta a la hora de configurar kippo:

Underc0de - Kippo valores importantes
  • ssh_addr: Es el segmento de red en la que kippo escuchará conexiones entrantes siendo 0.0.0.0 todas.
  • ssh_port: Puerto a la escucha, por defecto es 2222, pero puesto a que el puerto del SSH es 22, elegimos este para aumentar los ataques recibidos.
  • hostname: El nombre del host para cuando el atacante consiga acceder. Es recomendable que sea un nombre algo creíble.
  • download_path: Directorio donde se guardarán todos los ficheros descargados por el atacante. Siendo por defecto el directorio dl.
  • Ejemplo real de ficheros almacenados en el directorio:
Underc0de - Archivos reales de kippo
  • filesystem_file: Una de las partes más interesantes a la hora de engañar al atacante, esta opción se encarga de definir el sistema de ficheros entero (directorios, permisos). Podemos editarlo manualmente a nuestro gusto desde el script que hay en utils/fsctl.py
  • Creando un directorio en el sistema de ficheros: Este será nuestro árbol de directorios, el objetivo es modificar los directorios/ficheros de tal forma parezca un sistema real. Para ello podemos crear todos los ficheros y/o directorios que queramos.
Underc0de - creando directorios en kippo
  • data_path:  Directorio donde debe estar alojado el fichero “usersdb.txt” donde están definidos los usuario y sus credenciales de acceso. Como es lógico, si queremos que accedan, los usuarios deben ser comunes y sus credenciales sencillas.  Por defecto, está en el directorio data.
Underc0de - Kippo directorio datta
  • txtcmds_path: Directorio donde deben estar alojados los programas/scripts que podrá ejecutar el atacante desde la supuesta shell. El directorio por defecto es txtcmds.
Underc0de - Kippo txtcmds
  • ssh_version_string: Información que devolverá el honeypot cuando realicen peticiones sobre el puerto a la escucha (ejemplo, nmap).

Hay opciones interesantes, como interact_enabled e interact_port  que permite acceder a las sesiones del atacante en tiempo real. Por defecto está desactivado.

Underc0de - Kippo en tiempo real

Además, podemos guardar todos los logs en nuestra base de datos, la configuración se encuentra en el mismo fichero:

Underc0de - Kippo logs

Si ya tenemos configurado nuestro kippo, pasamos a editar el fichero start.sh dejándolo de esta manera:

Underc0de - Kippo en modo backgroud

Puesto que queremos instalar la versión web de Kippo (Kippo Graph), tenemos que instalar las siguientes dependencias:

Underc0de - kippo log

Descargamos la última versión en su página oficial: Kippo GUI

Underc0de - Kippo en modo grafico

Empezamos a configurar kippo graph, para ello, damos permisos a los gráficos y editamos su fichero de configuración.

Underc0de - dando permisos a kippo

Le introducimos los datos de la DB conforme lo hemos hecho anteriormente:

Underc0de - Definiendo parámetros en la base de datos para kippo

Debemos guardar los ficheros de kippo-graph en /var/www o en el directorio de nuestro servidor web.

Nos logueamos con el usuario kippo e inciamos el servicio.

Underc0de - Kippo guardando cambios

Ahora ya tenemos kippo a la escucha por el puerto 22 con los usuarios y contraseñas definidos anteriormente.

Para ello, nos conectamos y lo comprobamos:

Underc0de - Kippo en modo escucha

Accedemos a kippo-graph para comprobar si recibimos los datos:

En este caso, uno de mis sensores ha recibido casi 80mil ataques vía SSH en 2 años.

Underc0de - Kippo en modo gráfico

Kippo Graph genera muchas estadísticas y gráficos que son útiles, por ejemplo, el top 10 de comandos más utilizados:

Underc0de - Kippo top 10 de comandos más utilizados

Sin duda, unas de las opciones más interesantes (si tenemos el interact desactivado), es el kippo playlog donde podremos reproducir las sesiones de los atacantes:

Underc0de - Kippo reproduciendo sesiones en tiempo real

También tendremos un registro de todos los atacantes y los usuarios:contraseñas utilizados por cada atacante, útil para generarse un diccionario propio.

Underc0de - Kippo geo-ip
Underc0de - Sesiones en kippo

Agradecemos a Blackdrake por compartir la experiencia con el HoneyPot Kippo


Posts Relacionados

Comments

comments

Deja una respuesta

Tu email no será publicado. Los campos requeridos estan marcados con *
Puedes usar tags HTML y los atributos: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">