T-Pot es la plataforma honeypot multiarca (amd64, arm64), todo en uno, distribuida opcionalmente, que admite más de 20 honeypots e innumerables opciones de visualización utilizando Elastic Stack, mapas animados de ataque en vivo y muchas herramientas de seguridad para mejorar aún más la experiencia de engaño.
Cumplir con los requisitos del sistema. La instalación de T-Pot necesita al menos entre 8 y 16 GB de RAM, 128 GB de espacio libre en disco y una conexión a Internet que funcione (saliente y no filtrada).
Descargue o utilice una distribución compatible y en ejecución.
Instale la ISO con la menor cantidad de paquetes/servicios posible (se requiere ssh
)
Instale curl
: $ sudo [apt, dnf, zypper] install curl
si aún no está instalado
Ejecute el instalador como no root desde $HOME
:
env bash -c "$(curl -sL https://github.com/telekom-security/tpotce/raw/master/install.sh)"
Siga las instrucciones, lea mensajes, verifique posibles conflictos de puertos y reinicie
T-Pot: la plataforma multihoneypot todo en uno
TL;DR
Descargo de responsabilidad
Concepto técnico
Arquitectura Técnica
Servicios
Tipos de usuarios
Requisitos del sistema
Ejecutando en una VM
Ejecutando en hardware
Corriendo en una nube
Puertos requeridos
Colocación del sistema
Instalación
Estándar / COLMENA
Repartido
Elige tu distribución
Compatibilidad con Raspberry Pi 4 (8 GB)
Obtenga e instale T-Pot
MacOS y Windows
Tipos de instalación
Desinstalar T-Pot
Primer comienzo
Planificación y Certificados
Implementación de sensores
Primer inicio independiente
Implementación distribuida
Envío de datos comunitarios
Envío de datos HPFEEDS opcional
Acceso remoto y herramientas
SSH
Página de inicio de T-Pot
Panel de control de Kibana
Mapa de ataque
ciberchef
elasticvue
Pie de araña
Configuración
Archivo de configuración T-Pot
Personalice los Honeypots y servicios de T-Pot
Mantenimiento
Exportar
Importar
Las imágenes de Docker no se pueden descargar
La red T-Pot falla
Actualizaciones generales
Actualizar script
Reinicio diario
Problemas conocidos
Iniciar T-Pot
Detener T-Pot
Carpeta de datos de T-Pot
Persistencia de registros
Restablecimiento de fábrica
Mostrar contenedores
Agujero negro
Agregar usuarios a Nginx (T-Pot WebUI)
Importar y exportar objetos Kibana
Solución de problemas
Registros
RAM y almacenamiento
Contacto
Asuntos
Discusiones
Licencias
Créditos
Los desarrolladores y las comunidades de desarrollo de
Testimonios
Usted instala y ejecuta T-Pot bajo su responsabilidad. Elija sabiamente su implementación, ya que nunca se puede descartar que el sistema se vea comprometido.
Para obtener ayuda rápida, investigue los problemas y debates.
El software está diseñado y ofrecido pensando en el mejor esfuerzo. Como proyecto comunitario y de código abierto, utiliza muchos otros programas de código abierto y puede contener errores y problemas. Informar responsablemente.
Los Honeypots, por diseño, no deberían albergar datos confidenciales. Asegúrate de no agregar ninguno.
Por defecto, sus datos se envían a Sicherheitstacho. Puede desactivar esto en la configuración ( ~/tpotce/docker-compose.yml
) eliminando la sección ewsposter
. ¡Pero en este caso compartir es realmente cuidar!
Los componentes principales de T-Pot se han movido a la imagen tpotinit
Docker, lo que permite que T-Pot ahora admita múltiples distribuciones de Linux, incluso macOS y Windows (aunque ambos están limitados al conjunto de funciones de Docker Desktop). T-Pot utiliza Docker y Docker Compose para alcanzar su objetivo de ejecutar tantos honeypots y herramientas como sea posible simultáneamente y así utilizar el hardware del host al máximo.
T-Pot ofrece imágenes acoplables para los siguientes honeypots...
miel,
ciscoasa,
citrixhoneypot,
contenedor,
cauri,
ddospot,
dicompot,
dionea,
olla elástica,
sin fin,
glotón,
olla infernal,
anunciando,
tarros de miel,
trampa de miel,
iPhone,
log4pot,
correo,
medicamento,
Redishoneypot,
centinela,
trampa,
curtidor,
pote de palabras
...junto con las siguientes herramientas...
Autoheal una herramienta para reiniciar automáticamente contenedores con controles de salud fallidos.
Cyberchef una aplicación web para cifrado, codificación, compresión y análisis de datos.
Elastic Stack para visualizar bellamente todos los eventos capturados por T-Pot.
Elasticvue es una interfaz web para navegar e interactuar con un clúster de Elasticsearch.
Fatt es un script basado en pyshark para extraer metadatos de red y huellas digitales de archivos pcap y tráfico de red en vivo.
T-Pot-Attack-Map un mapa de ataque bellamente animado para T-Pot.
P0f es una herramienta para la toma de huellas dactilares de tráfico puramente pasiva.
Spiderfoot, una herramienta de automatización de inteligencia de código abierto.
Suricata un motor de monitoreo de seguridad de red.
... para brindarle la mejor experiencia inmediata posible y un sistema multi-honeypot fácil de usar.
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 creadas y preconfiguradas para el entorno T-Pot.
Los Dockerfiles y las configuraciones individuales se encuentran en la carpeta Docker.
T-Pot ofrece una serie de servicios que se dividen básicamente en cinco grupos:
Servicios del sistema proporcionados por el sistema operativo.
SSH para acceso remoto seguro.
Pila elástica
Elasticsearch para almacenar eventos.
Logstash para ingerir, recibir y enviar eventos a Elasticsearch.
Kibana para mostrar eventos en paneles bellamente renderizados.
Herramientas
NGINX proporciona acceso remoto seguro (proxy inverso) a Kibana, CyberChef, Elasticvue, GeoIP AttackMap, Spiderfoot y permite que los sensores T-Pot transmitan de forma segura datos de eventos a la colmena T-Pot.
CyberChef una aplicación web para cifrado, codificación, compresión y análisis de datos.
Elasticvue es una interfaz web para navegar e interactuar con un clúster de Elasticsearch.
T-Pot Attack Map un mapa de ataque bellamente animado para T-Pot.
Spiderfoot, una herramienta de automatización de inteligencia de código abierto.
Honeypots
Una selección de los 23 honeypots disponibles según el docker-compose.yml
seleccionado.
Monitoreo de seguridad de red (NSM)
Fatt es un script basado en pyshark para extraer metadatos de red y huellas digitales de archivos pcap y tráfico de red en vivo.
P0f es una herramienta para la toma de huellas dactilares de tráfico puramente pasiva.
Suricata un motor de monitoreo de seguridad de red.
Durante la instalación y durante el uso de T-Pot, trabajará con dos tipos diferentes de cuentas. Asegúrese de conocer las diferencias entre los diferentes tipos de cuentas, ya que es , con diferencia, el motivo más común de errores de autenticación.
Servicio | Tipo de cuenta | Nombre de usuario / Grupo | Descripción |
---|---|---|---|
SSH | SO | <OS_USERNAME> | El usuario que eligió durante la instalación del sistema operativo. |
nginx | autenticación básica | <WEB_USER> | <web_user> que elegiste durante la instalación de T-Pot. |
ciberchef | autenticación básica | <WEB_USER> | <web_user> que elegiste durante la instalación de T-Pot. |
elasticvue | autenticación básica | <WEB_USER> | <web_user> que elegiste durante la instalación de T-Pot. |
Mapa de ataque Geoip | autenticación básica | <WEB_USER> | <web_user> que elegiste durante la instalación de T-Pot. |
Pie de araña | autenticación básica | <WEB_USER> | <web_user> que elegiste durante la instalación de T-Pot. |
T-Pote | SO | tpot | tpot este usuario/grupo siempre está reservado por los servicios de T-Pot. |
Troncos T-Pot | autenticación básica | <LS_WEB_USER> | LS_WEB_USER se administran automáticamente. |
Dependiendo de las imágenes de distribución de Linux compatibles, hive/sensor, instalación en hardware real, en una máquina virtual u otros entornos, se deben cumplir diferentes tipos de requisitos con respecto al sistema operativo, la RAM, el almacenamiento y la red para una instalación exitosa de T-Pot ( siempre puede ajustar ~/tpotce/docker-compose.yml
y ~/tpotce/.env
a sus necesidades para superar estos requisitos).
Tipo de olla en T | RAM | Almacenamiento | Descripción |
---|---|---|---|
Colmena | 16GB | SSD de 256 GB | Como regla general, cuantos más sensores y datos, más RAM y almacenamiento se necesitan. |
Sensor | 8GB | SSD de 128GB | Dado que los registros de honeypot persisten (~/tpotce/data) durante 30 días, el almacenamiento depende del volumen del ataque. |
T-Pot requiere...
una dirección IPv4 vía DHCP o asignada estáticamente
una conexión a Internet que funcione y sin proxy... para una instalación y funcionamiento exitosos.
Si necesita compatibilidad con proxy o funciones no estándar, debe consultar los documentos de las imágenes de distribución de Linux compatibles y/o la documentación de Docker.
Todas las imágenes de distribución de Linux compatibles se ejecutarán en una máquina virtual, lo que significa que T-Pot funcionará bien. Se probaron/se informó que funcionaban los siguientes:
UTM (Intel y Apple Silicon)
VirtualBox
VMWare Fusion y estación de trabajo VMWare
Se informa que KVM también funciona.
Algunas sugerencias de configuración/instalación:
Si bien las versiones de Intel se ejecutan de manera estable, la compatibilidad con Apple Silicon (arm64) tiene problemas conocidos que en UTM pueden requerir cambiar Display
a Console Only
durante la instalación inicial del sistema operativo y luego volver a Full Graphics
.
Durante la configuración, es posible que necesite habilitar el modo promiscuo para la interfaz de red para que fatt, suricata y p0f funcionen correctamente.
Si desea utilizar una tarjeta wifi como NIC principal para T-Pot, tenga en cuenta que no todos los controladores de interfaz de red admiten todas las tarjetas inalámbricas. En VirtualBox, por ejemplo, debe elegir el modelo de NIC "MT SERVER" .
T-Pot sólo está limitado por el soporte de hardware de las imágenes de distribución de Linux compatibles. Se recomienda consultar la HCL (lista de compatibilidad de hardware) y probar las distribuciones compatibles con T-Pot antes de invertir en hardware dedicado.
T-Pot se prueba y se sabe que funciona en...
Telekom OTC usando el método posterior a la instalación... otros pueden funcionar, pero aún no se han probado.
Algunos usuarios informan que hay instalaciones que funcionan en otras nubes y servidores, es decir, Azure y GCP. Los requisitos de hardware pueden ser diferentes. Si no está seguro, debe investigar los problemas y discusiones y ejecutar algunas pruebas funcionales. Con T-Pot 24.04.0 y posteriores, nos aseguramos de eliminar las configuraciones que se sabía que interferían con las instalaciones basadas en la nube.
Además de los puertos que generalmente necesita el sistema operativo, es decir, obtener una concesión de DHCP, DNS, etc., T-Pot requerirá los siguientes puertos para las conexiones entrantes/salientes. Revise la arquitectura T-Pot para obtener una representación visual. Además, algunos puertos aparecerán como duplicados, lo cual está bien ya que se usan en diferentes ediciones.
Puerto | Protocolo | Dirección | Descripción |
---|---|---|---|
80, 443 | TCP | extrovertido | Gestión de T-Pot: instalación, actualizaciones, registros (es decir, sistema operativo, GitHub, DockerHub, Sicherheitstacho, etc. |
64294 | TCP | entrante | Gestión de T-Pot: transmisión de datos del sensor a la colmena (a través del proxy inverso NGINX) a 127.0.0.1:64305 |
64295 | TCP | entrante | Gestión de T-Pot: Acceso a SSH |
64297 | TCP | entrante | Acceso de gestión de T-Pot al proxy inverso NGINX |
5555 | TCP | entrante | Honeypot: ADBHoney |
5000 | udp | entrante | Honeypot: CiscoASA |
8443 | TCP | entrante | Honeypot: CiscoASA |
443 | TCP | entrante | Pote de miel: CitrixHoneypot |
80, 102, 502, 1025, 2404, 10001, 44818, 47808, 50100 | TCP | entrante | Honeypot: Conpot |
161, 623 | udp | entrante | Honeypot: Conpot |
22, 23 | TCP | entrante | Honeypot: cauri |
19, 53, 123, 1900 | udp | entrante | Honeypot: Ddospot |
11112 | TCP | entrante | Honeypot: Dicompot |
21, 42, 135, 443, 445, 1433, 1723, 1883, 3306, 8081 | TCP | entrante | Honeypot: Dionaea |
69 | udp | entrante | Honeypot: Dionaea |
9200 | TCP | entrante | Pote de miel: Pote elástico |
22 | TCP | entrante | Honeypot: interminable |
21, 22, 23, 25, 80, 110, 143, 443, 993, 995, 1080, 5432, 5900 | TCP | entrante | Honeypot: anunciando |
21, 22, 23, 25, 80, 110, 143, 389, 443, 445, 631, 1080, 1433, 1521, 3306, 3389, 5060, 5432, 5900, 6379, 6667, 8080, 9100, 9200, 11211 | TCP | entrante | Honeypot: qHoneypots |
53, 123, 161, 5060 | udp | entrante | Honeypot: qHoneypots |
631 | TCP | entrante | Honeypot: IPPHoney |
80, 443, 8080, 9200, 25565 | TCP | entrante | Pote de miel: Log4Pot |
25 | TCP | entrante | Honeypot: Mailoney |
2575 | TCP | entrante | Honeypot: Medpot |
6379 | TCP | entrante | Honeypot: Redishoneypot |
5060 | tcp/udp | entrante | Honeypot: SentryPeer |
80 | TCP | entrante | Honeypot: trampa (Tanner) |
8090 | TCP | entrante | Pote de miel: Wordpot |
Los puertos y la disponibilidad de los servicios SaaS pueden variar según su ubicación geográfica.
Para que algunos honeypots alcancen su funcionalidad completa (es decir, Cowrie o Log4Pot), también son necesarias conexiones salientes para que puedan descargar el malware del atacante. Consulte la documentación de cada honeypot individual para obtener más información siguiendo los enlaces a sus repositorios.
Se recomienda familiarizarse con cómo funcionan T-Pot y los honeypots antes de comenzar a exponerse en Internet. Para un inicio rápido, ejecute una instalación de T-Pot en una máquina virtual.
Una vez que esté familiarizado con cómo funcionan las cosas, debe elegir una red en la que sospeche que hay intrusos (es decir, Internet). De lo contrario, lo más probable es que T-Pot no capture ningún ataque (a menos que quieras demostrar algo). Para empezar, se recomienda colocar T-Pot en una zona sin filtrar, donde todo el tráfico TCP y UDP se reenvía a la interfaz de red de T-Pot. Para evitar sondear los puertos de administración de T-Pot, debe 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 y/. o solo exponga los puertos relevantes para su caso de uso. Si desea capturar tráfico de malware en puertos desconocidos, no debe limitar los puertos que reenvía, ya que glutton y honeytrap vinculan dinámicamente cualquier puerto TCP que no esté ocupado por otros demonios de honeypot y, por lo tanto, le brindan una mejor representación de los riesgos a los que está expuesta su configuración. .
Descargue una de las imágenes de distribución de Linux compatibles, siga las instrucciones de TL;DR o git clone
el repositorio de T-Pot y ejecute el instalador ~/tpotce/install.sh
. Es posible ejecutar T-Pot sobre un sistema Linux en ejecución y compatible, pero se recomienda una instalación limpia para evitar conflictos de puertos con los servicios en ejecución. El instalador de T-Pot requerirá acceso directo a Internet como se describe aquí.
Pasos a seguir:
Descargue una distribución de Linux compatible de la lista siguiente.
Durante la instalación, elija una versión mínima , netinstall o de servidor que solo instale los paquetes esenciales.
Nunca instale un entorno de escritorio gráfico como Gnome o KDE. T-Pot no podrá funcionar con él debido a conflictos de puertos.
Asegúrese de instalar SSH para poder conectarse a la máquina de forma remota.
Nombre de distribución | x64 | brazo64 |
---|---|---|
ISO de arranque del sistema operativo Alma Linux 9.4 | descargar | descargar |
Instalación de red de Debian 12 | descargar | descargar |
Instalación de red del servidor Fedora 40 | descargar | descargar |
Imagen de red OpenSuse Tumbleweed | descargar | descargar |
ISO de arranque del sistema operativo Rocky Linux 9.4 | descargar | descargar |
Servidor en vivo Ubuntu 24.04 | descargar | descargar |
Nombre de distribución | brazo64 |
---|---|
Sistema operativo Raspberry Pi ( 64 bits, Lite ) | descargar |
Clona el repositorio de GitHub: $ git clone https://github.com/telekom-security/tpotce
o sigue TL;DR y omite esta sección.
Cambie a la carpeta tpotce/ : $ cd tpotce
Ejecute el instalador como no root: $ ./install.sh
:
Cambie el puerto SSH a tcp/64295
Deshabilite el DNS Stub Listener para evitar conflictos de puertos con honeypots
Configure SELinux en modo monitor
Establezca el objetivo del firewall para la zona pública en ACEPTAR
Agregue el repositorio de Docker e instale Docker
Instalar paquetes recomendados
Eliminar paquetes que se sabe que causan problemas
Agregue el usuario actual al grupo de Docker (permita la interacción con Docker sin sudo
)
Agregue alias dps
y dpsw
( grc docker ps -a
, watch -c "grc --colour=on docker ps -a
)
Agregue los alias la
, ll
y ls
(por exa
, un comando ls
mejorado)
Agregue mi
(para micro
, una excelente alternativa a vi
y/o nano
)
Mostrar puertos abiertos en el host (compárelos con los puertos requeridos por T-Pot)
Agregue y habilite tpot.service
en /etc/systemd/system
para que T-Pot pueda iniciarse y detenerse automáticamente
Dependiendo de la distribución de Linux que elija, el instalador:
Siga las instrucciones del instalador, deberá ingresar su contraseña de usuario ( sudo
o root
) al menos una vez
Verifique los mensajes del instalador en busca de errores y abra puertos que puedan causar conflictos de puertos
Reiniciar: $ sudo reboot
A veces es bueno si puedes activar una instancia de T-Pot en macOS o Windows, es decir, para desarrollo, pruebas o simplemente por diversión. Como Docker Desktop es bastante limitado, no todos los tipos de honeypots o funciones de T-Pot son compatibles. Recuerde también que, de forma predeterminada, el firewall de macOS y Windows bloquea el acceso remoto, por lo que las pruebas se limitan al host. Para producción, se recomienda ejecutar T-Pot en Linux.
Para que todo esté en funcionamiento, simplemente siga estos pasos:
Instale Docker Desktop para macOS o Windows.
Clona el repositorio de GitHub: git clone https://github.com/telekom-security/tpotce
(en Windows, ¡asegúrate de que el código esté verificado con LF
en lugar de CRLF
!)
Ir a: cd ~/tpotce
Copie cp compose/mac_win.yml ./docker-compose.yml
Cree un WEB_USER
ejecutando ~/tpotce/genuser.sh
(macOS) o ~/tpotce/genuserwin.ps1
(Windows)
Ajuste el archivo .env
cambiando TPOT_OSTYPE=linux
a mac
o win
:
# OSType (linux, mac, win) # Most docker features are available on linux TPOT_OSTYPE=mac
Debe asegurarse por su cuenta de que no haya conflictos de puertos que impidan que T-Pot se inicie.
Inicie T-Pot: docker compose up
o docker compose up -d
si desea que T-Pot se ejecute en segundo plano.
Detener T-Pot: CTRL-C
(si se estaba ejecutando en primer plano) y/o docker compose down -v
para detener T-Pot por completo.
Con T-Pot Standard / HIVE, todos los servicios, herramientas, honeypots, etc. se instalarán en un único host que también sirve como punto final de HIVE. Asegúrese de cumplir con los requisitos del sistema. Puede ajustar ~/tpotce/docker-compose.yml
a su caso de uso personal o crear su propia configuración usando ~/tpotce/compose/customizer.py
para una experiencia T-Pot adaptada a sus necesidades. Una vez finalizada la instalación, puede proceder al primer inicio.
La versión distribuida de T-Pot requiere al menos dos hosts
el T-Pot HIVE , la instalación estándar de T-Pot (¡instale esto primero!),
y un T-Pot SENSOR , que alojará solo los honeypots, algunas herramientas y transmitirá datos de registro al HIVE .
El SENSOR no se iniciará antes de finalizar la instalación del SENSOR como se describe en Implementación distribuida.
La desinstalación de T-Pot solo está disponible en las distribuciones de Linux compatibles.
Para desinstalar T-Pot, ejecute ~/tpotce/uninstall.sh
y siga las instrucciones del desinstalador, deberá ingresar su contraseña al menos una vez.
Una vez finalizada la desinstalación, reinicie la máquina sudo reboot
Una vez que el instalador de T-Pot finaliza con éxito, es necesario reiniciar el sistema ( sudo reboot
). Una vez reiniciado, puede iniciar sesión en el sistema utilizando el usuario que configuró durante la instalación del sistema. Los inicios de sesión son según los tipos de usuario:
usuario: [ <OS_USERNAME>
]
pasar: [contraseña]
Puede iniciar sesión a través de SSH para acceder a la línea de comando: ssh -l <OS_USERNAME> -p 64295 <your.ip>
:
usuario: [ <OS_USERNAME>
]
contraseña: [contraseña, clave ssh recomendada]
También puede iniciar sesión desde su navegador y acceder a la WebUI y a las herramientas de T-Pot: https://<your.ip>:64297
usuario: [ <WEB_USER>
]
pasar: [contraseña]
No hay mucho que hacer excepto iniciar sesión y verificar a través de dps.sh
si todos los servicios y honeypots se están iniciando correctamente e iniciar sesión en Kibana y/o Geoip Attack Map para monitorear los ataques.
La implementación distribuida implica planificación, ya que T-Pot Init solo creará un certificado autofirmado para la IP del host HIVE que generalmente es adecuado para configuraciones simples. Dado que logstash verificará si hay un certificado válido al momento de la conexión, una configuración distribuida que implique que HIVE sea accesible en múltiples IP (es decir, RFC 1918 y IP NAT pública) y tal vez incluso un nombre de dominio resultará en un error de conexión donde el certificado no se puede validar como dicha configuración necesita un certificado con un nombre común y SAN (nombre alternativo del sujeto).
Antes de implementar cualquier sensor, asegúrese de haber planificado correctamente los nombres de dominio y las IP para evitar problemas con el certificado. Para obtener más detalles, consulte el número 1543.
Ajuste el ejemplo a su configuración de IP/dominio y siga los comandos para cambiar el certificado de HIVE :
sudo systemctl stop tpot sudo openssl req -nodes -x509 -sha512 -newkey rsa:8192 -keyout "$HOME/tpotce/data/nginx/cert/nginx.key" -out "$HOME/tpotce/data/nginx/cert/nginx.crt" -days 3650 -subj '/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd' -addext "subjectAltName = IP:192.168.1.200, IP:1.2.3.4, DNS:my.primary.domain, DNS:my.secondary.domain" sudo chmod 774 $HOME/tpotce/data/nginx/cert/* sudo chown tpot:tpot $HOME/tpotce/data/nginx/cert/* sudo systemctl start tpot
El archivo de configuración de T-Pot ( .env
) permite deshabilitar la verificación SSL para conexiones logstash desde SENSOR a HIVE configurando LS_SSL_VERIFICATION=none
. Por razones de seguridad, esto solo se recomienda para entornos de laboratorio o de prueba.
Si elige utilizar un certificado válido para HIVE firmado por una CA (es decir, Let's Encrypt), logstash y, por lo tanto, SENSOR , no deberían tener problemas para conectarse y transmitir sus registros a HIVE .
Una vez que haya reiniciado el SENSOR según las instrucciones del instalador, puede continuar con la implementación distribuida iniciando sesión en HIVE y yendo a la carpeta cd ~/tpotce
. Asegúrese de haber comprendido la planificación y los certificados antes de continuar con la implementación real.
Si aún no lo ha hecho, genere una clave SSH para iniciar sesión de forma segura en el SENSOR y permitir que Ansible
ejecute un libro de jugadas en el sensor:
Ejecute ssh-keygen
, siga las instrucciones y deje la frase de contraseña vacía:
Generating public/private rsa key pair. Enter file in which to save the key (/home/<your_user>/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/<your_user>/.ssh/id_rsa Your public key has been saved in /home/<your_user>/.ssh/id_rsa.pub
Implemente la clave en el SENSOR ejecutando ssh-copy-id -p 64295 <SENSOR_SSH_USER>@<SENSOR_IP>)
:
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/<your_user>/.ssh/id_rsa.pub" The authenticity of host '[<SENSOR_IP>]:64295 ([<SENSOR_IP>]:64295)' can't be stablished. ED25519 key fingerprint is SHA256:naIDxFiw/skPJadTcgmWZQtgt+CdfRbUCoZn5RmkOnQ. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys <your_user>@172.20.254.124's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh -p '64295' '<your_user>@<SENSOR_IP>'" and check to make sure that only the key(s) you wanted were added.
Como se sugiere, siga las instrucciones para probar la conexión ssh -p '64295' '<your_user>@<SENSOR_IP>'
.
Una vez que la clave se haya implementado correctamente, ejecute ./deploy.sh
y siga las instrucciones.
Identifique TPOT_HIVE_USER
ENV en el SENSOR en la configuración $HOME/tpotce/.env
(es una cadena codificada en base64). Ahora identifique la misma cadena en LS_WEB_USER
ENV en HIVE en la configuración $HOME/tpotce/.env
. Retire la cuerda y reinicie T-Pot.
Ahora puede eliminar de forma segura la máquina SENSOR.
T-Pot se proporciona para que sea accesible a todos los interesados en los honeypots. De forma predeterminada, los datos capturados se envían a un backend comunitario. Este backend comunitario utiliza los datos para alimentar Sicherheitstacho. Puede optar por no participar en el envío eliminando el # Ewsposter service
de ~/tpotce/docker-compose.yml
siguiendo estos pasos:
Detener los servicios de T-Pot: systemctl stop tpot
Abra ~/tpotce/docker-compose.yml
: micro ~/tpotce/docker-compose.yml
Elimine las siguientes líneas, guarde y salga de micro ( CTRL+Q
):
# Ewsposter service ewsposter: container_name: ewsposter restart: always depends_on: tpotinit: condition: service_healthy networks: - ewsposter_local environment: - EWS_HPFEEDS_ENABLE=false - EWS_HPFEEDS_HOST=host - EWS_HPFEEDS_PORT=port - EWS_HPFEEDS_CHANNELS=channels - EWS_HPFEEDS_IDENT=user - EWS_HPFEEDS_SECRET=secret - EWS_HPFEEDS_TLSCERT=false - EWS_HPFEEDS_FORMAT=json image: ${TPOT_REPO}/ewsposter:${TPOT_VERSION} pull_policy: ${TPOT_PULL_POLICY} volumes: - ${TPOT_DATA_PATH}:/data - ${TPOT_DATA_PATH}/ews/conf/ews.ip:/opt/ewsposter/ews.ip
Iniciar servicios T-Pot: systemctl start tpot
Se recomienda no desactivar el envío de datos, ya que es el objetivo principal del enfoque comunitario; como todos saben, ¿compartir es cuidar ?
Como opción de participación, es posible compartir datos de T-Pot con corredores HPFEEDS de terceros.
Siga las instrucciones aquí para detener los servicios de T-Pot y abrir ~/tpotce/docker-compose.yml
.
Desplácese hacia abajo hasta la sección ewsposter
y ajuste la configuración de HPFEEDS según sus necesidades.
Si necesita agregar un certificado de CA, agréguelo a ~/tpotce/data/ews/conf
y configure EWS_HPFEEDS_TLSCERT=/data/ews/conf/<your_ca.crt>
.
Inicie los servicios de T-Pot: systemctl start tpot
.
El acceso remoto a su host/T-Pot es posible con SSH (en tcp/64295
) y algunos servicios y herramientas vienen con T-Pot para facilitar mucho algunas de sus tareas de investigación.
Según los tipos de usuario, puede iniciar sesión a través de SSH para acceder a la línea de comando: ssh -l <OS_USERNAME> -p 64295 <your.ip>
:
usuario: [ <OS_USERNAME>
]
pasar: [contraseña]
Según los tipos de usuario, puede abrir la página de inicio de T-Pot desde su navegador a través de https://<your.ip>:64297
:
usuario: [ <WEB_USER>
]
pasar: [contraseña]
En la página de inicio de T-Pot, simplemente haga clic en Kibana
y será redirigido a Kibana. Puede seleccionar entre una gran variedad de paneles y visualizaciones, todos adaptados a los honeypots compatibles con T-Pot.
En la página de inicio de T-Pot, simplemente haga clic en Attack Map
y será redireccionado al Mapa de ataque. Dado que el mapa de ataque utiliza sockets web, es posible que deba volver a ingresar las credenciales <WEB_USER>
.
En la página de inicio de T-Pot, simplemente haga clic en Cyberchef
y será redirigido a Cyberchef.
En la página de inicio de T-Pot, simplemente haga clic en Elasticvue
y será redirigido a Elasticvue.
En la página de inicio de T-Pot, simplemente haga clic en Spiderfoot
y será redirigido a Spiderfoot.
T-Pot ofrece un archivo de configuración que proporciona variables no solo para los servicios de Docker (es decir, honeypots y herramientas) sino también para el entorno de composición de Docker. El archivo de configuración está oculto en ~/tpoce/.env
. También hay un archivo de ejemplo ( env.example
) que contiene la configuración predeterminada.
Antes del primer inicio, ejecute ~/tpotce/genuser.sh
o configure WEB_USER
manualmente como se describe aquí.
En ~/tpotce/compose
encontrarás todo lo que necesitas para ajustar la instalación de T-Pot Standard / HIVE:
customizer.py mac_win.yml mini.yml mobile.yml raspberry_showcase.yml sensor.yml standard.yml tpot_services.yml
Los archivos .yml
son archivos de composición de ventana acoplable, cada uno de los cuales representa un conjunto diferente de honeypots y herramientas, siendo tpot_services.yml
una plantilla para customizer.py
para crear un archivo de composición de ventana acoplable personalizado.
Para activar un archivo de redacción siga estos pasos:
Detenga T-Pot con systemctl stop tpot
.
Copie el archivo de redacción de Docker cp ~/tpotce/compose/<dockercompose.yml> ~/tpotce/docker-compose.yml
.
Inicie T-Pot con systemctl start tpot
.
Para crear su archivo de redacción acoplable personalizado:
Vaya a cd ~/tpotce/compose
.
Ejecute python3 customizer.py
.
El script lo guiará a través del proceso de creación de su propio docker-compose.yml
. Como algunos honeypots y servicios ocupan los mismos puertos, comprobará si hay algún conflicto entre puertos y notificará sobre los servicios en conflicto. Luego puede resolverlos manualmente ajustando docker-compose-custom.yml
o volviendo a ejecutar el script.
Detenga T-Pot con systemctl stop tpot
.
Copie el archivo de composición de la ventana acoplable personalizado: cp docker-compose-custom.yml ~/tpotce
y cd ~/tpotce
.
Compruebe si todo funciona ejecutando docker-compose -f docker-compose-custom.yml up
. En caso de errores, siga la especificación Docker Compose para mitigarlos. Lo más probable es que sea solo un conflicto de puerto que puede ajustar editando el archivo de redacción de la ventana acoplable.
Si todo funciona bien, presione CTRL-C
para detener los contenedores y ejecutar docker-compose -f docker-compose-custom.yml down -v
.
Reemplace el archivo Docker Compose con el nuevo archivo Docker Compose personalizado, probado con éxito, mv ~/tpotce/docker-compose-custom.yml ~/tpotce/docker-compose.yml
.
Inicie T-Pot con systemctl start tpot
.
T-Pot está diseñado para requerir poco mantenimiento. Dado que casi todo se proporciona a través de imágenes de la ventana acoplable, básicamente no hay nada que hacer más que dejarlo ejecutar. Actualizaremos las imágenes de la ventana acoplable periódicamente para reducir los riesgos de compromiso; sin embargo usted debe leer esta sección atentamente.
Si falla una actualización, abrir un problema o una discusión ayudará a mejorar las cosas en el futuro, pero la solución ofrecida siempre será realizar una instalación nueva , ya que simplemente no podemos brindar ningún soporte para los datos perdidos.
La seguridad de T-Pot depende de las actualizaciones proporcionadas para las imágenes de distribución de Linux compatibles. Asegúrese de revisar la documentación del sistema operativo y de asegurarse de que el sistema operativo instale actualizaciones periódicamente. De forma predeterminada ( ~/tpotce/.env
) TPOT_PULL_POLICY=always
se asegurará de que en cada inicio de T-Pot, Docker busque nuevas imágenes de Docker y las descargue antes de crear los contenedores.
Las versiones de T-Pot se ofrecen a través de GitHub y se pueden extraer usando ~/tpotce/update.sh
.
Si realizó algún cambio relevante en los archivos de configuración de T-Pot, asegúrese de crear una copia de seguridad primero.
Las actualizaciones pueden tener consecuencias imprevistas. ¡Cree una copia de seguridad de la máquina o de los archivos más valiosos para su trabajo!
El script de actualización...
sobrescribe sin piedad los cambios locales para sincronizarlos con la rama maestra de T-Pot
cree una copia de seguridad completa de la carpeta ~/tpotce
actualice todos los archivos en ~/tpotce
para que estén sincronizados con la rama maestra de T-Pot
restaure su ews.cfg
personalizado desde ~/tpotce/data/ews/conf
y la configuración de T-Pot ( ~/tpotce/.env
).
De forma predeterminada, T-Pot agregará un reinicio diario que incluye algo de limpieza. Puedes ajustar esta línea con sudo crontab -e
#Ansible: T-Pot Daily Reboot 42 2 * * * bash -c 'systemctl stop tpot.service && docker container prune -f; docker image prune -f; docker volume prune -f; /usr/sbin/shutdown -r +1 "T-Pot Daily Reboot"'
Se conocen los siguientes problemas, simplemente siga los pasos descritos para solucionarlos.
Hace algún tiempo, Docker introdujo límites a la velocidad de descarga. Si descarga imágenes de Docker con frecuencia a través de una IP única o compartida, es posible que la dirección IP haya agotado el límite de velocidad de descarga de Docker. Inicie sesión en su cuenta Docker para ampliar el límite de velocidad.
sudo su - docker login
T-Pot está diseñado para ejecutarse únicamente en máquinas con una única NIC. T-Pot intentará capturar la interfaz con la ruta predeterminada, sin embargo, no se garantiza que siempre tenga éxito. En el mejor de los casos, utilice T-Pot en máquinas con una sola NIC.
El servicio T-Pot se inicia y se detiene automáticamente en cada reinicio (lo que ocurre una vez al día como se configura en sudo crontab -l
durante la instalación).
Si deseas iniciar manualmente el servicio T-Pot puedes hacerlo vía systemctl start tpot
y observar vía dpsw
el inicio de los contenedores.
El servicio T-Pot se inicia y se detiene automáticamente en cada reinicio (lo que ocurre una vez al día como se configura en sudo crontab -l
durante la instalación).
Si desea detener manualmente el servicio T-Pot puede hacerlo vía systemctl stop tpot
y observar vía dpsw
el cierre de los contenedores.
Todos los archivos de registro persistentes de los honeypots, herramientas y servicios relacionados con T-Pot se almacenan en ~/tpotce/data
. Esto incluye artefactos recopilados que no se transmiten al Elastic Stack.
Todos los datos de registro almacenados en la carpeta de datos de T-Pot se conservarán durante 30 días de forma predeterminada.
Los índices de Elasticsearch son manejados por la Política de ciclo de vida del índice tpot
que se puede ajustar directamente en Kibana (asegúrese de "Incluir políticas de sistema administrado").
De forma predeterminada, la Política de ciclo de vida del índice tpot
mantiene los índices durante 30 días. Esto ofrece un buen equilibrio entre almacenamiento y velocidad. Sin embargo usted podrá ajustar la póliza a sus necesidades.
Todos los datos de registro almacenados en la carpeta de datos de T-Pot (excepto los índices de Elasticsearch, por supuesto) se pueden borrar ejecutando clean.sh
. A veces, las cosas pueden romperse sin posibilidad de reparación y nunca ha sido tan fácil restablecer un T-Pot a los valores predeterminados de fábrica (asegúrese de ingresar cd ~/tpotce
).
Detenga T-Pot usando systemctl stop tpot
.
Mueva/haga una copia de seguridad de la carpeta ~/tpotce/data
a un lugar seguro (esto es opcional, por si acaso).
Elimine la carpeta ~/tpotce/data
usando sudo rm -rf ~/tpotce/data
.
Restablezca T-Pot al último compromiso obtenido:
cd ~/tpotce/ git reset --hard
Ahora puedes ejecutar ~/tpotce/install.sh
.
Puede mostrar todos los contenedores relevantes de T-Pot ejecutando dps
o dpsw [interval]
. Los interval (s)
volverán a ejecutar dps.sh
periódicamente.
Blackhole ejecutará T-Pot en modo sigiloso sin visitas permanentes de escáneres conocidos públicamente y, por lo tanto, reducirá la posibilidad de quedar expuesto. Si bien, por supuesto, esto siempre es un juego del gato y el ratón, la función del agujero negro enruta nula todas las solicitudes de escáneres masivos conocidos y al mismo tiempo detecta los eventos a través de Suricata.
La función se activa configurando TPOT_BLACKHOLE=DISABLED
en ~/tpotce/.env
, luego ejecute systemctl stop tpot
y systemctl start tpot
o sudo reboot
.
Habilitar esta función reducirá drásticamente la visibilidad de los atacantes y, en consecuencia, generará menos actividad. Sin embargo, como ya se mencionó, no es una garantía de que sea completamente sigiloso ni impedirá la toma de huellas dactilares de algunos servicios de honeypot.
Nginx (T-Pot WebUI) le permite agregar tantas cuentas <WEB_USER>
como desee (según los tipos de usuario).
Para agregar un nuevo usuario, ejecute ~/tpotce/genuser.sh
.
Para eliminar usuarios, abra ~/tpotce/.env
, ubique WEB_USER
y elimine la cadena base64 correspondiente (para decodificar: echo <base64_string> | base64 -d
, o abra CyberChef y cargue la receta "Desde Base64").
Para que los cambios surtan efecto, debe reiniciar T-Pot usando systemctl stop tpot
y systemctl start tpot
o sudo reboot
.
Algunas actualizaciones de T-Pot requerirán que actualice los objetos de Kibana. Ya sea para admitir nuevos honeypots o para mejorar los paneles o visualizaciones existentes. Asegúrese de exportar primero para no perder ninguno de sus ajustes.
Ir a Kibana
Haga clic en "Administración de pila"
Haga clic en "Objetos guardados"
Haga clic en "Exportar objetos <nº>"
Haga clic en "Exportar todo". Esto exportará un archivo NDJSON con todos sus objetos. Ejecute siempre una exportación completa para asegurarse de que se incluyan todas las referencias.
Descarga el archivo NDJSON y descomprímelo.
Ir a Kibana
Haga clic en "Administración de pila"
Haga clic en "Objetos guardados"
Haga clic en "Importar" y deje los valores predeterminados (verifique los objetos existentes y sobrescriba automáticamente los conflictos) si no realizó cambios personales en los objetos de Kibana.
Busque el archivo NDJSON Cuando se le pregunte: "Si alguno de los objetos ya existe, ¿desea sobrescribirlo automáticamente?" respondes con "Sí, sobrescribir todo".
Generalmente, T-Pot se ofrece tal cual, sin ningún compromiso de soporte. Se pueden abrir problemas y debates, pero prepárese para incluir la información básica necesaria para que la comunidad pueda ayudar.
Compruebe si sus contenedores están funcionando correctamente: dps
Compruebe si los recursos de su sistema no están agotados: htop
, docker stats
Compruebe si hay un conflicto de puerto:
systemctl stop tpot grc netstat -tulpen mi ~/tpotce/docker-compose.yml docker-compose -f ~/tpotce/docker-compose.yml up CTRL+C docker-compose -f ~/tpotce/docker-compose.yml down -v
Verifique los registros de contenedores individuales: docker logs -f <container_name>
Verifique el registro tpotinit
: cat ~/tpotce/data/tpotinit.log
El Elastic Stack tiene hambre de RAM, específicamente logstash
y elasticsearch
. Si el Elastic Stack no está disponible, no recibe ningún registro o simplemente sigue fallando, lo más probable es que se trate de un problema de RAM o almacenamiento.
Mientras que T -POT sigue intentando reiniciar los Servicios / Contenedores Ejecutar docker logs -f <container_name>
(ya sea logstash
o elasticsearch
) y verifique si hay advertencias o fallas que involucran RAM.
Las fallas de almacenamiento se pueden identificar más fácilmente a través de htop
.
Se proporciona T-POT como de código abierto sin ningún compromiso con respecto al soporte (ver el descargo de responsabilidad).
Si es un investigador de seguridad y desea informar responsablemente un problema, póngase en contacto con nuestro certificado.
Informe los problemas (errores) sobre nuestros problemas de GitHub, pero primero solucione los problemas. Los problemas que no proporcionan información para abordar el error se cerrarán o se convertirán en discusiones.
Use la función de búsqueda primero, es posible que ya se haya abordado o discutido un problema similar, con la solución a solo una búsqueda.
Se pueden abordar preguntas generales, ideas, exhibir y contar, etc. en nuestras discusiones de GitHub.
Use la función de búsqueda, es posible que ya se haya abierto una discusión similar, con una respuesta a solo una búsqueda.
El software en el que se basa en T-POT utiliza las siguientes licencias.
GPLV2: Conpot, Dionaea, HoneyTrap, Suricata
GPLV3: Adbhoney, ElasticPot, EwSposter, Log4pot, Fatt, Heralding, Ipphoney, Redishoneypot, Sentrypeer, Snare, Tanner
Licencia Apache 2: Cyberchef, Dicompot, Elasticsearch, Logstash, Kibana, Docker
Licencia del MIT: AutoHeal, Ciscoasa, Ddospot, ElasticVue, Glutton, Hellpot, Maltrail
Unicense: Endlessh
Otro: Citrixhoneypot, Cowrie, Mailoney, Licencia elástica, WordPot
AGPL-3.0: Honeypots
Dominio público (CC): Harvard Dataverse
Sin código abierto y la comunidad de desarrollo de la que estamos orgullosos de ser parte, ¡T-Pot no habría sido posible! Nuestro agradecimiento se extiende, pero no se limita a las siguientes personas y organizaciones:
adbhoney
ciscoasa
citrixhoneypot
conpot
cowrie
ddospot
dicompot
dionaea
estibador
cátedra elástica
búsqueda elástica
elástico
interminable
sposter ew
gordo
glotón
chaqueta
anunciando
honeypots
trampa de miel
Ipphoney
kibana
logstash
Log4pot
montaña
maltagre
medpot
P0F
Redishoneypot
centinela
pie de araña
trampa
curtidor
suricata
wordpot
Las siguientes empresas y organizaciones
estibador
elástico.io
Proyecto de Honeynet
... y, por supuesto, por unirte a la comunidad!
Gracias por jugar?
Uno de los mejores comentarios que hemos recibido hasta ahora es de uno de los desarrolladores de Conpot:
"[...] Recomiendo encarecidamente T-Pot, que es ... No es exactamente una navaja suiza ... es más como un soldado del ejército suizo, equipado con una navaja suiza. Dentro de un tanque. Un tanque suizo. [ ...] "
Y de @RobCowart (Creador de Elastiflow):
"#TPOT es una de las soluciones de honeypot llave en mano mejor juntas. Es imprescindible para cualquiera que quiera analizar y comprender el comportamiento de los actores maliciosos y la amenaza que representan para su organización".