Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
riotpot — Honeypot de IoT y Tecnología Operacional | Kitploit
Herramientas/GitHubGitHub/aau-network-security/riotpot
Herramientas DefensivasSeguridad IoTSeguridad SCADA/ICSRecopilación de InformaciónSeguridad de Redes
GitHubaau-network-security/riotpot

riotpot

Honeypot de IoT y Tecnología Operacional

Ver Repositorio
10528hace 2 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
📢 ¡ATENCIÓN!!!
Este repositorio ha sido movido a the Honeynet Project :)

RIoTPot

GitHub Actions status

RIoTPot es un honeypot de interacción híbrida, enfocado principalmente en la emulación de protocolos IoT y OT, aunque también es capaz de emular otros servicios. En esencia, RIoTPot actúa como un servicio proxy para otros honeypots incluidos en el sistema. Por lo tanto, puede ejecutar cualquier honeypot y otros servicios junto con RIoTPot. Además, hay una aplicación web de interfaz de usuario (UI) que puede usar para gestionar su enrutamiento.

El honeypot viene con múltiples servicios de baja interacción listos para usar. Dado que estos servicios están escritos como plugins, solo son compatibles con Linux; sin embargo, puede iniciar RIoTPot sin ellos. La siguiente tabla contiene la lista de servicios incluidos en RIoTPot por defecto, su puerto interno y puerto proxy.

Tabla de Contenidos

  • RIoTPoT
    • 1. Arquitectura
    • 2. Cómo usar RIoTPot
    • 3. Comandos

1. Architecture

La arquitectura de RIoTPot se basa en conexiones proxy a servicios internos y circundantes (o externos) (por ejemplo, honeypots, servicios completos, contenedores, hosts remotos, etc.). Para ello, el honeypot gestiona un número de proxies definidos por el usuario que retransmiten conexiones entre los servicios y RIoTPot 1. De esta manera, RIoTPot puede decidir cómo y dónde enrutar los ataques entrantes. La lógica utilizada para determinar cómo manejar el ataque entrante se implementa en forma de middlewares 2. Para gestionar servicios, middlewares y proxies, RIoTPot incluye una API REST 3 y una interfaz de usuario web 4 de serie. Se puede acceder a la interfaz de usuario a través del navegador en localhost:2022 y puede experimentar con los endpoints de la API en localhost:2022/api/swagger que muestra una interfaz Swagger.

Figura 1 muestra la arquitectura de RIoTPot, incluyendo las dos aplicaciones principales que constituyen RIoTPot (RIoTPot en sí mismo, y la UI de RIoTPot) y sus componentes, y una sección para encerrar servicios externos (o adyacentes).

Figura 1. Arquitectura de RIoTPot, incluyendo la aplicación principal, servicios externos y la aplicación web UI para gestionar instancias de RIoTPot.

RIoTPot está escrito en Golang5. Cada instancia de RIoTPot expone los proxies registrados (según su puerto) a demanda. Para servir un proxy, debe tener un servicio vinculado y el puerto del proxy debe estar disponible (actualmente, RIoTPot no acepta múltiples servicios ejecutándose en el mismo puerto). Cuando un proxy ha sido vinculado y servido, los atacantes podrán enviar mensajes a RIoTPot en ese puerto, retransmitiendo los mensajes al servicio vinculado y de vuelta al atacante6.

Para facilitar el acceso, se pueden gestionar múltiples instancias de RIoTPot desde la aplicación web UI de RIoTPot. Además de gestionar los proxies registrados en cada instancia, la UI permite crear, usar y editar perfiles. Cada perfil contiene un número de proxies nombrados según protocolos u otros servicios, haciendo que una instancia de RIoTPot se asemeje a un dispositivo real (por ejemplo, un asistente doméstico). En pocas palabras, los perfiles aceleran el proceso de configuración y aprovisionamiento de una instancia de RIoTPot con configuraciones específicas. La UI está escrita utilizando la biblioteca de JavaScript de front-end React (usamos Typescript para este proyecto) y la biblioteca de gestión de estado Recoil. Como RIoTPot es bastante pequeño, por el momento no utiliza una base de datos.

2. How to use RIoTPot

Ejecutar RIoTPot es relativamente simple. En general, tiene tres opciones. La primera es descargar una versión de RIoTPot; puede elegir descargar la última versión o una anterior. La segunda opción es construir el proyecto usted mismo. La última opción es usar el código fuente para crear un contenedor Docker con RIoTPot y algunas aplicaciones adicionales para mejorar el honeypot.

Usar una Versión de Lanzamiento

Info: Esta guía está destinada a usuarios sin necesidades especiales, que desean una experiencia simple lista para usar.

Cada lanzamiento viene en una carpeta llamada riotpot con un binario ejecutable (también) llamado riotpot y una carpeta plugins llena de múltiples servicios (o honeypots de baja interacción). Es importante mantener la estructura de carpetas interna para que RIoTPot funcione correctamente.

root@kitploit:~
📁 riotpot
    ┕ riotpot
    ┕ 📁 plugins

  1. Primero, descargue la versión de su elección desde la página de lanzamientos. Elija la que necesite para su sistema operativo (SO).
  2. Extraiga la carpeta riotpot.
  3. Ejecute el binario riotpot. Esto iniciará RIoTPot con la API habilitada, todos los plugins listos para usar y el servidor UI.
    • La API y la UI son accesibles a través de la dirección localhost:2022
Construirlo usted mismo

Info: Esta guía está destinada a usuarios avanzados cómodos en entornos de desarrollo.

Requisitos
  • Golang - Necesario para construir el proyecto
  • Node - Necesario para construir la UI

Opcional:

  • Git - Se usa para descargar el código fuente
  • Make - Para ejecutar comandos ya preparados

  1. Descargue el código fuente de RIoTPot desde GitHub. Abra una consola e introduzca la siguiente línea.

    root@kitploit:~
    git clone [email protected]:aau-network-security/riotpot.git
    
  2. Navegue a la carpeta donde descargó el código fuente de RIoTPot e instale los paquetes de node requeridos.

    root@kitploit:~
    npm install
    
  3. Si tiene instalado Make, hemos incluido varios ayudantes de comandos para asistirle en la construcción del proyecto. Para simplificar, puede ejecutar dos comandos simples que construirán el binario de RIoTPot y los plugins (y los colocarán en la carpeta correcta).

    root@kitploit:~
    # Construir el servidor
    make build-ui
    # Construir RIoTPot y los plugins
    make riotpot-build
    

NOTA: La UI utiliza Vite para construir el proyecto. Si prefiere usar otro constructor, es posible que necesite hacer algunos cambios primero por su cuenta.

Docker (Virtualización)

Info: Esta guía está destinada a usuarios avanzados que prefieren usar RIoTPot en un entorno virtual.

Requisitos
  • Docker - Se usa para construir una imagen de una instancia de RIoTPot y el servidor UI.
  • Docker-compose - Se usa para crear un solo contenedor con una instancia de RIoTPot, la UI y otras aplicaciones y servicios.

Las principales ventajas de usar esta configuración son las características de seguridad adicionales con cambios mínimos en la configuración del contenedor y los contenedores en sí. Por ejemplo, podemos definir redes privadas virtuales separadas y redes superpuestas para ocultar, aislar y encapsular RIoTPot y otros servicios adyacentes. Además, los contenedores nos permiten vincular servicios usando su nombre de dirección de Docker en lugar de su IP, lo cual es muy conveniente. Por último, podemos iniciar y detener contenedores separados bajo demanda sin afectar otros servicios.

Por otro lado, la virtualización es posiblemente más exigente que usar aplicaciones en hardware real. Si bien una sola instancia de RIoTPot es relativamente liviana, es importante considerar las desventajas introducidas por la virtualización y la emulación de hardware (por ejemplo, retrasos en las respuestas).

Advertencia: Técnicamente hablando, un atacante dedicado puede darse cuenta de que RIoTPot es en realidad un honeypot analizando y comparando los retrasos de tiempo de respuesta introducidos por la virtualización con servidores reales (!!). Aunque este tipo de huella digital de honeypot se ha estudiado antes, los resultados para servicios comunes de Internet aún no son concluyentes (por ejemplo, HTTP, Telnet y SSH), debido a la mercantilización de los servicios de alojamiento en la nube que utilizan máquinas virtuales y configuraciones detalladas de servidores.

El archivo docker-compose incluye servicios adicionales para mejorar la experiencia de RIoTPot. La siguiente tabla resume la lista de servicios y aplicaciones incluidos en este contenedor.

Servicios

3. Commands

RIoTPot viene con comandos de bandera que afectan cómo y qué se inicia. Ejemplo:

root@kitploit:~
# Ejecutar RIoTPot sin la ui
./riotpot --ui false

Footnotes

  1. Los servicios internos y circundantes no son accesibles a través de Internet. Los servicios internos están integrados y solo son accesibles para RIoTPot. Estos servicios se cargan al inicio y no se pueden eliminar, pero se pueden detener. Los servicios circundantes deben estar en la misma red que RIoTPot. Los servicios externos deben incluir solo a RIoTPot en su lista blanca. ↩

  2. Los middlewares están actualmente en desarrollo. ↩

  3. La API de RIoTPot no debe exponerse a Internet. De todos modos, la API actualmente solo acepta conexiones desde localhost. Esto podría cambiarse en el futuro, proporcionando una lista blanca de hosts y autenticación estándar. ↩

  4. Aunque la interfaz web puede usarse como un componente separado, está incrustada en el binario de RIoTPot. ↩

  5. Si bien la aplicación base es interoperable, los servicios internos (plugins) solo se pueden usar en entornos Linux, FreeBSD y macOS. Planeamos superar esta limitación reemplazando los plugins con microservicios que se comuniquen a través de gRPC. ↩

  6. Por razones éticas y de seguridad, RIoTPot no permite solicitudes no solicitadas hacia el exterior, es decir, shells inversas y similares no están permitidas. ↩

Descargar herramienta
ServicioPuerto InternoPuerto Proxy
Echo200077
SSH2002222
Telnet2002323
HTTP2808080
Modbus20502502
MQTT218831883
CoAP256835683
ServicioImagenPuertoDetalles
MQTTeclipse-mosquitto1883Servidor MQTT Mosquito
HTTPhttpd80Servidor HTTP normal
Modbusoitc/modbus-server502Servidor Modbus
OCPPocpp1.6-central-system443OCPP v1.6 (usado en estaciones de carga de coches)
Aplicaciones
AplicaciónImagenDetalles
TCPDumpkaazing/tcpdumpGrabador de paquetes. Almacena tráfico de red en archivos .pcap

El contenedor se puede configurar en tres sencillos pasos:

  1. Descargue el código fuente de RIoTPot desde GitHub. Abra una consola e introduzca la siguiente línea.

    root@kitploit:~
    git clone [email protected]:aau-network-security/riotpot.git
    
  2. Navegue a la carpeta donde descargó el código fuente de RIoTPot.

  3. Con Docker en ejecución: si tiene Make instalado, ejecute el siguiente comando. De lo contrario, ejecute un comando docker-compose usando el archivo docker-compose incluido en la carpeta build/docker.

    • Con make
    root@kitploit:~
    # Con make
    make up
    
    • Con Docker-compose
    root@kitploit:~
    # Con docker-compose
    docker-compose -p riotpot -f build/docker/docker-compose.yaml up -d --build
    
BanderaTipoPor DefectoDescripción
debugBooleanfalseEstablecer el nivel de registro a debug
apiBooleantrueSi iniciar la API
pluginsBooleantrueSi cargar los plugins de honeypot de baja interacción
whitelistStringhttp://localhost,http://localhost:3000Lista de hosts permitidos separados por comas para contactar la API
uiBooleantrueSi iniciar la UI