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:
- Se inicia el sistema host.
- Se inician todos los servicios necesarios (es decir, cabina, atracador, etc.)
- 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í.
Nuestro primer Honeypot paso a paso
Vamos a ver cómo instalar T-Pot, plataforma “Todo en uno” que contiene las siguientes herramientas:
- adbhoney
- ciscoasa
- citrixhoneypot
- conpot
- cowrie
- dicompot
- dionaea
- elasticpot
- glutton
- heralding
- honeypy
- honeysap
- honeytrap
- ipphoney
- mailoney
- medpot
- rdpy
- snare
- tanner
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
- 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.
¡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:
- 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.
- Elastick stack:
- Elasticsearch para almacenar eventos.
- Logstash para ingerir, recibir y enviar eventos a Elasticsearch.
- Kibana para mostrar eventos en tableros muy visuales
- 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.
- Honeypots:
- Los Honeypots indicados anteriormente
- 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).
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
- 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
- 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.
- 22 (ssh)
- 445 (Server Message Block (SMB))
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
# 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 = trueapi_key = xxxxrereport_after = 2#tolerance_window is in minutestolerance_window = 120tolerance_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
# VirusTotal output module# You must signup for an api key.#[output_virustotal]enabled = trueapi_key = xxxupload = Truedebug = Falsescan_file = True
O enviar reportes a Dshield (ISC SANS)
[output_dshield]enabled = trueuserid = xxxauth_key = xxxbatch_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
excelente! muchas gracias
ResponderEliminar