lunes, 1 de febrero de 2021

Instalar Honeypot T-Pot en una máquina virtual

T-Pot se basa en una distribución Debian (Estable), con muchos demonios honeypot (todo-en-uno), así como otros componentes de soporte, incluidos en contenedores con Docker. Esto nos permite ejecutar múltiples demonios honeypot en la misma interfaz de red, manteniendo un pequeño espacio y restringiendo cada honeypot dentro de su propio entorno. Cada servicio de honeypot funciona detrás de un contenedor volátil para mayor seguridad, aunque los datos son guardados y mostrados visualmente en ELK (Elasticsearch + Logstash + Kibana) . Kibana permite a los usuarios visualizar los datos en cuadros y gráficos con Elasticsearch.


Se denomina Honeypot al software o conjunto de computadores cuya intención es atraer a atacantes, simulando ser sistemas vulnerables o débiles a los ataques. Es una herramienta de seguridad informática utilizada para recoger información sobre los atacantes y sus técnicas. Los Honeypots pueden distraer a los atacantes de las máquinas más importantes del sistema, y advertir rápidamente al administrador del sistema de un ataque, además de permitir un examen en profundidad del atacante, durante y después del ataque al Honeypot.


Los honeypots son herramientas de seguridad cada vez más populares para detectar y prevenir amenazas cibernéticas. Un honeypot es esencialmente un sistema o servicio diseñado para atraer a los atacantes, para que éstos interactúen con él y expongan sus tácticas, técnicas y procedimientos. Estas herramientas son muy útiles para recopilar información sobre los atacantes y sus intenciones, lo que puede ayudar a los equipos de seguridad a fortalecer sus defensas y prevenir futuros ataques.

T-Pot

T-Pot es un desarrollo de código abierto que combina honeypots de baja y alta interacción en un único sistema. Su implementación es bastante sencilla (no debería tomar más de 30 minutos en desplegarse) y nos permite emular servicios de red como Android ADB, hardware de red vulnerable como routers, SCADA, SSH, Telnet, DICOM, Elasticsearch, FTP, RDP, HTTP/S, postgreSQL, MSSQL, POP3, SMTP, SMB, entre otros.

Panel de control una vez esté todo instalado y funcionando

T-Pot combina los honeypots dockerizados: adbhoney, ciscoasa, citrixhoneypot, conpot, cowrie, dionaea, elasticpot, glutton, heralding, honeypy, honeytrap, mailoney, medpot, rdpy, snare y tanner.

Incluyendo las siguientes herramientas:

  • Cockpit para una webui liviana para docker, sistema operativo, monitoreo de rendimiento en tiempo real y terminal web.
  • Cyberchef, una aplicación web para encriptación, codificación, compresión y análisis de datos.
  • ELK stack para visualizar todos los eventos capturados por T-Pot.
  • Elasticsearch Head un front-end web para navegar e interactuar con un clúster de Elastic Search.
  • Fatt un script basado en pyshark para extraer metadatos de red y huellas digitales de archivos pcap y tráfico de red en vivo.
  • Spiderfoot, una herramienta de automatización de OSINT (Open Source Intelligence).
  • Suricata, motor de monitoreo de seguridad de red.

Si bien los datos dentro de los contenedores Docker son volátiles, en T-Pot tienen una persistencia predeterminada de 30 días de todos los datos relevantes de honeypot y herramientas en la carpeta «/data" y sus subcarpetas . La configuración de persistencia se puede ajustar en «/opt/tpot/etc/logrotate/logrotate.conf» . Una vez que un contenedor acoplable se bloquea, todos los demás datos producidos dentro de su entorno se borran y se inicia una nueva instancia desde la imagen correspondiente del acoplador.

Básicamente, lo que sucede cuando el sistema se inicia es lo siguiente:

  1. Se inicia el sistema host.
  2. Se inician todos los servicios necesarios (es decir, cabina, atracador, etc.)
  3. Se inician todos los contenedores docker a través de docker-compose (honeypots, nms, elk, etc.)

El proyecto T-Pot, proporciona todas las herramientas y la documentación necesaria para construir su propio sistema honeypot. El código fuente y los archivos de configuración están completamente almacenados en el repositorio de T-Pot GitHub. Las imágenes de la ventana acoplable están preconfiguradas para el entorno T-Pot. Si desea ejecutar las imágenes de la ventana acoplable por separado, asegúrese de estudiar la configuración de «/opt/tpot/etc/tpot.yml» acoplable (/opt/tpot/etc/tpot.yml ) y el script systemd de T-Pot (/etc/systemd/system/tpot.service ) , ya que proporcionan un buen punto de partida para implementar cambios.

Asegúrese de que su sistema sea accesible a través de una red en la que sospeche que haya intrusos (es decir, Internet). De lo contrario, probablemente no capturará ningún ataque, aparte de los usuarios de su red interna. Le recomendamos que lo coloque en una zona sin filtrar, donde todo el tráfico TCP y UDP se reenvía a la interfaz de red de T-Pot. Sin embargo, para evitar las huellas digitales, puede colocar T-Pot detrás de un firewall y reenviar todo el tráfico TCP/UDP en el rango de puertos de 1-64000 a T-Pot mientras permite el acceso a puertos> 64000 solo desde IP confiables.

Se encuentra disponible una lista de todos los puertos relevantes como parte del concepto técnico. Básicamente, puede reenviar tantos puertos TCP como desee, ya que honeytrap enlaza dinámicamente cualquier puerto TCP que no esté cubierto por los otros demonios honeypot. En caso de que necesite acceso externo a la interfaz de usuario de administración, reenvíe el puerto TCP 64294 a T-Pot. Si necesita acceso SSH externo, reenvíe el puerto TCP 64295 a T-Pot. En caso de que necesite acceso externo a la interfaz de usuario web, reenvíe el puerto TCP 64297.

T-Pot requiere conexiones salientes de git, http, https para actualizaciones (Debian, Docker, GitHub, PyPi) y envío de ataques (ewsposter, hpfeeds). Los puertos y la disponibilidad pueden variar según su ubicación geográfica. Además, durante la primera instalación, se requiere ICMP saliente adicionalmente para encontrar el espejo (mirror) más cercano y más rápido para tí.  



Por ejemplo si amplias la búsqueda en URLScan.io, identificará que este ASN está asociado a la difusión de varias campañas de Mirai Botnet: 



Nuestro primer Honeypot paso a paso

Vamos a ver cómo instalar T-Pot, plataforma “Todo en uno” que contiene las siguientes herramientas:


Algunos Honeypots son programas que se limitan a simular sistemas operativos no existentes en la realidad y se les conoce como Honeypots de baja interacción y son usados fundamentalmente como medida de seguridad. Otros sin embargo trabajan sobre sistemas operativos reales y son capaces de reunir mucha más información, sus fines suelen ser de investigación y se los conoce como Honeypots de alta interacción.

Instalación

– Lo primero que debemos hacer es descargar desde este repositorio https://github.com/dtag-dev-sec/tpotce/releases la imagen .ISO:



 Una vez descargada, comenzaremos a crear la correspondiente máquina virtual en Virtualbox.



  • Le otorgamos 4GB de RAM.
  • Creamos un disco duro virtual.
  • Dejamos como tipo de archivo VDI.
  • Dejamos la opción “Reservado dinámicamente” para poder disponer de espacio según lo necesitemos. Mínimo 15GB, ya que toda la instalación "standard" ocupa aproximadamente 10GB
  • En este paso, podemos elegir donde queremos que se guarde el archivo .VDI. y por último pulsamos en “Crear”.

Vamos a proceder a configurar la unidad de CD para que, al encender la máquina, lo primero que haga sea leer esta unidad y cargue lo que tenga dentro, en este caso la imagen .ISO del sistema que vamos a instalar.

  • Una vez abierta la imagen .ISO la seleccionamos como se indica a continuación.


  • También vamos a configurar la red de la máquina, la configuraremos como “Bridge” o “Adaptador puente”.


  • Una vez que hemos arrancado nuestra máquina, elegimos la opción marcada.

Procedemos a la pre-instalación siguiendo los siguientes pasos.

  • País
  • Zona Región
  • Teclado
  • Mirror Debian
Una vez que hemos realizado la pre-instalación, la máquina se reiniciará, en ese momento apagamos la máquina y eliminamos el archivo .ISO de la unidad de CD para que ya cargue directamente a través del archivo VDI.

Pulsamos aceptar y arrancamos de nuevo la máquina haciendo doble clic sobre ella. Nos carga el Grub, donde de nuevo seleccionaremos la primera opción.




A continuación, seleccionaremos lo que necesitemos. Para comenzar os recomiendo elegir la opción “Standard”.
  • Standard  --> Honeypots: adbhoney, ciscoasa, citrixhoneypot, conpot, cowrie, dicompot, dionaea, elasticpot, heralding, honeysap, honeytrap, mailoney, medpot, rdpy, snare & tanner (8GB de ram)
  • Sensor --> Honeypots: adbhoney, ciscoasa, citrixhoneypot, conpot, cowrie, dicompot, dionaea, elasticpot, heralding, honeypy, honeysap, honeytrap, mailoney, medpot, rdpy, snare & tanner (sólo requiere 4GB de RAM al no usar ELK)
  • Industrial --> Honeypots: conpot, cowrie, dicompot, heralding, honeysap, honeytrap, medpot & rdpy
  • Collector --> Honeypots: heralding & honeytrap
  • Nextgen --> adbhoney, ciscoasa, citrixhoneypot, conpot, cowrie, dicompot, dionaea, glutton, heralding, honeypy, honeysap, ipphoney, mailoney, medpot, rdpy, snare & tanner
  • Medical --> dicompot & medpot

Introducimos la contraseña para el acceso por consola. Nos la solicitará dos veces.

Ponemos el nombre de usuario que queremos utilizar para el acceso web. Nos preguntará si estamos seguros de usar ese nombre de usuario.

También debemos establecer una contraseña para el usuario web, también nos la solicitará dos veces.

Comenzará la instalación y configuración del sistema. Esperamos, ya que tardará varios minutos en terminar. La máquina se reiniciará cuando finalice.

Cuando la máquina se reinicie se nos cargará la consola. Recuerda que la contraseña es la que establecimos en la instalación y el usuario por defecto es tsec.

Página principal de T-Pot

¡Ya tenemos funcionando nuestro T-Pot! 🎉

¿Qué servicios nos ofrece T-Pot?

Una vez funcionando ya podemos explorar que tipo de servicios para auditar ataques y administrar el sistema nos ofrece tpot:

  1. Servicios del sistema proporcionados por el sistema operativo:
    • SSH para acceso remoto seguro.
    • Cockpit para acceso remoto basado en web, administración y terminal web.
  2. Elastick stack:
    • Elasticsearch para almacenar eventos.
    • Logstash para ingerir, recibir y enviar eventos a Elasticsearch.
    • Kibana para mostrar eventos en tableros muy visuales
  3. Herramientas:
    • NGINX proporciona acceso remoto seguro (proxy inverso) a Kibana, CyberChef, Elasticvue, GeoIP AttackMap y Spiderfoot.
    • CyberChef una aplicación web para el cifrado, codificación, compresión y análisis de datos.
    • Elasticvue, un front-end web para navegar e interactuar con un clúster de Elasticsearch.
    • Geoip Attack Map, un mapa de ataque para T-Pot en el que podremos ir viendo los ataques en tiempo real.
    • Spiderfoot, una herramienta de automatización de código abierto.
  4. Honeypots:
    • Los Honeypots indicados anteriormente
  5. Supervisión de seguridad de red:
    • Fatt, un script basado en pyshark para extraer metadatos de red y el fingerprint de archivos pcap y tráfico de red en vivo.
    • P0f es una herramienta para capturar fringerprint de tráfico pasivo.
    • Suricata, un motor de monitoreo de seguridad de red.

Dashboard y Attack Map

En nuestro caso, de todos estos servicios mencionados nos hemos centrado en utilizar los paneles de Kibana, como Dashboard y Attack Map, para auditar los ataques.

Desde el menú de la página inicial de T-pot accedemos a Kibana y veremos que nos despliega todas las opciones que tiene, hay muchas pero nosotros como ya hemos mencionado vamos a revisar estas dos:



En este panel podremos ver en tiempo real:

  • Origen de los ataques
  • Número de ataques durante el último minuto, última hora y durante el último día
  • Fecha y hora de cada ataque, puerto destino del ataque y a qué Honeypot se está atacando.

Por otra parte si entramos al panel de T-Pot nos encontraremos con un dashboard muy completo a modo resumen en el que, entre otras cosas, podremos ver el TOP 10 de honeypots que han recibido ataques y gráficas evolutivas:

Para actualizar nuestro sistema utilizaremos los siguientes comandos.

cd /opt/tpot

sudo ./update.sh -y

Para cambiar la versión (Standard, Sensor) podemos usar:

sudo /opt/tpot/bin/tped.sh

Para parar (stop) ver estado (status) o reiniciar (restart) o iniciar (start) el servicio tpot:

sudo systemctl stop tpot 

Fichero configuración systemd:

/etc/systemd/system/tpot.service 

Tpot se reinicia diariamente para comprobar la integridad de los contenedores, podemos editarlo en:

/etc/crontab 

Para realizar el acceso web. Deberemos ponerlos datos que nos proporcionaban cuando se inició la consola. Panel de control cockpit

https://192.168.0.105:64294

Este es el panel de logeo para el acceso web. Insertamos el usuario y la contraseña (Debemos recordar que los configuramos en la instalación). 

Y el panel de control de T-Pot con el usuario web y contraseña que definimos durante la instalación:

https://192.168.0.105:64297

Además, también nos brinda la oportunidad de poder consultar muchas otras gráficas que nos permiten ver datos como por ejemplo:

  • Puertos más atacados.
  • País de origen.
  • Sistema operativo atacante.

Otra funcionalidad muy vistosa es que T-pot ofrece una nube de frecuencia con todos los usuarios y contraseñas que han probado los atacantes (dándonos así indicios de qué usuarios y contraseñas no debemos usar en nuestros equipos, ya que los ciberatacantes podrían penetrar nuestros sistemas de manera más fácil).



También podemos acceder vía ssh

ssh -p 64295 tsec@ip

Demonios del Honeypot Daemons según puerto

docker ps

  • cowrie --> 22 (ssh) -23 (telnet) tcp
  • mailoney --> 25 (smtp) tcp
  • snare (tanner) --> 80 tcp
  • citrixhoneypot --> 443 tcp
  • rdpy --> 3389 (rdp) tcp
  • dionaea --> 445 tcp (smb-netbios), 69 udp (tftp), 135 (rpc), 3306 (MySQL), 21 (ftp), 1433 (MSSQL), 5060 (tcp-udp, SIP,VOIP)
  • heralding --> 110 (pop), 143 (imap), 993 (imaps), 995 (pop3s) y 1080 (socks5), 5432 (PostgreSQL), 5900 (vnc), 465 (smtps)
  • adbhoney -> 5555 (tcp)
  • dicompot --> 11112
  • ciscoasa -->   5000/udp  8443 (tcp)
  • Conpot IEC104 -->    161 udp (snmp) y 2404
  • Conpot guardian_ast --> 10001
  • Conpot ipmi --> 623 (udp)
  • Conpot kamstrup_382 --> 1025 y 50100
  • HoneySAP --> 3299
  • Medpot --> 2575
  • ElasticPot --> 9200
Heralding logs

  • File logger: Using /var/log/heralding/auth.csv to log authentication attempts in CSV format
  • File logger: Using /var/log/heralding/session.csv to log unified session data in CSV format
  • File logger: Using /var/log/heralding/log_session.json to log complete session data in JSON format

Servicios


  • CyberChef --> [LOCAL][DOCKER] 64299:8000
  • Elasticsearch --> 64298:9200 (2,5GB RAM)
  • Kibana --> 64296:5601
  • Elasticsearch --> 64302:9100
  • nginx --> 64297
  • spiderfot --> 64303:8080
  • Ewsposter --> manda los datos recolectados a los creadores y responsables de Tpot.
Los puertos más atacados suelen ser:

  • 22 (ssh)
  • 445 (Server Message Block (SMB))

Recuerda si estás detrás de un router abrir los puertos externos a la IP interna para empezar a recibir tráfico.

Ver el estado de los contenedores:

sudo /opt/tpot/bin/dps.sh 1


Si entramos en Kibana, Dashboard Tpot veremos las estadísticas generales:


 O bien elegir un honeypot específico.

Vista General:


  • HoneyPot ELK (Elasticsearch + Logstash + Kibana) 





Fichero configuración principal

/opt/tpot/etc/tpot.yml


Para ver en tiempo real los ataques recibidos por dionaea

tail -f /data/dionaea/log/dionaea.json


Script de inicio

/etc/systemd/system/tpot.service 

Scripts

  •  /opt/tpot/bin/clean.sh  --> para limpiar y comprimir logs con pigz

Para hacer cambios persistentes en la configuración de cowrie necesitamos

# mkdir /data/cowrie/config

# docker cp cowrie:/home/cowrie/cowrie/cowrie.cfg /data/cowrie/config

 Editar fichero tpot.yml

nano /opt/tpot/etc/tpot.yml

y añadir en # Cowrie service

    - /data/cowrie/config/cowrie.cfg:/home/cowrie/cowrie/cowrie.cfg

Por defecto TPOT no contiene la carpeta output (dónde hay los scripts de Cowrie ni el dump_path)

# output recuerda que debes copiar el contenido completo de output a /home/cowrie/cowrie/src

     - /data/cowrie/src/output:/home/cowrie/cowrie/src/output

# abuseipdb dump_path crear abuseipdb

     - /data/cowrie/abuseipdb:/home/cowrie/cowrie/abuseipdb

Así funcionarán los output y podemos añadir:

Aañadir reportes automáticos a AbuseIPDB (requiere llave API)

# Reports login attempts to AbuseIPDB. A short guide is in the original
# pull request on GitHub: https://github.com/cowrie/cowrie/pull/1346
[output_abuseipdb]
enabled = true
api_key = xxxx
rereport_after = 2
#tolerance_window is in minutes
tolerance_window = 120
tolerance_attempts = 3
# WARNING: A binary file is read from this directory on start-up. Do not
# WARNING: A binary file is read from this directory on start-up. Do not
# change unless you understand the security implications!
dump_path = ${honeypot:state_path}/abuseipdb
O subir binarios y analizar url's con VirusTotal (requiere API)

# VirusTotal output module
# You must signup for an api key.
#
[output_virustotal]
enabled = true
api_key = xxx
upload = True
debug = False
scan_file = True

O enviar reportes a Dshield (ISC SANS)

[output_dshield]
enabled = true
userid = xxx
auth_key = xxx
batch_size = 100

Controlar y ver los containers usados por TPOT

Puedes usar Portainer para controlar y manejar los containers (ten en cuenta que el puerto 8000 está ya en uso por CyberChef, así que elige otro)

$ docker volume create portainer_data

$ docker run -d -p 8000:8000 -p 9000:9000 --restart unless-stopped --name="Portainer" -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

$ docker network create docker 

Para acceder con el navegador:

http://ip_local:9000

Y elegir conectar "localmente" --> "local" 

Podrás ver y controlar todos los volúmenes, redes, imágenes, etc.

Contenedores Docker

 (ordenados por tamaño en MB)

  • dtagdevsec/kibana:2006 733.8 MB
  • dtagdevsec/elasticsearch:2006 681.4 MB (2,4 GB RAM)
  • dtagdevsec/logstash:2006 540.8 MB (1,7 GB RAM)
  • dtagdevsec/conpot:2006 335.4 MB
  • dtagdevsec/tanner:2006 242.3 MB
  • dtagdevsec/cyberchef:2006 221.3 MB
  • dtagdevsec/spiderfoot:2006 210.4 MB
  • dtagdevsec/honeytrap:2006 208.3 MB
  • dtagdevsec/dionaea:2006 188.2 MB
  • dtagdevsec/fatt:2006 183.8 MB
  • dtagdevsec/heralding:2006 145 MB
  • dtagdevsec/elasticpot:2006 133.6 MB
  • dtagdevsec/snare:2006 127.4 MB
  • dtagdevsec/cowrie:2006 112.6 MB
  • dtagdevsec/nginx:2006 111.2 MB
  • dtagdevsec/suricata:2006 100.8 MB
  • dtagdevsec/rdpy:2006 96.9 MB
  • dtagdevsec/phpox:2006 88 MB
  • dtagdevsec/ewsposter:2006 81.8 MB
  • dtagdevsec/ciscoasa:2006 72.9 MB
  • dtagdevsec/honeysap:2006 70.2 MB
  • dtagdevsec/head:2006 66 MB
  •  dtagdevsec/adbhoney:2006 59 MB
  • dtagdevsec/citrixhoneypot:2006 58.9 MB
  • dtagdevsec/mailoney:2006 53.7 MB
  • dtagdevsec/dicompot:2006 46.6 MB
  • dtagdevsec/redis:2006 33.5 MB
  • dtagdevsec/medpot:2006 18.6 MB
  • dtagdevsec/p0f:2006 9 MB



Fuentes:
https://thesecuritysentinel.es/nuestro-primer-honeypot-paso-a-paso/

https://gurudelainformatica.es/plataforma-honeypot-todo-en-uno

1 comentario: