Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
riotpot — Honeypot para IoT e Tecnologia Operacional | Kitploit
Ferramentas/GitHubGitHub/aau-network-security/riotpot
Ferramentas DefensivasSegurança IoTSegurança SCADA/ICSColeta de InformaçõesSegurança de Rede
GitHubaau-network-security/riotpot

riotpot

Honeypot para IoT e Tecnologia Operacional

Ver Repositório
105286há 2 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
📢 ATENÇÃO!!!
Este repositório foi movido para o Projeto Honeynet :)

RIoTPot

GitHub Actions status
Baixar ferramenta

RIoTPot é um honeypot de interação híbrida, focado principalmente na emulação de protocolos IoT e OT, embora também seja capaz de emular outros serviços. Em essência, o RIoTPot atua como um serviço de proxy para outros honeypots incluídos no sistema. Portanto, você pode executar qualquer honeypot e outros serviços juntamente com o RIoTPot. Além disso, existe uma aplicação web UI que você pode usar para gerenciar seu roteamento.

O honeypot vem com múltiplos serviços de baixa interação prontos para uso. Como esses serviços são escritos como plugins, eles são suportados apenas no Linux; no entanto, você pode iniciar o RIoTPot sem eles. A tabela a seguir contém a lista de serviços incluídos no RIoTPot por padrão, sua porta interna e porta de proxy.

ServiçoPorta InternaPorta de Proxy
Echo200077
SSH2002222
Telnet2002323
HTTP2808080
Modbus20502502
MQTT218831883
CoAP256835683

Índice

  • RIoTPoT
    • 1. Arquitetura
    • 2. Como usar o RIoTPot
    • 3. Comandos

1. Arquitetura

A arquitetura do RIoTPot é baseada em conexões de proxy para serviços internos e circundantes (ou externos) (ex.: honeypots, serviços completos, contêineres, hosts remotos, etc.). Para isso, o honeypot gerencia vários proxies definidos pelo usuário que retransmitem conexões entre os serviços e o RIoTPot 1. Dessa forma, o RIoTPot pode decidir como e para onde rotear ataques recebidos. A lógica usada para determinar como lidar com o ataque recebido é implementada na forma de middlewares 2. Para gerenciar serviços, middlewares e proxies, o RIoTPot traz embutidos uma API REST 3 e uma interface web UI 4 prontos para uso. A UI pode ser acessada pelo seu navegador em localhost:2022 e você pode manipular os endpoints da API em localhost:2022/api/swagger, exibindo uma interface Swagger.

Figura 1 mostra a arquitetura do RIoTPot, incluindo os dois aplicativos principais que constituem o RIoTPot (o próprio RIoTPot e o RIoTPot UI) e seus componentes, e uma seção para envolver serviços externos (ou adjacentes).

Figura 1. Arquitetura do RIoTPot, incluindo o aplicativo principal, serviços externos e a webapp UI para gerenciar instâncias do RIoTPot.

O RIoTPot é escrito em Golang5. Cada instância do RIoTPot expõe proxies registrados (com base em sua porta) sob demanda. Para servir um proxy, ele deve ter um serviço vinculado e a porta do proxy deve estar disponível (atualmente, o RIoTPot não aceita múltiplos serviços executando na mesma porta). Quando um proxy é vinculado e servido, os atacantes poderão enviar mensagens ao RIoTPot nessa porta, retransmitindo as mensagens para o serviço vinculado e de volta para o atacante6.

Para facilitar o acesso, múltiplas instâncias do RIoTPot podem ser gerenciadas a partir da webapp UI do RIoTPot. Além de gerenciar os proxies registrados em cada instância, a UI permite criar, usar e editar perfis. Cada perfil contém um número de proxies nomeados após protocolos ou outros serviços, fazendo com que uma instância do RIoTPot se assemelhe a um dispositivo real (por exemplo, um assistente residencial). Em poucas palavras, os perfis aceleram o processo de configuração e provisionamento de uma instância do RIoTPot com configurações específicas. A UI é escrita usando a biblioteca JavaScript de front-end React (usamos TypeScript neste projeto) e a biblioteca de gerenciamento de estado Recoil. Como o RIoTPot é relativamente pequeno, por enquanto, ele não utiliza um banco de dados.

2. Como usar o RIoTPot

Executar o RIoTPot é relativamente simples. No geral, você tem três opções. A primeira é baixar uma versão do RIoTPot; você pode escolher baixar a versão mais recente ou uma anterior. A segunda opção é construir o projeto você mesmo. A última opção é usar o código-fonte para criar um contêiner Docker com o RIoTPot e alguns aplicativos adicionais para aprimorar o honeypot.

Usando uma Versão de Lançamento

Info: Este guia é destinado a usuários sem necessidades especiais, que desejam uma experiência simples pronta para uso.

Cada versão vem em uma pasta chamada riotpot com um binário executável (também) chamado riotpot e uma pasta plugins preenchida com vários serviços (ou honeypots de baixa interação). É importante manter a estrutura interna de pastas para que o RIoTPot funcione como esperado.

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

  1. Primeiro, baixe a versão de sua escolha na página de versões. Escolha a que você precisa para o seu Sistema Operacional (SO).
  2. Extraia a pasta riotpot.
  3. Execute o binário riotpot. Isso iniciará o RIoTPot com a API habilitada, todos os plugins prontos para uso e o servidor UI.
    • A API e a UI estão acessíveis através do endereço localhost:2022
Construa você mesmo

Info: Este guia é destinado a usuários avançados confortáveis em ambientes de desenvolvimento.

Requisitos
  • Golang - Necessário para construir o projeto
  • Node - Necessário para construir a UI

Opcional:

  • Git - Usado para baixar o código-fonte
  • Make - Para executar comandos pré-preparados

  1. Baixe o código-fonte do RIoTPot do GitHub. Abra um console e insira a seguinte linha.

    root@kitploit:~
    git clone [email protected]:aau-network-security/riotpot.git
    
  2. Navegue até a pasta onde você baixou o código-fonte do RIoTPot e instale os pacotes node necessários.

    root@kitploit:~
    npm install
    
  3. Se você instalou o Make, incluímos vários auxiliares de comando para ajudá-lo a construir o projeto. Para simplificar, você pode executar dois comandos simples que construirão o binário do RIoTPot e os plugins (e os colocarão na pasta correta).

    root@kitploit:~
    # Construir o servidor
    make build-ui
    # Constrói o RIoTPot e os plugins
    make riotpot-build
    

NOTA: A UI usa Vite para construir o projeto. Se você preferir usar outro construtor, pode ser necessário fazer algumas alterações por conta própria.

Docker (Virtualização)

Info: Este guia é destinado a usuários avançados que preferem usar o RIoTPot em um ambiente virtual.

Requisitos
  • Docker - Usado para construir uma imagem de uma instância do RIoTPot e servidor UI.
  • Docker-compose - Usado para criar um único contêiner com uma instância do RIoTPot, a UI e outros aplicativos e serviços.

As principais vantagens de usar esta configuração são os recursos adicionais de segurança com alterações mínimas na configuração do contêiner e nos próprios contêineres. Por exemplo, podemos definir redes privadas virtuais separadas e redes overlay para ocultar, isolar e encapsular o RIoTPot e outros serviços adjacentes. Além disso, os contêineres nos permitem vincular serviços usando seu nome de endereço Docker em vez de seu IP, o que é muito conveniente. Por fim, podemos criar e parar contêineres separados sob demanda sem afetar outros serviços.

Por outro lado, a virtualização é indiscutivelmente mais exigente do que usar aplicações em bare-metal. Embora uma única instância do RIoTPot seja relativamente leve, é importante considerar as desvantagens introduzidas pela virtualização e emulação de hardware (por exemplo, atrasos de resposta).

Aviso: Tecnicamente falando, um atacante dedicado pode perceber que o RIoTPot é na verdade um honeypot analisando e comparando os atrasos de tempo de resposta introduzidos pela virtualização com servidores reais (!!). Embora esse tipo de fingerprinting de honeypot já tenha sido estudado antes, os resultados para serviços comuns da Internet ainda são inconclusivos (por exemplo, HTTP, Telnet e SSH), devido à mercantilização de serviços de hospedagem em nuvem usando máquinas virtuais e configurações detalhadas de servidor.

O arquivo docker-compose inclui serviços adicionais para aprimorar a experiência com o RIoTPot. A tabela a seguir resume a lista de serviços e aplicativos empacotados neste contêiner.

Serviços
ServiçoImagemPortaDetalhes
MQTTeclipse-mosquitto1883Servidor MQTT Mosquito
HTTPhttpd80Servidor HTTP Comum
Modbusoitc/modbus-server502Servidor Modbus
OCPPocpp1.6-central-system443OCPP v1.6 (usado em estações de carga de carros)
Aplicativos
AplicativoImagemDetalhes
TCPDumpkaazing/tcpdumpGravador de pacotes. Armazena tráfego de rede em arquivos .pcap

O contêiner pode ser configurado em três passos simples:

  1. Baixe o código-fonte do RIoTPot do GitHub. Abra um console e insira a seguinte linha.

    root@kitploit:~
    git clone [email protected]:aau-network-security/riotpot.git
    
  2. Navegue até a pasta onde você baixou o código-fonte do RIoTPot.

  3. Com o Docker em execução: se você tiver o Make instalado, execute o seguinte comando. Caso contrário, execute um comando docker-compose usando o arquivo docker-compose incluído na pasta build/docker.

    • Com make
    root@kitploit:~
    # Com make
    make up
    
    • Com Docker-compose
    root@kitploit:~
    # Com docker-compose
    docker-compose -p riotpot -f build/docker/docker-compose.yaml up -d --build
    

3. Comandos

O RIoTPot vem com comandos de flag que afetam como e o que é iniciado. Exemplo:

root@kitploit:~
# Executar o RIoTPot sem a UI
./riotpot --ui false
FlagTipoPadrãoDescrição
debugBooleanofalseDefinir nível de log para debug
apiBooleanotrueSe deve iniciar a API
pluginsBooleanotrueSe deve carregar os plugins de honeypot de baixa interação
whitelistStringhttp://localhost,http://localhost:3000Lista de hosts permitidos separados por vírgula para contatar a API
uiBooleanotrueSe deve iniciar a UI

Footnotes

  1. Serviços internos e circundantes não são acessíveis pela Internet. Os serviços internos são integrados e acessíveis apenas ao RIoTPot. Esses serviços são carregados na inicialização e não podem ser excluídos, mas podem ser parados. Os serviços circundantes devem estar na mesma rede que o RIoTPot. Os serviços externos devem incluir apenas o RIoTPot na lista de permissões. ↩

  2. Os middlewares estão atualmente em desenvolvimento. ↩

  3. A API do RIoTPot não deve ser exposta à Internet. Independentemente disso, a API atualmente só aceita conexões do localhost. Isso pode ser alterado no futuro, fornecendo uma lista de permissões de hosts e autenticação padrão. ↩

  4. Embora a interface web possa ser usada como um componente separado, ela está incorporada ao binário do RIoTPot. ↩

  5. Embora o aplicativo base seja interoperável, os serviços internos (plugins) só podem ser usados em ambientes Linux, FreeBSD e macOS. Planejamos superar essa limitação substituindo plugins por microsserviços que se comunicam através de gRPC. ↩

  6. Por razões éticas e de segurança, o RIoTPot não permite solicitações não solicitadas para o exterior, ou seja, shells reversos e similares não são permitidos. ↩