70
El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3, usted puede copiarlo, distribuirlo y modificarlo. Trabajo de Fin de Master Seguridad en Sistemas Operativos - HoneyPot. Ana González y Pedro Berrocal

Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

El presente documento de hacer un

humilde estudio sobre las soluciones

honeypot. Este documento se licencia

bajo GPLv3, usted puede copiarlo,

distribuirlo y modificarlo.

Trabajo de

Fin de

Master Seguridad en Sistemas

Operativos - HoneyPot.

Ana González y Pedro Berrocal

Page 2: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 1

Trabajo de Fin de Máster

Seguridad en Sistemas Operativos - HoneyPot.

Page 3: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 2

AGRADECIMIENTOS

A todas aquellas personas que dedican su vida al conocimiento

para hacer un mundo mejor compartiendólo.

Page 4: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 3

ÍNDICE

1. Capítulo 1. –Introducción- .................................................................................................... 5

1.1.1 ¿Qué es un honeypot? ......................................................................................................... 5

1.1.2 Honeypot, un poco de historia ......................................................................................... 6

1.1.3 Tipos de honeypots ......................................................................................................... 7

1.1.4 Honeynet .......................................................................................................................... 9

1.1.5 Elementos conceptuales de un honeypot ........................................................................ 9

1.2. Objetivos y justificación del trabajo de investigación ................................................. 10

1.2.1 Motivación........................................................................................................................... 10

1.2.2 Objetivos ............................................................................................................................. 10

1.3. Estructura del trabajo.................................................................................................. 11

2. Capítulo 2. - Estudio de sistemas operativos y fases de planificación y diseño ...................... 12

2.1 Estudio de honeypots según el sistema operativo ........................................................... 12

2.2. Sistema operativo linux .................................................................................................... 12

2.2.1 Vulnerabilidades en linux .................................................................................................... 12

2.2.2 Honeypots propuestos en linux .......................................................................................... 14

2.2.3 Honeywall ............................................................................................................................ 14

2.2.4 Honeydrive .......................................................................................................................... 22

2.3 Sistema operativo Windows ............................................................................................. 25

2.3.1 Tipos de ataques comunes en Windows ............................................................................. 25

2.3.2 Honeypots en Windows ...................................................................................................... 27

2.4 Fase de planificación y diseño .......................................................................................... 31

2.4.1 Planificación ........................................................................................................................ 31

2.4.2 Diseño .................................................................................................................................. 33

3. Capítulo 3. Metodología de instalación, configuración y testing de arquitectura. ............. 36

3.1 Instalación de las máquinas virtuales y configuración de la red. ................................ 36

3.2 Instalación y configuración de Debian .............................................................................. 37

3.3 Instalación honeydrive ...................................................................................................... 39

3.4 Configuración Honeydrive ................................................................................................. 40

3.4.1 Mwcrawler .......................................................................................................................... 40

3.4.2 Configuración de Dionaea ................................................................................................... 43

3.4.4 Configuración de Amun ....................................................................................................... 46

3.4.5 Configuración de Tiny Honeypot ......................................................................................... 48

3.4.6 Configuración de Wordpot .................................................................................................. 54

Page 5: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 4

3.4.7 Configuración de Glastopf ................................................................................................... 54

3.5 Instalación y Configuración WinhoneyD ........................................................................... 56

3.5.1 Instalación ........................................................................................................................... 56

3.5.2 Configuración: ..................................................................................................................... 56

4. Exposición de los sistemas .................................................................................................. 58

5. Análisis de datos .................................................................................................................. 59

6. Conclusiones............................................................................................................................ 60

X. BIBLIOGRAFÍA .................................................................................................................... 61

ANEXO ........................................................................................................................................ 62

Figura 1 Configuración de interfaces vboxnet en virtualbox: ................................................. 62

Figura 2 Configuración vboxnet0 ............................................................................................ 62

Figura 3 Configuración vboxnet1 ............................................................................................ 63

Figura 4 Características de la maquina virtual Debian ............................................................ 64

Figura 5 Instalación de Snort ................................................................................................... 65

Figura 6 Configuración del Snort 1 .......................................................................................... 65

Figura 7 Configuración de Snort 2 ........................................................................................... 66

Figura 8 Configuración de Snort 3 ........................................................................................... 66

Figura 9 Maltrive ..................................................................................................................... 67

Figura 10 Mastiff.db ................................................................................................................ 67

Figura 11 Interfaz gráfica de dionaea ...................................................................................... 68

Figura 12 Amun ....................................................................................................................... 69

Page 6: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 5

1. Capítulo 1. –Introducción-

La seguridad informática es un mundo cambiante y competitivo, donde diversos actores tratan

de encontrar nuevos bugs, formas de ataque y defensa, día a día, por diversas razones.

A medida que los ataques se vuelven más ingeniosos y variados con el paso del tiempo, las

medidas defensivas deben mantenerse a la altura.

Los investigadores cuentan con su ingenio y la tecnología, para diseñar sistemas de protección

que impidan o por lo menos palien la exposición a vulnerabilidades. Este Trabajo de fin de

Máster, TFM en adelante, habla de cómo adelantarse al gato y no sentirse ratón, de como

descubrir nuevos ataques, o por lo menos de una de las formas de hacerlo.

1.1.1 ¿Qué es un honeypot?

“Ser lo que soy, no es nada sin la Seguridad... Incluso para la locura se observa un método.” W.

Shakespeare.

Esta frase refleja claramente la partida de ajedrez que se juega a diario, y no sin intereses de

por medio, en el mundo de la seguridad IT actual.

Es un pequeño baile en apariencia caótico, donde atacantes, empresas de seguridad, y clientes

cumplen sus roles mientras las piezas del tablero se mantienen silenciosamente ajenas como

víctimas o verdugos.

Pero, ¿cómo observar el baile?, ¿cómo ver los próximos movimientos?, un honeypot puede ser

una buena respuesta, y ¿qué es un honeypot?

La traducción literal es “tarro de miel”, y ¿por qué un tarro de miel?, porque se trata de un

sistema que aparenta ser vulnerable, lo cual es atractivo para el atacante, cuando en realidad

su función principal es estudiar y recopilar información y patrones del atacante.

El diccionario Algesa lo define como:

En computación, un honeypot es una trampa para detectar, desviar o contrarrestar de alguna

manera, los intentos de uso no autorizado de los sistemas de información.

Generalmente un honeypot puede ser una computadora, datos o un sitio de red que parecen

ser parte de una red pero que en realidad están aislados, protegidos y monitorizados, y que

parecen contener información o recursos que serían valiosos para los posibles atacantes.

Un honeypot es una herramienta de seguridad informática utilizada para recoger información

sobre los atacantes y sus técnicas.

Page 7: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 6

Se puede crear un honeypot en un sistema entero, como será el caso del estudio a

continuación, o de pequeñas partes o servicios que lo compongan.

Los honeypots cumplen diversas funciones, por un lado crean un entorno que resulta atractivo

para el atacante y es expuesto intencionadamente para recibir estos ataques y por el otro sirve

para análisis de los mismos.

Estos ataques no siempre provienen de personas, no siempre hay alguien detrás atacando el

sistema, en muchas ocasiones son bots o maquinas programadas para tal propósito que

realizan ataques automatizados a varios sitios a la vez con una vulnerabilidad concreta.

También es importante señalar que poner un honeypot en nuestro sistema puede ser una

medida defensiva a tener en cuenta ya que desvía la atención del atacante, bot o humano, del

objetivo real, o lo entretiene.

Por otra parte nos permite capturar nuevos virus para su posterior estudio, conocer y

descubrir nuevas vulnerabilidades.

Más adelante en el desarrollo de este TFM veremos que hay formas de percibir que el sistema

o servicio atacado no es real, y también formas de hacer que sí lo parezca o enmascarar

nuestro honeypot.

Y ¿cómo surgió esta caja de Schrödinger?

1.1.2 Honeypot, un poco de historia

No hay mucha documentación al respecto y las fechas pueden no ser exactas ya que varían

según la fuente consultada, pero para hacernos una idea de como surgieron, en 1998, se

liberó la primera versión de herramientas para honeypot creada por Fred Cohen, llamada

Deception Toolkit .

Lance Spiztner, consultor y analista informático, construye en el año 2000, en su hogar una

red de seis equipos destinados a estudiar el comportamiento y los patrones tanto de ataques

como de atacantes.

De esta pequeña prueba nacerá lo que hoy en día se conoce como honeynet.

Su sistema se mantuvo en funcionamiento durante un casi un año, desde abril a febrero del

2000, recopilando resultados asombrosos, sus equipos llegaban a ser escaneados hasta

catorce veces en un día.

Varias empresas de seguridad comenzaron sus desarrollos en este campo, no ajenos al nuevo

marco de negocio que se les presentaba.

En la actualidad miles de desarrolladores trabajan a diario para crear nuevas soluciones,

herramientas y características para todos los tipos de honeypots existentes.

Page 8: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 7

1.1.3 Tipos de honeypots

Del mismo modo que no utilizamos una trampa de elefantes para cazar ratones, un honeypot

puede adaptarse a unos requerimientos específicos, adecuándose al objetivo del mismo, de

donde nacen diversos tipos de honeypots.

1.1.3.1 Clasificación

Los honeypots pueden se clasificados según su ambiente de implementación como: honeypots

para la producción o honeypots para la investigación y según su nivel de interacción como de

alta o baja interacción, también pueden ser máquinas físicas dedicadas a tal fin o máquinas

virtuales.

Según su ambiente de

implementación:

Honeypots de producción

Son implementados por empresas y

corporaciones tanto para proteger redes

cómo para estudiar patrones y por

supuesto por su gran función forense.

Suelen ser honeypots de alta interacción

ya que en un sistema con miles de

usuarios la recuperación del mismo en

caso de desastre puede llegar a afectar a la disponibilidad y esto es algo que difícilmente se

puede permitir ningún administrador y menos la compañía, hacer que un honeypot forme

parte del sistema ayuda a prever el tipo de ataques que se reciben y así poder pormenorizar

los incidentes críticos y establecer unas políticas de seguridad coherentes.

Se implementan en infraestructuras Tls y están sujetos a ataques constantes.

Honeypots de investigación

Son Honeypots implementados, normalmente en universidades y centros de estudio con la

finalidad de servir de recurso educativo.

Su objetivo primordial suele ser el de estudiar patrones de ataque, análisis de datos, gestión de

amenazas, en pocas palabras permiten a los estudiantes ver el panorama de la seguridad en

tiempo real, analizándolo y conociendo los pormenores del mismo.

Un ejemplo claro de este tipo de este tipo de honeypots es el proyecto honeynet, el cual es un

proyecto sin ánimo de lucro dedicado a la investigación y el desarrollo de herramientas Open

Source para la seguridad, el cual ya cuenta con su propia red social llamada hpfriends, donde

se permite el volcado de datos de las honeynet.

Según su ambiente de

implementación

•Honeypots de investigación

•Honeypots de producción

Según su nivel de interacción

•Honeypots de baja interacción

•Honeypots de alta interacción

Page 9: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 8

Según su nivel de interacción:

Honeypots de baja interacción

Como se dijo en al principio de esta introducción, un honeypot no tiene por que ser un sistema

completo, puede ser un servicio del mismo y a esto mismo nos referimos con honeypots de

baja interacción.

Los honeypots de baja interacción son aquellos que emulan servicios concretos sirviendo para

proteger estos servicios, un ejemplo de este tipo de honeypots es Kippo, cuya finalidad es

simular un servicio ssh.

Este tipo de honeypot también puede emular un sistema operativo completo. Al no tener

usuarios ni más procesos o demonios que los propios del sistema, resulta extremadamente

sencillo ver cualquier actividad sospechosa y el nivel de interacción del atacante queda

exclusivamente limitado al nivel de emulación del honeypot.

Por otro lado este tipo de honeypots son realmente muy fáciles de instalar y mantener. Sólo se

necesita una máquina virtual como puede ser VirtualBox, elegir el sistema operativo, montar el

servicio y establecer la estrategia de monitoreo. Al ser un único servicio la cantidad de logs a

analizar es mucho menor que en un honeypot de alta interacción.

Uno de los casos más llamativos y útiles de este tipo de honeypots son los utilizados para

plataformas web relativamente nuevas como puede ser Worpress. Este tipo de plataformas

están compuestas de una gran variedad de plugins y software de terceros que añaden más

piezas al rompecabezas de la seguridad en este tipo de sistemas.

Como desventaja de este tipo de honeypots he de señalar que en ocasiones la simulación del

servicio no es completamente fiel y el atacante puede darse cuenta de que está en un

honeypot.

Honeypots de alta interacción

Este tipo de honeypots son implementados en servidores reales y los servicios monitorizados

que contienen no son emulados, son sistemas reales implementados con servicios y

aplicaciones reales que se ejecutan de manera normal.

Las bases de datos, tablas de usuarios y documentos contenidos en estos servicios, si son

falsos, pero no existe ningún software de emulación que los contenga.

De este modo es posible capturar mayor información de los atacantes ya que estos se

encuentran atacando un sistema real. El atacante no tiene por que percibir la trampa en este

tipo de sistemas por lo que usará todo su arsenal, rootkits, exploits, código propio, zero-days,

lo que permite mayor cantidad de información capturada y quizás mayor fiabilidad de la

misma.

Por otro lado, los Honeypots de Alta Interacción no asumen nada acerca del posible

comportamiento que tendrá el atacante, proveyendo un entorno abierto que captura todas las

actividades realizadas y que ofrece una amplia gama de servicios, aplicaciones y depósitos de

Page 10: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 9

información que pueden servir como blanco potencial para aquellos servicios que

específicamente deseamos comprometer. Esto permite a las soluciones de alta interacción

conocer comportamientos no esperados.

Este tipo de honeypots ha de ser cuidadosamente implementado para evitar que el atacante

pueda llegar a la red real y comprometer servidores reales no previstos en tal práctica, sobre

este punto hablaremos con más detenimiento en el segundo capítulo de este TFM.

1.1.4 Honeynet ¿Qué pasa cuando dos honeypots se encuentran en la red?, ¿cómo hacer si queremos tener

dos honeypots de alta interacción con diferentes sistemas operativos pero aunando logs?.

Una honeynet son dos o más honeypots interconectados, construyendo una red de honeypots,

donde se reciben los logs de todos los honeypots integrantes.

Es un tipo de arquitectura muy interesante ya que podemos unir nuestro honeypot con el de

otra red y ver el tráfico de ambos o tener diferentes honeypots unidos entre si, con diferentes

sistemas operativos en cada uno de ellos y estudiar los ataques los mismos tanto por separado

como en conjunto.

Si queremos ampliar la documentación a este respecto the honeynet project cuenta con un

whitepaper llamado Know your enemy donde se explica en detalle como crear una honeynet.

1.1.5 Elementos conceptuales de un honeypot

Conceptualmente un honeypot puede quedar representado por los siguientes elementos:

Sistema señuelo: Parece un sistema productivo de la organización, atractivo ya que contendrá

información sustancial como passwords, usuarios, bases de datos vulnerables, cuentas de

correo, tarjetas de crédito, convirtiéndose así en un target atractivo para el atacante

Mientras más atractivo, realista y complejo sea este componente, más posibilidades de éxito

tendrá el honeypot.

Firewall: en el modelo, el firewall provee logs de auditoría acerca de los intentos del intruso

por acceder al honeypot. El firewall se configura para registrar todos los paquetes yendo al

sistema señuelo, teniendo en consideración que ningún tráfico válido se dirigiría a ese host.

Se hace hincapié en este concepto: el sistema señuelo se creó exclusivamente para ser

atacado, con lo que, por definición, todo tráfico destinado a dicho sistema debe ser

considerado hostil y sujeto a mayor análisis.

Unidad de monitoreo: es un componente de evaluación de amenazas que supervisa las

actividades maliciosas o violaciones de políticas sobre la red y/o sistemas, produciendo

reportes que luego podrán ser consultados por el administrador del honeypot. Con medidas

como la revisión de las secuencias, las timestamps y los tipos de paquetes utilizados por el

intruso para acceder al honeypot, y también como la presión de teclas, accesos a los sistemas,

Page 11: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 10

archivos cambiados, etc., se busca identificar las herramientas y metodologías utilizadas por

los atacantes y sus intenciones.

Normalmente, en el marco de un honeypot, esta tarea es delegada a un IDS (Intrusion

Detection System).

Unidad de alertas: los honeypots deben ser capaces de generar y enviar avisos a través de

diferentes medios a su administrador para permitir la revisión de las actividades de los intrusos

mientras están ocurriendo.

Unidad de registro: este componente provee eficiencia en el almacenamiento tanto para los

logs del firewall como del honeypot en sí, y todo el tráfico que circula entre el firewall y el

honeypot.

1.2. Objetivos y justificación del trabajo de investigación

1.2.1 Motivación

La motivación fundamental de este proyecto es tener la oportunidad de montar un sistema tan

curioso, complejo y atractivo para llegar al estudio y compresión de cada una de sus partes con

todo lo que ello entraña.

La documentación existente sobre este tipo de proyectos es escasa y normalmente está

centrada en un solo sistema operativo.

1.2.2 Objetivos

El presente trabajo de técnico consiste en la creación o montaje de un HONEYPOT con el

objetivo final de realizar un estudio de cuáles son los principales ataques que se producen en

cada uno de los sistemas operativos caso de este trabajo.

Tal y como se indica en las premisas del este TFM, en todo momento se trabajará con

máquinas virtuales conectadas a internet directamente, y se utilizará una distribución de Linux

para una de las máquinas y una distribución de Windows para la otra máquina. Se analizará

más adelante que distribuciones se escogen y las causas de esta elección.

El principal objetivo de este trabajo técnico es el de obtener un análisis detallado de cómo se

ha de realizar la instalación y configuración de los sistemas operativos instalados así como los

distintos ataques sufridos en estos “equipos” y sistemas operativos.

A la luz de estos objetivos, el trabajo técnico se centrará en las siguientes metas:

En primer lugar, realizar un análisis del sistema operativo Linux que se va a instalar

y una recopilación de las herramientas para convertirlo en un HONEYPOT. Así

mismo realizar este análisis para seleccionar un sistema operativo Windows así

como algún tipo de servicio que tenga algún puerto activo y un estudio de

herramientas existentes para recoger los logs y posibles ataques detectados.

En segundo lugar, la instalación y configuración de un sistema operativo basado en

Linux y configurado con herramientas HONEYPOT. Por otro lado, realizar la

Page 12: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 11

instalación y configuración de un sistema operativo Windows con ciertos servicios

activos y con una herramienta de análisis y recogida de log escogida en el punto

anterior.

En tercer lugar, poner con acceso libre desde internet los servicios instalados los

sistemas operativos Linux y Windows durante un periodo de tiempo razonable.

En cuarto lugar, recoger los datos del punto anterior.

Y por último, realizar un análisis de los datos recogidos.

1.3. Estructura del trabajo

El primer capitulo de este trabajo se centra en poner en antecedentes al lector y dar

unas breves definiciones de en que consiste un honeypot. También cuenta con el índice,

los objetivos y la motivación que han llevado a su realización.

Puesto que todo trabajo técnico parte de una base teórica que lo justifica, en el segundo

capítulo se realizará un estudio sobre qué sistemas operativos se utilizarán así como que

herramientas se utilizarán para la captura de datos y que servicios estarán activos, así como

una estimación de los tiempos necesarios para la realización técnica de este trabajo.

En el tercer capítulo, pasaremos a describir la metodología seguida para la instalación,

configuración y puesta en explotación de los dos sistemas operativos.

El cuarto capítulo, está dedicado a exponer los sistemas operativos creados y

configurados a disposición del público y dejarlos expuestos durante un periodo de tiempo

establecido.

El quinto capítulo, analizar y presentar los datos recabados del anterior capítulo.

Por último, en el sexto capítulo expondremos las conclusiones extraídas de los datos

previamente analizados.

Page 13: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 12

2. Capítulo 2. - Estudio de sistemas operativos y fases de

planificación y diseño

2.1 Estudio de honeypots según el sistema operativo Ya que las vulnerabilidades varían según el sistema el sistema en este caso debe contemplar

sus posibles vulnerabilidades para enfocarse adecuadamente a la práctica propuesta, motivo

por el que expondremos cuales son las vulnerabilidades más frecuentes para cada uno de

ellos.

2.2. Sistema operativo linux

Se ha elegido Debian 7 estable, como sistema operativo para alojar ambos honeypots, o al

menos el honeypot basado en Windows (esto dependerá de la agilidad de la máquina con

ambos instalados), por su robustez, versatilidad, y por ser uno de los sistemas que antes saca

parches para cualquier cve que llega a conocerse.

Otro de los motivos para hacerlo de esta forma es el de intentar ofrecer todo en un único

producto en lugar de en partes separadas y proveer de una seguridad adicional al sistema

implementado.

En cuanto al resto de los sistemas, honeydrive, honeywall y honeynet se describen a

continuación junto con sus herramientas y componentes en detalle pero antes de entrar en

materia sería bueno dar un repaso sobre las vulnerabilidades presentes en linux.

2.2.1 Vulnerabilidades en linux

La lista de las 10 vulnerabilidades más comunes en linux según Sans son:

Software BIND

BIND es el software estándar de facto para actuar como servidor de nombres de dominio, un

servicio esencial para el correcto funcionamiento de la red, ya que se encarga de la conversión

de los nombres de dominio a sus correspondientes direcciones IP.

Determinadas versiones de BIND son vulnerables a ataques que pueden ser utilizados por un

atacante remoto para comprometer los sistemas vulnerables. Adicionalmente, una mala

configuración de BIND puede revelar información sensible sobre la configuración de la red.

Es importante verificar que los sistemas que ejecuten BIND utilicen la versión más reciente,

incluso si esto supone abandonar la versión distribuida por el fabricante del sistema operativo e

instalar la versión del ISC a partir de su código fuente.

Servidor Web

Prácticamente todos los sistemas Unix y Linux incluyen de forma nativa el servidor Apache. Una

configuración inadecuada del mismo así como la utilización de versiones antiguas pueden

provocar problemas de seguridad, con diversos niveles de efectos sobre el nivel de seguridad.

Page 14: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 13

Autenticación

Es habitual encontrar equipos Unix con deficiencias en sus mecanismos de autenticación. Esto

incluye la existencia de cuentas sin contraseña (o con contraseñas ampliamente conocidas o

fácilmente deducibles). Por otra parte es frecuente que diversos programas (o el propio sistema

operativo) cree nuevas cuentas de usuario con un débil mecanismo de autenticación.

Sistemas de control de versiones

El sistema de control de versiones más utilizado en entornos Unix es CVS. Si la configuración del

servidor CVS permite conexiones anónimas, determinadas versiones son susceptibles a ataques

de desbordamiento de búfer que pueden ser utilizados para ejecutar código arbitrario en el

servidor.

Servicio de transporte de correo

Los equipos Unix que actúan como servidores de correo pueden ser vulnerables, caso de utilizar

una versión antigua, a todo tipo de ataques. Fruto de estos ataques se puede conseguir el

control completo del sistema vulnerable, la utilización del servidor de correo como estación de

distribución de correo basura o robo de información sensible.

Protocolo SNMP

El protocolo SNMP se utiliza de una forma masiva para la gestión y configuración remota de

todo tipo de dispositivos conectados a la red: impresoras, routers, puntos de acceso,

ordenadores.

Dependiendo de la versión de SNMP utilizada, los mecanismos de autenticación son muy

débiles. Adicionalmente diversas implementaciones del protocolo son vulnerables a todo tipo

de ataques, que van desde la denegación de servicio, a la modificación no autorizada de la

configuración de los dispositivos o incluso de la consola donde se centraliza la gestión de la red.

Biblioteca OpenSSL

En los últimos meses se han detectado diversas vulnerabilidades en la biblioteca OpenSSL que

afectan a un gran número de productos que hacen uso de la misma: Apache, CUPS, Curl,

OpenLDAP, s-tunnel, Sendmail y muchos otros.

Es importante verificar que se está utilizando la versión más reciente de OpenSSL y todos los

productos que utilizan OpenSSL para el cifrado de la información utilicen esta versión más

moderna.

Mala configuración de los servicios de red

Los servicios NFS y NIS son los métodos más frecuentemente utilizados para la compartición de

recursos e información entre los equipos Unix de una red. Una mala configuración de los

mismos puede ser utilizada para la realización de diversos tipos de ataques, que van desde la

ejecución de código en los sistemas vulnerables a la realización de ataques de denegación de

servicio.

Page 15: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 14

Bases de datos

Las bases de datos son un elemento fundamental para la mayoría de las empresas.

Prácticamente cualquier aplicación empresarial está construida alrededor de una base de datos

donde se almacena información altamente sensible y vital para el funcionamiento del negocio.

Los problemas de configuración, una mala política de la política de control de acceso, errores

en las aplicaciones, errores de diseño o la complejidad intrínseca de muchos entornos puede ser

el origen de problemas de seguridad que afecten a la integridad, fiabilidad y/o disponibilidad

de los datos.

Núcleo del sistema operativo

El núcleo del sistema operativo realiza las funciones básicas como la interacción con el

hardware, la gestión de la memoria, la comunicación entre procesos y la asignación de tareas.

La existencia de vulnerabilidades en el núcleo puede provocar problemas de seguridad que

afecten a todos los componentes del sistema. Es muy importante la correcta configuración del

núcleo, para evitar o reducir el alcance de las posibles vulnerabilidades.

2.2.2 Honeypots propuestos en linux

En esta sección se barajarán alternativas para montar nuestro honeypots en linux, se probaran

y configuraran varias alternativas que permitan tomar una decisión razonada sobre cual es la

mejor opción de implementación.

2.2.3 Honeywall

Honeywall es un sistema operativo basado en Centos 5, también llamado de Honeynet

Gateway es un dispositivo con 3 interfaces de red: eth0, eth1, eth2.

La interface externa (eth0) del Honeywall se conecta con el sistema de producción, la interface

interna (eth1) se conecta con la Honeynet, ambas están a modo de puente (bridge)

transparente lo cual significa que no poseen una pila de IP, ni MAC asociadas, no realizan

encaminamiento, ni decrementan el TTL de los paquetes que las atraviesan.

La tercera interfaz (eth2) sí tiene una dirección de IP y es conectada a una red segura con fines

de administración y recolección de datos.

El comportamiento del Honeywall como dispositivo de Capa 2 (Bridge) transparente, dificulta

enormemente su detección por parte de los atacantes y permite la integración de la Honeynet

a la red de Producción e incluso compartir VLAN con otros sistemas dentro de la organización

en la que se esté implantando.

El software de implementación de honeynets Honeywall Roo v1.4 fue lanzado en Abril de

2009, siendo para esa época, su Sistema Operativo vigente junto con su paquete de

aplicaciones asociadas.

Page 16: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 15

El valor de honeywall reside en sus scripts de configuración que aúnan el compendio de

herramientas de las que está compuesto y pueden ser clasificadas como herramientas de

captura de datos, recopilación de datos y monitorización.

Herramientas de detección, captura y filtrado:

La captura de datos se ejecuta en tres capas, la capa firewall, la capa de red y la capa de los

sistemas.

Snort

Los dispositivos que forman parte de la captura de datos son: el firewall, el IDS y los

honeypots. El firewall/gateway captura y registra todo los paquetes que lo atraviesen en

cualquier sentido, pues toda actividad en la Honeynet es sospechosa. El Firewall está diseñado

no sólo para registrar actividades, también nos alertará de ciertos eventos configurados, como

el intento de conexión por Telnet, o hacia un puerto alto generalmente usado en puertas

traseras. Esta alerta puede ser enviada por email al administrador de la red.

El IDS captura y almacena todos los paquetes circulantes en la red. Reside en un 'puerto de

monitoreo', así que puede registrar toda la actividad de la red. Para esta tarea se usa Snort

(NIDS) en modo de full logging (recoge todos los paquetes IP) y tcpdump (recoge todo el

tráfico de red en formato binario). Se usan estas dos herramientas para evitar un punto único

de fallo, y para asegurar la integridad de los datos enviados a un servidor remoto de logs.

Otra de las tareas de este sistema IDS es alertarnos de la actividad sospechosa, comparando

los paquetes con una base de datos de marcas de ataques. En los Honeypots es necesario

recolectar actividades dentro de los sistemas. Los atacantes más experimentados acostumbran

a bloquear y borrar logs del sistema, por esto es necesario crear un repositorio externo de

dichos logs salvándolos de ser borrados o alterados por el atacante. Se usa una técnica para

que los sistemas repliquen sus los al servidor remoto. Entre los datos capturados del atacante,

hay unos especialmente que con las técnicas anteriores podríamos capturar pero no visualizar.

Si el atacante usa un medio seguro como SSH, SSL, IPsec, etc., para llevar a cabo sus métodos

de intromisión, esta actividad se almacenará encriptada en los registros.

Los datos deben ser registrados

Iptables

De sobra conocido este firewall de aplicación tiene como objetivo proveer cierta apariencia de

seguridad para la red ficticia.

Teniendo en cuenta esto, se espera que Iptables actúe como firewall en la interfaz bridge de la

red de Honeywall regulando los paquetes que ingresan y egresan la honeynet, siendo esto no

tanto para prevenir que los atacantes entren a la red falsa como sí apunta a hacerlos pensar

que están en una red productiva verdadera, surtiendo efecto la finalidad de la honeynet. El rol

de Iptables respecto de la interfaz de administración sería el de un firewall tradicional

permitiendo el acceso sólo a los usuarios y administradores de Honeywall. Esto se logra

Page 17: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 16

mediante la imposición de la restricción de las direcciones IP de hosts/redes específicos a los

cuales se les permite acceso a la interfaz de administración mediante reglas de permiso sólo a

cierto tipo de tráfico como lo es el del puerto UDP 53 (DNS), TCP 80 (HTTP) y TCP 443 (HTTPS).

Herramientas de recopilación de datos:

Sebek

Sebek es un herramienta cliente-servidor diseñada para capturar la actividad de los atacantes

en los Honeypots. Es un módulo de Kernel oculto capaz de capturar la actividad del atacante,

transmitiendo los datos usando UDP al servidor, en muchos casos el mismo Honeywall.

El cliente Sebek envía estos datos ocultándolos al atacante y el Servidor Sebek los recoge y

registra.

El sistema de alertas envía un correo electrónico al administrador de la Honeynet cada vez que

un evento muestre alguna intrusión en la misma.

Hflow2:

Es un software de recopilación y correlación de los datos obtenidos a partir de Snort, p0f,

Argus y Sebek, ensamblando dichos datos en un flujo unificado el que se almacena en una base

de datos particular. La base de datos Hflow2 funciona como método de acceso “fast path” a la

información recolectada para conseguir alto nivel de comprensión con cierto nivel de

degradación en el detalle. Funciona utilizando a las colecciones de datos de los demás

utilitarios (Argus, Snort, p0f y Sebek) como módulos que transmiten datos dentro del proceso

Hflowd. Las porciones de flujo que se distinga que pertenecen a un único flujo bidireccional de

datos de red son etiquetadas e insertadas en la base de datos. Hflow2 también actúa como el

controlador de los inicios para las dependencias entre los módulos, ayudando al

aseguramiento de que el proceso no genere errores debido a que alguno de los módulos no

esté disponible.

Herramientas de monitorización:

Walleye

Esta es una aplicación desarrollada por el mismo proyecto Honeynet Project, inicialmente

pensada para probar el método de acceso a datos “fast path” y sus capacidades de análisis. Se

considera como la herramienta primaria para configurar y monitorear el ambiente de

Honeywall. A través suyo se pueden definir la mayoría de los parámetros más importantes de

manera rápida y ayudando a los nuevos administradores para que sea comprensible a los

distintos niveles de capacidades técnicas.

Las excepciones, es decir, los parámetros que no se pueden configurar a través de Walleye y

que deben establecerse en cada utilitario o en el Sistema Operativo son:

Zona horaria.

Tripwire.

Page 18: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 17

Postfix.

También, Walleye es el medio a través del cual se examina la “fast path”. Dentro de la

aplicación, es posible analizar en detalle cada flujo de datos, permite filtrar por día y hora.

Además, es posible aislar más aún los flujos de datos IP destino y origen, y/o también por

números de puertos. De esta forma, Walleye permite ver la comunicación relevante entre 2

hosts sin distraer con otra información capturada que no sea de interés para el análisis que se

pretenda llevar adelante. Es importante tener en cuenta, además, que se puede acceder a los

logs “crudos” del firewall y Snort, habilitando al administrador a una revisión a nivel de

paquetes del flujo de datos.

Argus

Argus observa el flujo de datos pasando a través de la interfaz de red y los flujos dirigidos hacia

la placa de red desde, como máximo, 5 outputs. Su propósito es generar flujos de datos que

correlacionen tanto los paquetes de datos asociados como el total de tiempo de las

comunicaciones, sirviendo como método de auditoría de datos de red. En Honeywall, lo datos

son recolectados de una manera tradicional y ruteados a través del proceso Hflowd donde se

correlacionan, formatean y filtran con otra información coleccionada desde otro software (p0f

y Snort) y solamente una representación reducida de estos registros de actividad de sistemas

es almacenada en la base de datos Hflow.

p0f

Es una utilidad para realizar fingerprinting de sistemas operativos que es muy versátil y rápida.

Es útil para el monitoreo del tráfico que ingresa a la honeynet ya que puede ayudar a

identificar aquellas direcciones IP en las cuales el sistema operativo va cambiando y permite

mejorar la exactitud de los eventos de IDS. La información de p0f se correlaciona con Argus y

Snort para obtener una imagen más clara de los flujos de información conocidos y luego

escritos en la base de datos Hflow2.

2.2.3.4 Configuración de honeywall para pruebas de viabilidad

2.2.3.4.1 Instalación

Honeywall se descarga desde https://projects.honeynet.org/honeywall/raw-

attachment/wiki/WikiStart/roo-1.4.hw-20090425114542.iso una vez descargada creamos la

maquina virtual en VirtualBox con los valores por defecto y 3 interfaces de red.

La primera interfaz de red será la que irá conectada a nuestra DMZ por lo que la configuramos

en adaptador puente y le asignamos la ip estática 192.168.1.8 que previamente hemos

configurado en nuestro router.

La segunda interfaz de red será asignada a la red interna con la interfaz vboxnet0 que será

nuestro Gateway para el host Debian.

La tercera interfaz será asignada también a la red interna con la interfaz vboxnet1.

Page 19: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 18

Al iniciar la máquina virtual para HoneyWall, nos pedirá que seleccionemos una iso para su

arranque, seleccionamos roo-1.4.hw-20090425114542.iso, de modo que arrancará honeywall

mostrándonos la siguiente imagen:

Una vez presionamos enter inicia la instalación tal y como se muestra en la siguiente figura:

El proceso de instalación es rápido y automático, finalizada la instalación la máquina virtual se

reinicia apareciéndonos el promt para indicar que nos loguemos.

Esta distribución tiene la particularidad de que no permite el loguin como root, nos logamos

con el usuario roo contraseña honey y ejecutamos su – contraseña honey de nuevo para

acceder como root, momento en el que se inicia el script de configuración indicándonos que

honeywall no ha sido configurado aún.

Este script sólo aparece en primer inicio, posteriormente si se necesita se encuentra ubicado

en /dlg .

A partir de este momento podemos empezar con la configuración de honeywall.

Page 20: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 19

2.2.3.4.2 Configuración

Una vez aceptado el acuerdo de licencia entramos en las 5 fases de configuración, se omiten

algunos pasos del script de configuración inicial por no ser relevantes o resultar obvios.

En el initial setup vamos a seleccionar la opción 3, interview y entramos en la primera sección.

2.2.3.4.2.1 Fase 1

Esta primera sección de configuración trata del direccionamiento de red de nuestros

honeypots, en nuestro caso le indicamos las ips 192.168.3.2 y 192.168.3.3 como ips de

honeypot, le indicamos la ip de red y la ip de broadcast, de este modo acabamos con la

primera fase de configuración.

2.2.3.4.2.2 Fase 2

En esta sección se nos pide que configuremos un acceso ssh o una interfaz de gestión que sería

la que recibiese todos nuestros logs, en un principio pensamos en desechar esta opción ya que

disponemos de acceso físico a la máquina pero honeywall dispone de una interfaz web de

configuración a la que se accede a través de esta ip así que decidimos configúrasela como la

192.168.1.6 en la interfaz eth0.

En las siguientes opciones de configuración de esta fase nos permite modificar el nombre de

host, añadir un dominio y nos pide que le indiquemos cuales son los dns, que en nuestro caso

le ponemos los del router ya no hemos configurado ningún servidor dns para tal propósito.

La interfaz de administración se activará en el siguiente inicio, denegamos configurar ssh ya

que no lo necesitamos.

El siguiente paso será cambiar el password de root que en nuestro caso será el mismo para

todas las máquinas que configuremos a partir de este momento: 20honeyroot14! Como no

Page 21: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 20

hemos podido configurar el teclado todavía en esta máquina vamos a omitir el símbolo

quedando 20honeyroot14 de password.

También nos solicita que cambiemos el password para el usuario roo, siguiendo el mismo

patrón que para root será 20honeyuser14 para esta y todo el resto de las máquinas.

El siguiente punto de configuración de esta fase es indicar los puertos admitidos para la

interfaz de administración, por defecto sugiere el 443, nosotros le vamos a añadir el 80.

A continuación nos pregunta las ips a las que se le permitirá el acceso a esta interfaz, en

nuestro caso ponemos la del host 192.168.1.5 que es nuestra máquina física y nos asignamos

la ip con estática en el fichero /etc/network/interfaces, también debemos asegurarnos que el

dhcp de nuestro router no asigna esta ip a ningún otro host, por lo que se la configuramos en

el dhcp del router asociándola a nuestra mac.

Posteriormente nos pregunta si deseamos habilitar la interfaz de gestión para el análisis de

datos a lo que respondemos afirmativamente.

La siguiente pregunta es si deseamos restringir las comunicaciones salientes en el firewall a lo

que respondemos que si para limitar accesos indeseados.

Ahora nos pregunta que puertos deseamos permitir acceso, punto en el que hemos de tener

en cuenta los puertos que van a ir configurados ambos honeypots.

2.2.3.4.2.3 Fase 3

La primera pregunta que nos hace en esta fase es sobre la configuración del límite de

conexiones de salida. Esta configuración nos permite establecer el límite de las conexiones

salientes de modo que una vez alcanzado este punto el resto de conexiones será rechazado

impidiendo que el honeypot comprometido dañe a otros sistemas.

Podemos limitar por segundos, minutos horas o días, en nuestro caso vamos a limitar por

horas poniendo como limite 60 conexiones tcp a la hora y 60 udp, junto con 500 paquetes icm

permitidos a la hora para permitir escaneos.

Ahora nos da la opción de hacer configurar el Snort en modo inline, de esta forma podremos

re direccionar tráfico en línea según sucede el ataque a nuestra conveniencia.

Tras la configuración del snort nos indica que podemos crear dos ficheros, uno con una lista

negra donde se almacenarán las Ips que generen spam y otro con una lista blanca donde

posteriormente detallaremos las ips que bajo ningún concepto serán consideradas spam.

Habilitamos ambas y pasamos a la siguiente pregunta donde habilitamos una lista con las ips a

las que bajo ningún concepto podrán alcanzar nuestros honeypots en la ruta /etc/fencelist.txt.

Esta lista es bastante importante ya que ayudará a crear las reglas del firewall cuando la

habilitemos en el siguiente paso.

Page 22: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 21

Dejamos desactivado el Roach motel mode ya que hay bugs a este respecto y con esto

concluimos la fase 3.

2.2.3.4.2.4 Fase 4 Relativa a la configuración DNS

En esta fase nos preguntan si deseamos permitir el tráfico ilimitado de dns hacia nuestros

honeypots a lo que respondemos afirmativamente, momento en el que nos da la opción de

permitirlo a unos si y a otros no por medio de una lista o indiscriminadamente y con esto

finaliza esta sección.

2.2.3.4.2.5 Fase 5 Relativa a la gestión de alertas

Nos permite recibir las alertas por mail, pero no va a ser nuestro caso y entramos en la

configuración de Sebek, nuestro gestor de logs.

Le facilitamos la ip de la interfaz de administración para que envíe sus alertas y el número de

puerto y con esto finalizamos la fase 5 y el initial setup.

2.2.3.4.2.6 Configuración propia

Una vez reinicia vuelve a aparecernos el script de configuración con un nuevo menú pero en

este caso le damos a exit y vamos a hacer nuestras configuraciones manualmente.

Lo primero reconfiguramos el teclado para que esté en nuestro idioma: vim

/etc/sysconfig/keyboard

Necesitamos instalar el Virtual BoxGuest Adittions, pero tenemos dependencias incumplidas,

para lo que necesitamos actualizar los repositorios, el problema es que nuestra máquina no

tiene conexión con ninguna otra red, no llegamos ni al host, cuanto menos al router, punto en

el que modificamos las reglas de Iptables de forma permisiva, comprobamos que Selinux esté

inhabilitado y volvemos a probar. Seguimos sin tener conexión, configuramos manualmente

las interfaces eth0 y eth1, pero sigue sin permitirnos conectar ni con el router, tras mucha

lectura encontramos que no reconoce las interfaces virtuales, por lo que sin conexión con el

exterior por muy bonita que pudiese quedar nuestra topología con honeywall en medio no nos

queda otra opción que declinar su uso.

2.2.3.4.2.7 Deficiencias

No hay forma de conectar honeywall con el exterior, cabe la posibilidad que montando un

servidor dhcp propio y un servidor dns propio se pudiese.

2.2.3.4.2.8 Conclusiones

Sin la actualización del sistema, la instalación del vbox guest aditions y la conexión con otros

puntos de la red se hace inviable, pero queda pendiente para futuros estudios, instalada en

una máquina física con cable Ethernet.

Page 23: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 22

2.2.4 Honeydrive

Honeydrive es una distribución basada en Xubuntu para la implantación de honeypots y sus

herramientas se detallarán a continuación.

2.2.3.1 Herramientas para el manejo de amenazas MALWARE

Las herramientas de recolección y análisis de malware dentro de honeydrive son:

Mwcrawler

Mwcrawler es una herramienta para coleccionar malware. Su funcionamiento consiste en

conectarse a listas de urls que distribuyen malware y descargarlo para almacenarlo y

estudiarlo.

Thug

Esta herramienta se conecta a urls maliciosas simulando el comportamiento del navegador

web en el lado del cliente.

Dionaea

Dionaea ofrece servicios vulnerables, accesibles en la red, con el fin de obtener una copia del

malware que intente aprovecharse de los mismos.

Es capaz de emular los siguientes protocolos:

- SMB: Es el protocolo principal que implementa dionaea, debido a su larga trayectoria

de vulnerabilidades, y la fácil explotación de las mismas se convierte en un caramelo muy

dulce de nuestro honeypot.

- Http, Https: Establece tanto conexiones Http como Https y las cierra haciendo uso de

los datos obtenidos en estos puertos. Para Https se genera un certificado al inicio de la

aplicación

- Tftp: Dionea ofrece una implementación que permite la descarga de ficheros, aunque

no se tiene constancia de que este protocolo sea objetivo de ataques automatizados, si es

conocida la existencia de vulnerabilidades para este protocolo.

- Ftp: Dionaea ofrece un servidor básico de ftp en el puerto 21, que permite crear

carpetas y bajar y subir archivos. Al igual que tftp, no se tiene constancia de que algo

interesante ocurra con respecto a este servicio en lo que a ataques de malware automatizados

se refiere.

- SIP. Las características principales del modulo SIP son:

- Soporta las mayoría de las peticiones (OPTIONS, INVITE, ACK, CANCEL, BYE)

Page 24: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 23

- Soporte para sesiones SIP múltiples y streams RTP de audio

- Grabación de los datos RTP

- Agregar usuarios y contraseñas

- Guardar un registro a la base de datos SQL

- Mssql: Dionaea implementa el protocolo Tabular Data Stream, el cual es usado por

MSSQL server

Escucha en el puerto tcp/1433 y permite a los clientes logearse. Puede decodificar las

peticiones echas a la base de datos, pero como no hay base de datos, Dionaea no puede

contestar mySQL

Amun

Amun es un honeypot de baja interacción. Como dionaea, la finalidad última de Amun es

obtener una copia del malware que esta atacando nuestro honeypot. Amun emula una serie

de servicios vulnerables con el fin de que programas que andan sueltos por la red (malware)

realicen un ataque que tenga como objetivo nuestro sistema honeypot

Una vez lanzado el ataque, Amun crea la ilusión al malware de que el servicio ficticio es

vulnerable, de esta forma dicho malware mandara una copia de si mismo a nuestro honeypot,

copia que después podremos usar para analizarla con más detalle.

Una vez que Amun se ha descargado el malware, puede, al igual que Dionaea, guardarlo en el

disco local para lo cual usa el md5 del archivo como nombre, o enviarlo a los siguientes

servicios de análisis externos: anubis, cwsandbox o joebox. El resultado puede ser consultado

bien vía web o vía mail

2.2.3.2 Herramientas para el análisis de ataques no automatizados

En este caso la mayoría del software que usamos, guarda los payloads que son enviados al

sistema para su posterior análisis.

Dentro de esta categoría nos encontramos con:

Kippo

Kippo es un honeypot que emula un servicio ssh casi de forma perfecta. También tiene una

segunda funcionalidad interesante y es la forma que tiene de entregarnos sus estadísticas,

crea una página web con geo localización y un tipo de mapas muy visuales donde nos indica de

que partes del mundo se han recibido los ataques, cuales son las combinaciones de usuario

passwords más utilidades y los comandos utilizados en el servidor una vez conseguida la

penetración al mismo.

De fácil configuración es sin duda una herramienta muy útil para proteger el puerto 22 de

ataques sistemáticos aunque permite la configuración del puerto.

Page 25: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 24

Otro de los puntos a destacar es que cuenta con una herramienta que nos permite reproducir

los logs en la terminal como si de un video se tratase.

Tiny Honeypot (thp en lo que sigue).

Es un honeypot que hace uso de Iptables para hacer decisiones sobre como re direccionar el

tráfico TCP/IP entrante. El script Iptables de que es provisto por thp, que se encuentra en

/etc/iptables.rules, correrá en la mayoría de los entornos con las mínimas modificaciones.

Estas modificaciones crecerán si el host en el que estamos ejecutando thp esta actuando

como router.

Una de las cosas interesantes de thp es que permite a los servicios que tengamos en el

sistema, seguir ejecutándose sin que thp interfiera en su funcionamiento.

Wordpot

Wordpot es un honeypot que emula la aplicación web Worpress. Los vectores de ataque más

usuales en Worpress son sus plugins. Los plugins que Wordpot emula los podemos encontrar

en /opt/wordpot/wordpot.conf.

Está pensado para que sea extensible, es decir, para que podamos programar nuestros propios

falsos plugins.

Glastopf

Glastopf es un honeypot de aplicación web de baja interacción que puede emular cientos de

vulnerabilidades, con el fin de obtener datos de ataques que tienen como objetivo

aplicaciones web. Su principio de funcionamiento es simple: responde a los ataques con la

respuesta que el atacante esta esperando en su intento por explotar la aplicación web

Page 26: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 25

2.3 Sistema operativo Windows

2.3.1 Tipos de ataques comunes en Windows

Según Sans las 10 vulnerabilidades comunes en Windows son:

Existencia de servidores web y sus servicios asociados

Cuando se instala un servidor web en un equipo Windows, en su configuración por defecto, se

activan algunos servicios y/o configuraciones que son vulnerables a diversos tipos de ataques,

que van desde la denegación de servicio hasta el compromiso total del sistema.

Si la máquina debe actuar como servidor web, es preciso verificar que la versión del mismo está

actualizada, se ha fortalecido la configuración y se han desactivado los servicios innecesarios.

Es importante indicar que algunas versiones de Windows instalan, en su configuración por

defecto, el servidor web IIS.

Servicio Workstation

Existe una vulnerabilidad de desbordamiento de búfer en el servicio Workstation de Windows

2000 (SP2, SP3 y SP4) y Windows XP (hasta SP1) que puede ser utilizada por un usuario remoto

para forzar la ejecución de código en los sistemas vulnerables. Éste código se ejecutará en el

contexto de seguridad SYSTEM, lo que permite un acceso completo en el sistema

comprometido.

Servicios de acceso remoto de Windows

Todas las versiones de Windows incluyen mecanismos para permitir el acceso remoto tanto a

las unidades de disco y al registro así como para la ejecución remota de código. Estos servicios

han demostrado ser bastante frágiles y la existencia de numerosas vulnerabilidades ha sido

uno de los mecanismos preferidos por los gusanos y virus para propagarse. Es muy importante

verificar que se han aplicado las diversas actualizaciones publicadas para impedir la acciones

de los mismos.

Microsoft SQL Server

El gestor de base de datos de Microsoft ha sido, tradicionalmente, un producto con un nivel de

seguridad muy bajo.

Por un lado, existen un gran número de vulnerabilidades de seguridad, muchas de ellas críticas,

que pueden ser utilizadas para acceder y/o modificar a la información almacenada en las bases

de datos.

Pero además, la configuración por defecto de Microsoft SQL Server facilita que sea utilizado

como plataforma para la realización de ataques contra otros sistemas. Podemos recordar los

gusanos SQLSnake y Slammer que tuvieron un efecto perceptible en toda la red Internet.

Page 27: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 26

Autenticación de Windows

Es habitual encontrar equipos Windows con deficiencias en sus mecanismos de autenticación.

Esto incluye la existencia de cuentas sin contraseña (o con contraseñas ampliamente conocidas

o fácilmente deducibles). Por otra parte es frecuente que diversos programas (o el propio

sistema operativo) cree nuevas cuentas de usuario con un débil mecanismo de autenticación.

Por otra parte, a pesar de que Windows transmite las contraseñas cifradas por la red,

dependiendo del algoritmo utilizado es relativamente simple aplicar ataques de fuerza bruta

para descifrarlos en un plazo de tiempo muy corto. Es por tanto muy importante verificar que

se utilizado el algoritmo de autenticación NTLMv2.

Navegadores web

Los diversos navegadores habitualmente utilizados para acceder a la web pueden ser un

posible punto débil de las medidas de seguridad si no se han aplicado las últimas

actualizaciones.

Internet Explorer es, sin duda, el producto para el que se han publicado más actualizaciones y

que cuenta con algunos de los problemas de seguridad más críticos. No obstante debe

recordarse que otros navegadores como Opera, Mozilla, Firefox y Netscape también tienen sus

vulnerabilidades de seguridad.

Aplicaciones de compartición de archivos

Las aplicaciones P2P se han popularizado en los últimos años como un sistema para la

compartición de información entre los usuarios de Internet, hasta el punto de convertirse en

uno de los métodos preferidos para obtener todo tipo de archivos. De hecho, muchos usuarios

seguramente no entenderían la red actual sin la existencia de las aplicaciones P2P.

No obstante, algunas aplicaciones populares de compartición de archivos tienen serios

problemas de seguridad que pueden ser utilizados por un atacante para obtener el control del

ordenador del usuario.

Otro riesgos habituales, no estrictamente de seguridad pero si relacionado ya que atentan

contra nuestra privacidad, son los diversos programas espías incluidos en algunas de las

aplicaciones más populares de compartición de archivos. Otro problema habitual es la

compartición inadvertida de archivos que contienen información sensible.

Por último, en los últimos meses se ha popularizado la utilización de las redes P2P como un

nuevo mecanismo para la distribución de virus y gusanos.

Subsistema LSAS

El subsistema LSAS (Local Security Authority Subsystem) de Windows 2000, Windows Server

2003 y Windows XP es vulnerable a diversos ataques de desbordamiento de búfer que pueden

permitir a un atacante remoto obtener el control completo del sistema vulnerable. Esta

vulnerabilidad ha sido explotada por gusanos como el Sasser.

Page 28: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 27

Programa de correo

Diversas versiones de Windows incluyen de forma estándar el programa de correo Outlook

Express. Se trata de un producto que, si no se encuentra convenientemente actualizado, puede

fácilmente comprometer la seguridad del sistema.

Los principales problemas de seguridad asociados a Outlook Express son la introducción de

virus (sin que sea necesario ejecutar ningún programa) y el robo de información sensible.

Las versiones actuales de Outlook Express, configuradas de una forma adecuada, protegen al

usuario ante estos problemas de seguridad.

Sistemas de mensajería instantánea

La mensajería instantánea ha pasado de ser un sistema de comunicación utilizado básicamente

para contactar con amigos y familiares a ser una herramienta de comunicación habitualmente

utilizada en las empresas, especialmente entre aquellas que disponen de diversos centros de

trabajo.

Los diversos programas de mensajería instantánea pueden ser víctimas de ataques explotables

de forma remota y que pueden ser utilizados para obtener el control de los sistemas

vulnerables.

Es conveniente que el usuario de estos productos verifique que utiliza la versión actual, con las

últimas actualizaciones de seguridad.

2.3.2 Honeypots en Windows

Existen varias soluciones de honeypot para Windows, algunas comerciales como pueden ser

Specter, KFSensor, PatriotBox, algunos de ellos tienen versiones descargables en modo de

prueba para poder experimentar con ellos. Por otro lado existen soluciones gratuitas como

pueden ser HoneyBot o Valhala, omnívora que nos permiten montar honeypots en Windows

server.

Antes de elegir cual de ellos vamos a montar, los iremos probando de uno en uno y viendo sus

diferencias y aplicaciones para saber cual se ajusta a nuestras pretensiones.

Empezamos por Omnívora.

Omnívora

Omnívora es un honeypot de baja interacción diseñado para capturar malware.

Está provisto de vulnerabilidades específicas para los siguientes puertos:

Page 29: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 28

Se descarga desde su web oficial http://omnivora.sourceforge.net/ y su instalación es sencilla,

típica de cualquier programa en Windows, doble click al exe y se ejecuta el instalador que está

en alemán, sin posibilidad de elegir ningún otro idioma, sin embargo no pide nada especial por

lo que bastará con darle a siguiente y estará hecha la instalación.

Una vez finalizada nos aparece el archivo léeme con el siguiente texto:

Omnivora - Honeypot - Version 1.0

Installation:

Omnivora emulates serveral vulnerabilites of Windows services. To stop the original services

you can adjust your service settings or run the included script "svc2kxp.bat". If the script is run

in option 2 ("standard") it will make all necessary adjustments. If you need one of the emulated

services you'll have to disable the emulation of this vulnerability.

Notice: The vulnerability server won't start, if one selected port is blockedby another service.

Database: To enable database logging you have to install the MySQL ODBC driver.

I am using version 3.41.15.

2008 Philipp Trinius

Nuestro Windows Server en este momento está en una máquina virtual separada de la red

anteriormente descrita, partimos de una instalación limpia para pruebas antes de tomar la

decisión sobre que honeypot o conjunto de ellos implementaremos. No debería tener conflicto

de puertos, sin embargo cuando intentamos iniciar el servidor nos da un mensaje de error que

diciendo que los puertos están siendo utilizados:

Page 30: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 29

Siguiendo las recomendaciones del archivo léeme, nos vamos al directorio donde está

instalado omnívora e intentamos correr el script svc2kxp.bat para la configuración de los

puertos con el siguiente resultado:

Al parecer este honeypot no es compatible con Windows server, pero para estar seguros

probamos la instalación en Windows7 con similar resultado, al parecer este honeypot de baja

interacción sólo funciona en Windows xp, por lo que por prometedor que pareciese queda

abandonado de nuestro proyecto por problemas de incompatibilidad.

WinHoneyD

Honeyd es un honeypot de baja interacción que permite emular el finguerprint de otros

sistemas operativos y crear un enrutamiento interno emulando servicios en sistemas

fantasma.

Page 31: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 30

Para descargar la versión de Windows es necesario registrarse en

http://www2.netvigilance.com/ donde enviándonoslo al correo nos facilitan el siguiente link

de descarga para nuestro Honeyd

http://www2.netvigilance.com/winhoneyd/download/winhoneyd-1.1.1.zip

HoneyD nos permite configurar cualquier servicio emulado, con los script´s existentes o

facilitándonos la implementación de uno nuevo.

Trabaja en todo el rango de puertos TCP siendo capaz de emular sistemas y servicios en todas

las ip´s no usadas, contribuyendo al propósito del Honeypot en cuanto a "distraer" al atacante,

desde fuera parecerá una red con diversos sistemas lo que hará jugoso el ataque.

Otra de las funciones interesantes de Honeyd es que puede emular distintas

implementaciones de sistemas operativos a nivel de pila TCP/IP a la vez, es decir, que a una

petición FIN a un puerto, podemos hacer para un servicio emulado que responda, y para otro

servicio que no responda...

Permite emular más de 400 sistemas descritos en el fichero nmap.prints.

Debido a que no hemos encontrado ningún tipo de incompatibilidad y es un honeypot de baja

interacción pero interesante para la investigación será uno de los elegidos para nuestro

servidor Windows.

Kfsensor

KFSensor tiene un sentido claro de lo que se necesita para aparentar ser un host de Windows.

Al igual que Honeyd - WIN32 , KFSensor es un honeypot de baja interacción. A diferencia de

Honeyd - WIN32 , KFSensor viene con 77 puertos preconfigurados ( 58 puertos TCP y 19

puertos UDP) . La mayoría de los puertos se encuentran en ambientes típicos de Windows,

aunque KeyFocus ha lanzado en algunos puertos troyanos arbitrarias para atraer a los intrusos

de exploración para servidores vulnerables.

Es un tipo de honeypot casi Plug and Play ya que su instalación sólo se tiene que descargar el

software y ejecutar. Su interfaz es sencilla y contiene asistentes de ayuda que permiten guiar

al usuario para una buena configuración

KFSensor ofrece emulación simple servicio de IIS, FTP, Telnet y Exchange. Las conexiones a IIS

ofrecen una web EN CONSTRUCCION. Las conexiones al puerto 25 dan una respuesta de

intercambio de banners de texto realista, y la emulación de servicios acepta un número

limitado de comandos básicos de SMTP.

KeyFocus podría haber fácilmente hecho lo mismo por otros puertos de servidor de Exchange

comunes, como los puertos POP3 e IMAP, pero por alguna razón no lo hizo.

KFSensor hace mímica básica de Terminal Services para las conexiones RDP, de Symantec

pcAnywhere , Citrix MetaFrame, Virtual Network Computing (VNC ), Wingate, y más. Puede

usar los códigos de control y secuencias de comandos para personalizar cada puerto y el

Page 32: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 31

servicio de emulación. Durante las pruebas, el cliente remoto pcAnywhere pensó que estaba

conectado brevemente con el host directamente antes de cerrar la conexión.

KFSensor imita con precisión NetBIOS abiertos y puertos RPC de Windows, dando al honeypot

una respuesta realista de Windows

KFSensor destaca en casi todo lo que hace, pero tiene algunos puntos débiles:

KFSensor no es tan flexible o escalable como Honeyd - WIN32. Debido a que opera en la capa

de aplicación, no puede simular la pila IP y no contiene los ajustes para simular rutas de red,

las marcas de tiempo del sistema, problemas de latencia, etcétera, (aunque para ser justos, la

mayoría de los intrusos se pierda estas detalles). Además, KeyFocus no recomienda el apoyo a

más de 256 puertos por host, mientras que Honeyd - WIN32 puede soportar miles de puertos y

direcciones IP por host.

Al igual que otros honeypots de nivel de aplicación, KFSensor puede responder solamente a la

dirección IP asignada a su anfitrión. En comparación, Honeyd - WIN32 puede emular una

multitud de los ejércitos y las redes IP.

También es importante señalar que el precio de su licencia es de 990$ Dólares, aunque

permite una versión trial, que probaremos añadiéndole los servicios de iss aunque no se

detallará su configuración ya que es prácticamente inexistente y va acompañado de wizart que

hace de guía durante la misma.

2.4 Fase de planificación y diseño

2.4.1 Planificación

Esta etapa se deciden las fases de proyecto, al menos en rasgos generales, tal como se

muestra a continuación:

Figura 1 Análisis y diseño del proyecto

Análisis y diseño

Esta etapa tiene tres funciones principales:

- Estudiar el nivel de complejidad que debe tener nuestro honeypot.

- Decicdir que herramientas lo componen y sobre que sistemas

-Resolver la topologia para que se adapte a los puntos anteriores.

Implementación

En esta etapa se hará efectivo todo lo diseñado en el punto

anterior

Testing

Esta será la fase donde nos podremos a prueba antes de exponernos al

mundo real.

Plantearemos casos de uso de que corroboren

la arquitectura.

Puesta en producción

En este punto dejaremos expuesto el

sistema para que empiece a recibir ataques reales.

Page 33: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 32

Análisis

La etapa de análisis comprende:

El estudio de los sistemas operativos que van hospedar a nuestros honeypots.

El análisis de soluciones de honeypots para Windows y linux.

El estudio de las herramientas que componen cada una de estas soluciones.

Las pruebas relativas a una posible implementación de alguna de estas soluciones.

Este estudio ha sido realizado ya en este documento en los puntos del 2.1 al 2.4.

Diseño

La fase de diseño contempla:

El estudio de una topología de red optima para nuestras necesidades.

La elección y lógica de las herramientas a implementar en cada una de las soluciones

sobre cada uno de los sistemas.

Los servicios a emular en cada uno de los sistemas operativos elegidos.

Implementación

En esta fase se realizarán las configuraciones propias acorde al diseño y topologías

anteriormente elegidos. Este punto se desarrolla en el Capítulo 3 de este documento.

Testing

Una vez realizadas las configuraciones oportunas, pasaremos a la fase de pruebas para

comprobar que no se han cometido errores en la implementación y que todo funciona como

debiera.

Se probarán las herramientas implementadas y la lógica de los sistemas junto con el

funcionamiento de la red.

Exposición de los sistemas o puesta en producción

En este punto dejaremos expuesto el sistema para que empiece a recibir ataques.

Este punto se detalla en el capitulo 4 de este documento.

Recogida de datos

Una vez se hayan producido los ataques se pasará a la recogida de datos por medio de los logs

que genera cada una de las soluciones implementadas.

Análisis y estudio de los datos obtenidos.

Con todos los datos ya obtenidos realizaremos el análisis de los mismos.

Este punto se detalla en el capitulo 5 de este documento.

Page 34: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 33

Productos que acompañan a este TFM

Se adjunta una versión configurada que fue la puesta en producción de honeydrive

como maquina virtual independiente.

Se adjunta una versión de honeydrive mejorada con los scripts descritos sobre Mastiff

y maltrive creada después de la fase de puesta en producción.

Se adjunta matrioskahoney que contiene el honeypot de Windows, una versión de

honeydrive sin configurar tal que replica la configuración de diseño de la red,

honeydrive no se configuró en matrioskahoney por problemas de rendimiento,

matrioskahoney también contiene otro máquina virtual con otro honeypot que no se

describe en este documento por el mismo caso que honeydrive dentro de

matrioskahoney.

2.4.2 Diseño

Una vez decididos los sistemas a emplear es necesario pensar en cómo se van a implementar

para que resulte lo más seguro y eficaz posible.

Una buena planificación de la arquitectura conlleva tener en cuenta todos los factores que la

componen y es una herramienta crucial que servirá de guía para agilizar cualquier

implementación.

Esta fase ha resultado la más complicada, ya que a pesar de tener claros los sistemas que

vamos a utilizar para nuestros honeypots, Windows server 2008R2 y HoneyDrive, disponemos

de recursos limitados y la cuestión era pensar la forma adecuada de montar nuestro proyecto

sin que afectase al resto de la LAN.

2.4.2.1 Descripción

Para ponernos en antecedentes, nuestros recursos son los siguientes:

- Un ordenador de sobremesa: i5 intel 5550, 8gb de RAM, SO Debian Jessie 3.2.0-4-

amd64 #1 SMP Debian 3.2.51-1 x86_64 GNU/Linux

- Un router Netgear CG3100D

- Mucho VirtualBox

Nuestra Lan:

En nuestra red de área local hay otros seis equipos más dispositivos móviles que no pueden

verse afectados por nuestro proyecto, ni soportan modificaciones continuas en el router para

pruebas.

2.4.2.2 Resolución inicial y diseño de la topología

Tras mucha cabila se tomó la decisión de anidar máquinas virtuales quedando la estructura del

siguiente modo:

Page 35: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 34

Ordenador de sobremesa como host conectado directamente al router (por wifi):

- Virtualbox con interfaz vboxnet0

- Snort

- Arno Iptables

Maquina virtual 2 Debian Wheezy 64, en adelante MatrioskaHoney:

Esta máquina albergará Virtualbox y dentro nuestros dos honeypots, honeydrive y Windows

Server 2008 R2, de tal modo que visto esquemáticamente quedará así:

Figura 2 Esquematización de diseño.

Aprovecháremos la capacidad de Virtualbox para crear interfaces de red virtuales para separar

las redes, esto unido al linux kernel routing table e Iptables nos da la versatilidad necesaria

para nuestro diseño de red.

Host real S.O Debian Jessie

Honeypot Windows

Server 2008R2

HoneyPot Xubuntu

honeydrive

Maquina Virtual Debian 7.5

MatrioskaHoney

VirtualBox

Page 36: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 35

La topología lógica de red será la siguiente:

Figura 3 Topología de la red

2.4.2.3 Resolución Final

Aunque el diseño anterior nos parecía el adecuado, tras la fase de pruebas no resultó útil, por

lo que la solución final fue ir configurando la ip de la dmz 192.168.1.6 en el honeypot a

exponer, durante el documento se explicará la configuración de la fase de diseño, no la

efectiva finalmente.

Page 37: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 36

3. Capítulo 3. Metodología de instalación, configuración y

testing de arquitectura.

3.1 Instalación de las máquinas virtuales y configuración de la red.

La instalación de Virtualbox es tan sencilla como ejecutar el comando “aptitude install

virtulbox” con privilegios de root, si nos encontramos en una máquina Windows basta con

descargarse le ejecutable de la página oficial de VirtualBox e instalarlo, por lo que no

hablaremos sobre ese punto.

Una vez instalado es necesario crear nuestras máquinas virtuales y configurar las interfaces de

red adecuadamente para que se adapten a nuestra topología.

Las máquinas a instalar son una Debian 7, está última con el requerimiento especial de que

tendrá que disponer de suficiente capacidad de disco duro como para albergar en su interior la

máquina virtual de linux con Honeydrive y la de Windows con Honeyd las cuales instalaremos

posteriormente.

Antes de instalar las máquinas virtuales crearemos dos interfaces de red virtual que nos

permitirá mayor versatilidad con nuestra topología, (mostrado en la figura 1 del anexo).

La primera interfaz será la vboxnet0 a la que se le asignará el rango 192.168.2.1.

La segunda interfaz vboxnet1 se le asignará la red 192.168.10.1 y quedará como interfaz de

reserva para posibles ampliaciones. Tal como se muestran en las figuras del 2 y 3 del anexo.

Para hacer esto nos vamos a la siguiente ruta:

Archivo, Preferencias, Red y le damos a añadir interfaz configurando el direccionamiento

deseado.

Otra opción a reseñar es que cómo medida de seguridad se toma una instantánea del estado

de cada una de las máquinas recién configuradas para en el caso de que surja cualquier

inconveniente poder restaurarlas a su estado original sin mayor problema.

Una vez finalizada la parte de configuración de la red creamos nuestra máquina virtual a la que le asignamos las siguientes características: 3GB de Ram y el disco dejamos que se expanda automáticamente tal como se muestra en la figura 4.

Page 38: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 37

3.2 Instalación y configuración de Debian Una vez instalado nuestro hipervisor instalamos una imagen netinstall Debian Wheezy

descargada de la página oficial de Debian.

Durante la instalación:

Se configura LVM cifrado, la password es honeyroot14

Como entorno de escritorio se ha elegido Mate Desktop 1.8 por preferencias de usabilidad,

fiabilidad y eficiencia para lo cual se le añaden los repositorios de blackports.

Usuarios y contraseñas:

Nombre de la maquina: matrioska

Nombre de usuario: tarrito

Password de tarrito: 20honeyuser14

Password de root: 20honeyroot14

A partir de este punto cuando hagamos referencia a esta máquina la llamaremos

honeymatrioska.

Post instalación:

Paquetes adicionales:

- Terminator

- Virtualbox

- Snort

- Aide

- Lightdm

- Chromium

- VirtualBox Guest Additions (Se instala en todas las máquinas para permitir funciones

avanzadas por lo que no se volverá a nombrar.)

Creamos una carpeta compartida de forma temporal para pasarle las imágenes necesarias.

Configuración de la red:

Con todo ya instalado hemos de configurar la red para que se ajuste a nuestras necesidades y

no llevarnos sorpresas incómodas luego con las máquinas virtuales. Para ello abrimos el

fichero /etc/network/interfaces con nuestro editor favorito y lo configuramos como sigue:

Page 39: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 38

Comprobamos que la configuración se haya hecho efectiva reseteando previamente las

interfaces de red con /etc/init.d/networking reload:

Configuración de Snort:

Una vez finalizada la instalación se ejecuta con privilegios de superusuario dpkg-reconfigure

snort para entrar en la interfaz dialog que nos facilita su configuración.

Le indicamos las ips de honeymatrioska 192.168.1.6, 192.168.3.1, 192.168.3.2 sin activar el

modo promiscuo ni el envío de mails tal como se muestra en las figuras de la 5 a la 9.

Una vez configurado snort instalamos en virtualbox dentro de honeymatrioska y empezamos a

con nuestros honeys.

# The primary network interface in file /etc/network/interfaces

allow-hotplug eth0

iface eth0 inet static

address 192.168.1.6

netmask 255.255.255.0

gateway 192.168.1.2

root@matrioska:~# ifconfig

eth0 Link encap:Ethernet HWaddr 08:00:27:d5:13:2e

inet addr:192.168.1.6 Bcast:192.168.1.255 Mask:255.255.255.0

inet6 addr: fe80::a00:27ff:fed5:132e/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500

Metric:1 RX packets:3951 errors:0 dropped:0 overruns:0 frame:0 TX packets:469 errors:0

dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:315970 (308.5 KiB) TX

bytes:30582 (29.8 KiB)

lo Link encap: Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0

frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0

Page 40: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 39

3.3 Instalación honeydrive

Diseño elegido de honeydrive

Una vez descrito todo el software que compone Honeydrive, debemos escoger cómo será la

arquitectura elegida de nuestro honeypot ya que los servicios descritos anteriormente son

muy versátiles y dispone de múltiples configuraciones, algunos de ellos trabajando en los

mismos puertos con la configuración por defecto.

Nuestra pretensión no ha sido cubrir todos los servicios posibles si no aquellos que tienen un

atractivo especial en algunos casos para el atacante y en otros para nosotros como objeto de

la investigación, normalmente los honeypots suelen ser pasivos pero este se pretende activo y

con el conocimiento del atacante por lo que los servicios no tienen que ser coherentes con el

sistema operativo.

Lo primero es instalar nuestra imagen de honeydrive dentro del virtualbox de honeymatrioska

para lo cual sólo tenemos que darle doble click al fichero punto ova previamente descargado,

la única modificación que hacemos es aumentarle el número de procesadores a emular en la

primera pestaña de instalación para que funcione de forma más fluida.

Una vez instalada nuestra máquina virtual le cambiamos los passwords por defecto dejándolos

del mismo modo que en honeymatrioska.

Ahora pasaremos a las decisiones tomadas en la fase de diseño sobre los servicios que

correrán en esta máquina para proceder a su configuración.

Las decisiones tomadas son las siguientes:

Dionea se encargará de los protocolos smb, sip y de las bases de datos, su objetivo

será el analizar el malware y los ataques que en estos servicios se producen.

Tiny honeypot actuará como honeypot para los protocolos ftp, smtp cubriendo de

este modo servicios de correos y transferencia de archivos.

Wordpot estará montado en el puerto 80 emulando wordpress.

Glastopf será usado en el puerto 8080 para ver los ataques que reciben los servidores

web.

Amunt será configurado para emular la vulnerabilidad de Symantec Remote

Management Stack Buffer Overflow

Honeyd emulará un sistema FreeBSD, con dos routers cisco y un firewall checkpoint

Kippo cumpliendo con su función emulará un servicio ssh vulnerable.

Con esto en mente, hacemos unas configuraciones previas iniciales tales como:

Configurar la red

Actualizar el sistema

Cambiarle el del teclado

Y comenzamos a configurar nuestras herramientas.

Page 41: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 40

3.4 Configuración Honeydrive

Empezaremos por configurar las herramientas de detección de malware, aunque debido a la

naturaleza de este honeypot que se explicará en detalle en la parte de exposición nos parece

poco probable llegar a obtener ningún tipo de malware, queremos probar la eficiencia de las

herramientas anteriormente descritas.

3.4.1 Mwcrawler

Mwcrawler se inicia con /opt/mwcrawler/mwcrawler.py y es un script en python, cuando

fuimos a iniciarlo para comprobar su funcionamiento dio el siguiente error:

Comprobamos que dispusiese de la librería BeatifultSoup y revisamos la línea de código pero

no vimos el error y aunque seguramente sea obvio en este punto no andamos con mucho

tiempo para depurar código por lo que buscamos una alternativa y encontramos a maltrive,

creado por Kile Maxwell, un folk de mwcrawler que será implementado en la siguiente versión

de honeydrive.

3.4.1.1 Maltrieve, Características, instalación, configuración y puesta en

funcionamiento.

Maltrieve está licenciado con GPLv3 por lo que podemos leer su código fuente y puede ser

importado compartido y distribuido.

Para instalar maltrive todo lo que tenemos que hacer es irnos a su repositorio de github y

descargarnos los ficheros en la carpeta opt restando el nombre de los mismos.

Maltrive tiene un funcionamiento similar a mwcrawler, se descarga el malware directamente

de las fuentes provistas en una lista de urls que incorpora en su código, sigue siendo un script

en python pero con funcionalidades mejoradas como el soporte para Cuckoo Sandbox y

VxCarge.

honeydrive@honeydrive:~$ /opt/mwcrawler/mwcrawler.py

Malware Parser v0.4

- Error parsing http://minotauranalysis.com/malwarelist-urls.aspx

- Fetching from NovCon Minotaur

Traceback (most recent call last):

File "/opt/mwcrawler/mwcrawler.py", line 224, in <module>

minotaur(parse('http://minotauranalysis.com/malwarelist-urls.aspx'))

File "/opt/mwcrawler/mwcrawler.py", line 162, in minotaur

for row in soup('td'):

TypeError: 'NoneType' object is not callable

Page 42: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 41

Descarga el malware en el directorio /tmp/malware que ha de ser creado en el caso de que no

exista o modificar el código para que se descargue en otro directorio.

Comprobamos que se cumplen sus dependencias, BeatifulSoup, lxml y lo iniciamos llamándolo

con python, momento en el que se pone a trabajar. Se puede ver funcionando en la figura 9 .

Para gestionar de un modo más correcto los resultados de Maltrieve utilizaremos Mastiff para

lo cual clonamos su repositorio: git clone https://git.korelogic.com/mastiff.git en el directorio

/opt/

Mastiff es un framework que automatiza el proceso de extraer las características clave de un

fichero con diferentes tipos de formato de archivos, o explicado de otro modo los resultados

que nos da Maltrieve están codificados en md5 y son una larga lista de hashes donde es difícil

discernir que tipo de fichero es cada uno, Mastiff nos va a ayudar con esta tarea, por lo que

para dar una definición más exacta Mastiff es un framework analizador de malware.

3.4.1.2 Mastiff

Para hace funcionar a Mastiff al igual que con los otros scripts hemos de lanzar su fichero

mas.py pasándole como argumento el nombre del fichero con la ruta absoluta a analizar, pero

antes, como con cualquier otro software, lo primero es comprobar que se cumplen todas las

dependencias que este necesite para trabajar, Mastiff necesita de yapsy un gestor de plugins,

así que lo instalamos con pip, una vez instalado lo iniciamos y nos muestra la ayuda disponible

de la cual mostramos un fragmento porque tiene bastantes opciones:

Nosotros queremos que analice los ficheros contenidos en todo un directorio le hemos

añadido un pequeño script sacado de tekdefense:

root@honeydrive:/opt/mastiff# python mas.py

Usage: mas.py [options] FILE|DIRECTORY

Options:

-c CONFIG_FILE, --conf=CONFIG_FILE

Use an alternate config file. The default is

'./mastiff.conf'.

-h, --help Show the help message and exit.

-l PLUGIN_TYPE, --list=PLUGIN_TYPE

List all available plug-ins of the specified type and

exit. Type must be one of 'analysis' or 'cat'.

-o OVERRIDE, --option=OVERRIDE

Override a config file option. Configuration options

should be specified as 'Section.Key=Value' and should

be quoted if any whitespace is present. Multiple

overrides can be specified by using multiple '-o'

options.

-p PLUGIN_NAME, --plugin=PLUGIN_NAME

Only run the specified analysis plug-in. Name must be

quoted if it contains whitespace.

-q, --quiet Only log errors.

-t FTYPE, --type=FTYPE

Force file to be analyzed with plug-ins from the

specified category (e.g., EXE, PDF, etc.). Run with

Page 43: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 42

Que lanzamos invocándolo con: python autoRunMas.py en este punto nos da algún error ya

necesita la librería de pydeep para funcionar que a su vez tiene como dependencia ssdeep que

a su vez tiene como dependencia cython, instalamos cython con pip y para ssdeep y para el

resto creamos un sencillo script:

#!/bin/sh

cd /opt/

wget http://sourceforge.net/projects/ssdeep/files/ssdeep-2.10/ssdeep-2.10.tar.gz

tar -xvzf ssdeep-2.10.tar.gz

rm -f ssdeep-2.10.tar.gz

mv ssdeep-2.10 ssdeep

cd /opt/ssdeep/

./configure

make

make install

ldconfig

cd /opt/

git clone https://github.com/kbandla/pydeep.git pydeep

cd /opt/pydeep/

apt-get install python-dev

#!/usr/bin/python

import os

“””MASTIFF Autorun # @TekDefense # www.TekDefense.com Quick script to autorun samples from

maltrieve to MASTIFF

“””

malwarePath = '/tmp/malware/'

for r, d, f in os.walk(malwarePath):

for files in f:

malware = malwarePath + files

print malware

os.system ('mas.py' + ' ' + malware)

Page 44: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 43

python setup.py build

python setup.py install

Una vez todo en orden volvemos a lanzarlo y revisamos los resultados que se encuentran el

directorio /opt/Mastiff/work/log

Todo lo analizado se almacena en una base de datos llamada Mastiff.db para posteriormente

facilitar en análisis (figura 10), también es importante comentar que Mastiff permite la

integración con las apis de virus total entro otras, esto puede ser configurado en el fichero de

configuración de Mastiff.

3.4.2 Configuración de Dionaea

Características y detalles:

Dionaea Honeypot es el sucesor del conocido Nepenthes. El objetivo de dionaea es recolectar

piezas de malware. Ofrece servicios vulnerables a la red con el objetivo de conseguir una copia

del malware que explota las vulnerabilidades expuestas.

Los gusanos, por ejemplo, suelen usar APIs para acceder a los servicios antes de enviar su

payload, estos payloads pueden contener una url desde donde descargar una copia del

gusano. Esta interacción se da a través de protocolos implementados en python simulando

servicios reales.

Dionaea ofrece servicios como: smb, http, ftp, tftp, mssql, mysql, sip, … Utiliza python3 y

herramientas como scapy, libemu, libcurl, libpcap, libssl entre otras. Permite la subida de

ficheros vía web y ftp, y el acceso a las bases de datos señuelo a los atacantes como si de un

entorno real se tratara.

Toda la actividad se registra en ficheros de logs. Es posible limitar la información por niveles de

detalle (info, warn, crit, etc). Además, Dionaea usa un sistema de comunicación interna que se

registra en una base de datos sqlite.

El ejecutable dionaea estará por defecto en la ruta /opt/dionaea/bin/dionaea y cuenta con las

siguientes opciones en la ejecución:

# ./dionaea -h

Dionaea Version 0.1.0

-c, --config=FILE use FILE as configuration file

-D, --daemonize run as daemon

-g, --group=GROUP switch to GROUP after startup (use with -u)

-h, --help display help

Page 45: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 44

-H, --large-help display help with default values

-l, --log-levels=WHAT which levels to log, valid values all, debug, info, message, warning,

critical, error, combine using ',', exclude with - prefix

-L, --log-domains=WHAT which domains use * and ? wildcards, combine using ',', exclude

using -

-u, --user=USER switch to USER after startup

-p, --pid-file=FILE write pid to file

-r, --chroot=DIR chroot to DIR after startup, warning: chrooting causes problems with

logsql/sqlite

-V, --version show version

-w, --workingdir=DIR set the process' working dir to DIR

examples:

# dionaea -l all,-debug -L '*'

# dionaea -l all,-debug -L 'con*,py*'

# dionaea -u nobody -g nogroup -w /opt/dionaea -p /opt/dionaea/var/run/dionaea.pid

Podremos arrancarla con las siguientes opciones:

/opt/dionaea/bin/dionaea -D -u dionaea -g dionaea -w /opt/dionaea/ -p

/opt/dionaea/var/run/dionaea.pid

/opt/dionaea/bin/dionaea –D #Esta será la instrucción que utilicemos

La opción “-u usuario” crea un proceso hijo para el usuario indicado después del arranque

como medida de seguridad pero ha de existir previamente el usuario de dionaea. Si todo ha

ido bien veremos dos procesos dionaea al hacer un ps aux, el padre para el usuario root y otro

hijo para el usuario dionaea.

Se pueden consultar los logs para comprobar posibles errores en el arranque en

/opt/dionaea/var/log/, en los ficheros dionaea.log y dionaea-errors.log.

La actividad, muestras del malware, capturas de conexión y demás información se guarda en

/opt/dionaea/var/dionaea/:

binaries: en esta carpeta se alojarán las muestras de malware que recoja dionaea.

bistreams: información de cadenas de conexión.

wwwroot: ficheros subidos por los servicios http y ftp.

rtp: capturas de tráfico en formato pcap.

Page 46: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 45

logsql.sqlite: registro de actividad en base de datos sqlite.

sipaccounts: actividad con protocolo sip.

Configuración:

El fichero de configuración se encuentra en /opt/dionaea/etc/dionaea.conf. La configuración

es algo extensa aunque se entiende bastante bien ya que cuenta con muchos comentarios. Se

comentan las opciones más importantes:

Dentro de la categoría logging, al principio, podremos indicar el fichero de log (campo file) y el

nivel de detalle de los logs (en el campo levels), por ejemplo de la siguiente manera:

file = "log/dionaea.log"

levels = "warning,critical,error"

Indicar en qué interfaz trabajará dionaea en la categoría “listen”, en el campo “addrs”.

mode = "manual"

addrs = { eth0 = ["XX.XX.XX.XX"] }

Esto es importante ya que dionaea registrará toda la actividad en la interfaz indicada. Lo ideal

es contar con dos interfaces, una de gestión para acceder a la máquina para administrarla y

otra para que dionaea registre la actividad. Por seguridad, la de gestión debería de estar

accesible sólo a través de una red interna.

Si queremos conectar dionaea con virustotal tendremos que indicar la key de la api en la

configuración:

virustotal = {

apikey =

"7536e4c034490b91d3d2f07a6fa7d68c8b323c5881afa496e26de6887766553902" // grab it

from your virustotal account at My account &gt; Inbox &gt; Public API

file = "var/dionaea/vtcache.sqlite"

}

Como se ha comentado, es posible permitir a un atacante acceder a una base de datos a través

del servicio mySQL en nuestro caso la base de datos ficticia ya viene instalada con honeydrive.

Ahora vamos a preparar una interfaz gráfica que nos facilite la visualización de los datos que se

almacenan en la base de datos de una forma más amigable. Para ello tenemos el proyecto

DionaeaFR, un frontal web hecho en django bastante interesante.

Page 47: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 46

Y se ejecuta el servidor web:

python manage.py collectstatic

python manage.py runserver 0.0.0.0:8000

Se puede acceder a dionaeafr accediendo a http://YOUR_IP:8000 en el navegador.

Lanzamos el servicio y lo dejamos corriendo, en la figura 11 se muestra la interfaz gráfica de

dionea ya en funcionamiento.

3.4.4 Configuración de Amun

El archivo de configuración es /opt/amun/conf/amun.conf. El primer parámetro de

configuración, es la ip donde Amun estará escuchando por conexiones entrantes. En vez de

una ip, podemos darle una interface de red: ip: eth0

Otra parte importante de la configuración son los módulos de envió. Una vez que Amun se ha

descargado el malware, puede, al igual que Dionaea, guardarlo en el disco local para lo cual

usa el md5 del archivo como nombre, o enviarlo a los siguientes servicios de análisis externos:

anubis, cwsandbox o joebox. El resultado puede ser consultado bien vía web o vía mail,

también podremos analizarlo con Mastiff agregándolo a nuestra bd de malware.

La parte realmente interesante del archivo de configuración es donde declaramos los módulos

de vulnerabilidades que van a ser usador por Amun. Los podemos encontrar en

/opt/amun/vuln_modules/ y son modulos de python emulando vulnerabilidades conocidas.

vuln_modules:

vuln-mydoom,

vuln-axigen,

vuln-symantec,

vuln-veritas

A parte de definir que vulnerabilidades queremos exponer, Amun nos permite poder definir

en que puerto las queremos poner:

# CVE-2005-0582 - Axigen Mail Server

# http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-0582

vuln-axigen: 110

# CVE-2006-1630 - Symantec Remote Management Stack Overflow

# http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-1630

Page 48: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 47

vuln-symantec: 2967,2968,38292

# CVE-2004-0567 - Veritas Backup Exec Agent Stack Overflow

# http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2004-0567

vuln-veritas: 6101

Otros parámetros de la configuración son, el usuario y grupo con el que será iniciado (no

puede escuchar por encima del puerto 1024 sin ser superusuario).

Para iniciar Amun procedemos de la siguiente forma:

$ sudo /opt/amun/amun_server.py

E esta ocasión mostraremos aquí una figura interesante, de la parte derecha de la figura nmap

escaneado nuestra ip y de la parte izquierda el servidor Amunt iniciado capturando las

acciones de namp:

Amun tienen varios módulos para gestionar logs. Los distintos módulos pueden ser

activados o desactivados comentándose en el archivo de configuración de Amun mencionado

arriba:

log_modules:

# log-surfnet,

log-syslog,

# log-mysql

Page 49: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 48

log-mysql - para mandar los logs a mysql. La configuración de este modulo (base datos,

usuario y pass) se encuentra en /opt/amun/conf/log-mysql.conf

log-syslog - este modulo manda toda la información de ataques entrantes al demonio local

de syslog

log-surfnet - permite la integración de Amun con SURFids

Los logs generados por syslog los podemos encontrar en /opt/amun/logs/.

En este directorio se encuentran tanto los logs del propio servidor Amun, como de las

interacciones que generan las amenazas contra Amun. Amun maneja las conexiones

proporcionándoles un módulo que se encarga de gestionar la interacción, al que llaman

ihandler. Como consecuencia del registro de actividades relacionadas con este modulo, se

generan logs que son almacenados en el archivo

/etc/opt/amun/logs/amun_request_handler.log.

Una fragmento de lo que podría contener el este archivo se muestra en la figura 12

3.4.5 Configuración de Tiny Honeypot

Tiny Honeypot (thp en lo que sigue) es un honeypot que hace uso de iptables para tomar las

decisiones sobre como re direccionar el tráfico TCP/IP entrante.

El script iptables de que es provisto por thp, que se encuentra en /etc/iptables.rules, correrá

en la mayoría de los entornos con las mínimas modificaciones. Estas modificaciones crecerán si

el host en el que estamos ejecutando thp esta actuando como router.

Se puede ver en la siguiente captura:

Page 50: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 49

CAPTURA THPOT IPTABLES TABLES

Una de las cosas interesantes de thp es que permite a los servicios que tengamos en el

sistema, seguir ejecutándose sin que thp interfiera en su funcionamiento. Estos servicios

deben ser establecidos en el script Iptables, agregándolos a la variable GOOD_SVCS. Por

defecto, el script Iptables redirigirá los demás puertos no especificados en esta variable. Los

puertos que deseemos usar para thp serán declarados en la variable HPOT_TCP_SVCS

Los puertos declarados en HPOT_TCP_SVCS serán redirigidos a HPOT_TCP_SVCS+40,000 y las

sesiones serán manejadas por los archivos de xinetd tal como se muestra a continuación:

Page 51: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 50

CAPTURA THPOT XINETD DIR

Estos archivos (/etc/xinet.d/*) contienen información sobre el puerto, el servidor

(/usr/sbin/thpot) y los argumentos del servidor. Este argumento define que script de perl será

el que maneje las peticiones y respuestas a ese servicio.

Page 52: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 51

CAPTURA THPOT XINETD SERVICES

Cualquier puerto que no tenga un servicio personalizado será redirigido al puerto 6635 por

defecto, establece una conexión y devuelve una Shell a la maquina remota

En el archivo de configuración (/etc/thpot/thp.conf) se definen lo parámetros típicos como son

la interface de red ($intf = "eth0";) y la dirección ($thpaddr = "127.0.0.1";) así como el dominio

o los directorios de operación básicos de thp ($thpdir = "/usr/share/thpot";) ($logdir =

"/var/log/thpot";) ($logfile = "$logdir/captures";) ($errfile = "$logdir/errors";).

La parte interesante de la configuración es la definición de las versiones de los cuatro tipos de

servicios que podemos emular con thp, mostramos aquí la configuración:

# ftp server version choices (edit them if you like)

my @fver;

$fver[1] = "FTP server (Version wu-2.6.0(1))";

$fver[2] = "FTP server (Version wu-2.6.1(2))";

$fver[3] = "FTP server (Version wu-2.6.1-16)";

Page 53: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 52

$fver[4] = "FTP server (BSDI Version 7.00LS)";

$fver[5] = "FTP server (PFTP 0.13)";

$fver[6] = "NcFTPd Server";

$fver[7] = "Microsoft FTP Service (Version 5.0)";

$fver[8] = "Microsoft FTP Service (Version 4.0)";

# the http vendor is emulated via selecting the appropriate directory of responses

#$httpdvend = "Microsoft-IIS";

$httpdvend = "Apache";

# http version is reported in headers, responses, etc. and SHOULD be a sensible

# match with the $httpdvend. If your server reports itself as IIS/1.3.9, that

# might raise an eyebrow.

#$httpdver = "5.0";

#$httpdver = "6.0";

$httpdver = "1.3.9";

#$httpdver = "1.3.19";

# sshd version to emulate:

my @sver;

$sver[1] = "SSH-1.5-1.2.26";

$sver[2] = "SSH-1.5-1.2.27";

$sver[3] = "SSH-2.0-OpenSSH_3.4p1";

$sshver = $sver[int(rand(@sver-1))+1];

Page 54: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 53

#smtp version to emulate

my @smver;

$smver[1] ="ESMTP Sendmail 8.12.2/8.12.2/SuSE Linux 0.6;";

$smver[2] ="ESMTP Exim 3.12 #1";

$smver[3] ="ESMTP Sendmail 8.9.3/8.9.3/Debian 8.9.3-21;";

$smver[4] ="ESMTP Server (Microsoft Exchange Internet Mail Service 5.5.2653.13)";

$smver[5] ="ESMTP Sendmail 8.11.6/8.11.6;";

$smtpver = $smver[int(rand(@smver-1)) + 1];

El resultado en cuanto a servicios accesibles desde el exterior quedaría de la siguiente forma,

según nmap:

CAPTURA NMAP THPOT

Page 55: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 54

3.4.6 Configuración de Wordpot

La configuración la podemos encontrar en el archivo /opt/wordpot/wordpot.conf. Los valores

más relevantes son la dirección y el puerto donde permanecerá a la escucha así como la lista

de plugins y temas, el título y poco más

# -----------------------

# Honeypot configuration

# -----------------------

HOST = '127.0.0.1' # Hostname

PORT = '80' # Port

THEME = 'twentyeleven' # Theme name in use

# -----------------------

# Wordpress configuration

# -----------------------

BLOGTITLE = 'Random Ramblings' # Title of the blog

VERSION = '2.8' # Version to mimick

AUTHORS = ['admin'] # Authors list

3.4.7 Configuración de Glastopf

El archivo de configuración puede ser encontrado en /opt/glastopf/glastopf.cfg. En nuestro

caso los campos que hemos modificado son la dirección del host donde estará escuchando y el

puerto para adaptarlo a nuestras necesidades particulares.

[webserver]

host = 0.0.0.0

port = 80

uid = nobody

Page 56: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 55

gid = nogroup

proxy_enabled = False

En este archivo también podemos especificar a donde queramos que vayan los logs.

#Generic logging for general monitoring

[logging]

consolelog_enabled = True

filelog_enabled = True

logfile = log/glastopf.log

Para ver los servicios que el sistema esta ofreciendo al exterior con esta configuración,

lanzamos nmap contra la IP de este, desde otra maquina:

CAPTURA NMAP TODO

Page 57: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 56

3.5 Instalación y Configuración WinhoneyD

3.5.1 Instalación

Una vez instalada nuestra máquina virtual de Windows server dentro de Honeymatrioska,

necesitamos instalar algunos paquetes para que todo valla bien con winHoneyD.

La password de administrator de Windows es 20adminroot14!

Volvemos a crear una carpeta compartida temporal, podríamos pasarle los archivos por la red

pero ya que virtualbox nos da esta facilidad la usaremos, siempre recordando desmontar

posteriormente estas unidades.

Buscamos las fuentes oficiales e instalamos:

- Nmap

- Cywin

- Chrome

- Winzip

- P7zip

- Wireshark

- Y las contribuciones de honeyd

Mantenemos todas las descargas en la carpeta de descargas que será donde guardaremos

todas nuestras cosas exceptuando honeyd que lo movemos a la carpeta raíz.

3.5.2 Configuración:

Para configurar winhoneyd es tan fácil o tan complicado como crear un template o plantilla

indicándole el sistema a emular, en que ip debe ser emulado y sus características pero antes

de entrar con la configuración de los templates debemos descomprimir dentro de la carpeta

scripts los scripts que nos hemos descargado de las contribuciones y los extraemos para que

queden disponibles.

Ahora crearemos nuestros templates para ello lo primero de todo es definir cómo va a ser la

red que simulará honeyd, cuantas y qué máquinas tendrá y que servicios ofrecerán estas

maquinas.

En nuestro caso vamos a crear un template sencillito que emula un Servidor Exchange 2003, la

plantilla de configuración será la siguiente:

Page 58: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 57

#Fichero C:\\WinHoney\honeyd.config

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:\WinHoneyd\scripts\contrib\smtp.sh"

ADD Exchange Server 2003 TCP PORT 80 "perl.exe

C:\WinHoneyd\scripts\contrib\honeyd\scripts\win2k\iisemulator-0.95\iisemul8.pl"

ADD Exchange Server 2003 TCP PORT 88 OPEN

ADD Exchange Server 2003 TCP PORT 110 "sh

C:\WinHoneyd\scripts\contrib\honeyd\scripts\contrib\smtp.sh"

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 445 BLOCK

ADD Exchange Server 2003 TCP PORT 593 OPEN

ADD Exchange Server 2003 TCP PORT 1063 OPEN

Page 59: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 58

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

Una vez creada nos iniciamos honeyd desde powershell con honeyd –f honeyd.config,

obviamente tenemos que encontrarnos en el directorio de honeyd.

A continuación una captura de pantalla con honeyd funcionado:

4. Capitulo 4. Exposición de los sistemas

Exposición pasiva:

Desde el momento de configuración de cada uno de los honeypots se han dejado expuestos de

forma alterna utilizando la interfaz de red que proveía nuestra dmz , viendo que los logs

recogidos de este modo eran lentos pasamos a otro tipo de exposición más activa y atractiva.

Page 60: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 59

Exposición activa:

En este punto facilitamos la ip pública de la wan a distintas listas de correo enfocadas a la

seguridad informática, indicando que era un honeypot y pidiendo que por favor lo atacasen

para este trabajo, la acogida fue tan alta que al segundo día tuvimos que enviar nuevos

correos diciendo que la prueba había finalizado.

5. Análisis de datos

Tras el periodo de exposición se recibieron más de 200 ataques en dos días, sin contar los

ataques de la exposición activa, pudimos observar que Windows recibe más ataques que linux

con diferencia una vez implementados los servicios de iis.

La calidad de los ataques ha sido muy variada, uno de los servicios más relevantes para ello fue

ftp por la simplicidad del usuario anonymous.

Durante la semana que el honeypot ha estado expuesto a la red se han recogido una serie de

datos en forma de logs (registros) cuyo análisis es el siguiente:

De los servicios o protocolos expuestos, los que han recibido más conexiones son

Microsoft SQL con 287 conexiones y Samba con 205 conexiones de donde se deduce

que son servicios a tener en cuenta a la hora de plantearse políticas de seguridad o

hardening de maquinas en producción.

Los países de origen de los ataques han sido:

1. China con 22 conexiones

2. Estados Unidos con 8 conexiones

3. Francia con 7 conexiones

4. Brasil con 3 conexiones

5. Colombia con 2 conexiones

6. Islandia con 2 conexiones

La dirección ip que más ataques ha generado a sido 234.27.79.32 y su procedencia es

Dallas (Estados Unidos).

La mayoría de los atacantes según muestran los logs registrados, se limitaron a hacer

scaneo de los servicios del honeypot sin intentar ningún tipo de intrusión posterior, o

en el caso de intentarla, resultó sin éxito, lo cual demuestra un perfil bajo o inexperto

en los mismos.

Page 61: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 60

A pesar de este perfil, ya que tenemos constancia de quela mayoría de los ataques provenían

de España, aunque los datos no lo reflejen, deducimos que en un 70% de las ocasiones según

los datos estaba siendo utilizado algún tipo de proxie o estaban conectados a través de la red

tor.

A parte de los ataques activos anteriormente reflejados no se ha recogido ninguna muestra de

malware proveniente de fuentes pasivas.

Para que esto sucediese habría sido necesario una exposición mas prolongada de las maquinas

que por motivos logísticos no ha resultado posible.

6. Conclusiones Después de todo lo expuesto y vivido durante la realización de este TFM si alguna conclusión

se ha llegado es que el mundo de los honeypots es apasionante desde cualquier prisma, poco

explorado y merecedor de toda atención.

No sólo nos permite defender nuestros sistemas y conocer a los atacantes si no que nos

provee de un conocimiento difícilmente alcanzable de otro modo.

Page 62: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 61

X. BIBLIOGRAFÍA

http://bruteforce.gr/honeydrive

http://www.alegsa.com.ar/Dic/honeypot.php

Honeynets como herramienta de prevención e investigación de ciberataques

http://www.somoslibres.org/modules.php?name=News&file=article&sid=307

http://www.tekdefense.com/news/tag/malware-analysis?currentPage=2

http://www.repson.org/

http://kinomakino.blogspot.com.es/

Page 63: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 62

ANEXO

Figura 1 Configuración de interfaces vboxnet en virtualbox:

Figura 2 Configuración vboxnet0

Page 64: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 63

Figura 3 Configuración vboxnet1

Volver al punto 3.1

Page 65: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 64

Figura 4 Características de la maquina virtual Debian

Figura 4 Características de la Maquina virtual Debian.

Volver al punto 3.1

Page 66: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 65

Figura 5 Instalación de Snort

Volver al punto 3.2

Figura 6 Configuración del Snort 1

Page 67: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 66

Figura 7 Configuración de Snort 2

Figura 8 Configuración de Snort 3

Volver al Punto 3.2

Page 68: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 67

Figura 9 Maltrive

Volver al punto 3.4.2

Figura 10 Mastiff.db

Volver al punto 3.4.1.2

Page 69: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 68

Figura 11 Interfaz gráfica de dionaea

Ir al punto 3.4.4

Page 70: Trabajo de Fin de Master - blog.hackingcodeschool.net€¦ · El presente documento de hacer un humilde estudio sobre las soluciones honeypot. Este documento se licencia bajo GPLv3,

Licenciado bajo GPLv3 Página 69

Figura 12 Amun