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
tpotce — 🍯 T-Pot - A Plataforma Multi-Honeypot Tudo em Um 🐝 | Kitploit
Ferramentas/GitHubGitHub/telekom-security/tpotce
Ferramentas DefensivasOSINT (Inteligência de Fontes Abertas)Sniffing e Análise de PacotesAnálise de VulnerabilidadesColeta de InformaçõesSegurança de RedeInteligência de AmeaçasDetecção de IntrusãoAprendizado e EducaçãoAnálise de LogsTop em Detecção de Intrusão nº16
9.4k1.4k15há 5 diasRevisado 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 →
GitHubtelekom-security/tpotce

tpotce

🍯 T-Pot - A Plataforma Multi-Honeypot Tudo em Um 🐝

Ver Repositório
Compartilhar

T-Pot - A Plataforma Multi Honeypot Tudo-em-Um

T-Pot

O T-Pot é a plataforma de honeypot tudo-em-um, opcionalmente distribuída, multiarquitetura (amd64, arm64), que suporta mais de 20 honeypots e inúmeras opções de visualização usando o Elastic Stack, mapas de ataque ao vivo animados e muitas ferramentas de segurança para aprimorar ainda mais a experiência de decepção.

TL;DR

  1. Atenda aos requisitos de sistema. A instalação do T-Pot precisa de pelo menos 8-16 GB de RAM, 128 GB de espaço livre em disco, além de uma conexão de internet funcional (saída não filtrada).
  2. Baixe ou use uma distribuição suportada em execução.
  3. Instale o ISO com o mínimo de pacotes/serviços possível (ssh obrigatório).
  4. Instale o curl: $ sudo [apt, dnf, zypper] install curl se ainda não estiver instalado.
  5. Execute o instalador como não-root a partir de $HOME:``` env bash -c "$(curl -sL https://github.com/telekom-security/tpotce/raw/master/install.sh)"
root@kitploit:~
* Siga as instruções, leia as mensagens, verifique possíveis conflitos de porta e reinicie

<!-- TOC -->
- [T-Pot - A Plataforma Multi Honeypot Tudo-em-Um](#t-pot---the-all-in-one-multi-honeypot-platform)
- [TL;DR](#tldr)
- [Aviso Legal](#disclaimer)
- [Conceito Técnico](#technical-concept)
  - [Honeypots e Ferramentas](#honeypots-and-tools)
  - [Arquitetura Técnica](#technical-architecture)
  - [Serviços](#services)
  - [Tipos de Utilizador](#user-types)
- [Requisitos de Sistema](#system-requirements)
  - [Executar numa VM](#running-in-a-vm)
  - [Executar em Hardware](#running-on-hardware)
  - [Executar na Nuvem](#running-in-a-cloud)
  - [Portas Necessárias](#required-ports)
  - [Honeypots Baseados em LLM](#llm-based-honeypots)
    - [Ollama](#ollama)
    - [ChatGPT](#chatgpt)
- [Posicionamento do Sistema](#system-placement)
- [Instalação](#installation)
  - [Escolha a sua distro](#choose-your-distro)
  - [Suporte para Raspberry Pi 4 (8GB)](#raspberry-pi-4-8gb-support)
  - [Obter e instalar o T-Pot](#get-and-install-t-pot)
  - [macOS e Windows](#macos--windows)
  - [Red Hat Enterprise Linux](#red-hat-enterprise-linux)
  - [Tipos de Instalação](#installation-types)
    - [Standard / Hive](#standard--hive)
    - [Distribuída](#distributed)
  - [Desinstalar o T-Pot](#uninstall-t-pot)
- [Primeiro Arranque](#first-start)
  - [Primeiro Arranque Autónomo](#standalone-first-start)
  - [Implementação Distribuída](#distributed-deployment)
    - [Planeamento e Certificados](#planning-and-certificates)
    - [Implementar Sensores](#deploying-sensors)
    - [Remover Sensores](#removing-sensors)
  - [Submissão de Dados da Comunidade](#community-data-submission)
  - [Submissão Opcional de Dados HPFEEDS](#opt-in-hpfeeds-data-submission)
- [Acesso Remoto e Ferramentas](#remote-access-and-tools)
  - [SSH](#ssh)
  - [Página de Aterragem do T-Pot](#t-pot-landing-page)
  - [Painel de Controlo Kibana](#kibana-dashboard)
  - [Mapa de Ataques](#attack-map)
  - [Cyberchef](#cyberchef)
  - [Elasticvue](#elasticvue)
  - [Spiderfoot](#spiderfoot)
- [Configuração](#configuration)
  - [Ficheiro de Configuração do T-Pot](#t-pot-config-file)
  - [Personalizar Honeypots e Serviços do T-Pot](#customize-t-pot-honeypots-and-services)
- [Manutenção](#maintenance)
  - [Atualizações Gerais](#general-updates)
  - [Script de Atualização](#update-script)
  - [Reinício Diário](#daily-reboot)
  - [Problemas Conhecidos](#known-issues)
    - [Falha ao Descarregar Imagens Docker](#docker-images-fail-to-download)
    - [Falha de Rede do T-Pot](#t-pot-networking-fails)
  - [Iniciar o T-Pot](#start-t-pot)
  - [Parar o T-Pot](#stop-t-pot)
  - [Pasta de Dados do T-Pot](#t-pot-data-folder)
  - [Persistência de Registos](#log-persistence)
  - [Reposição de Fábrica](#factory-reset)
  - [Mostrar Contentores e Imagens](#show-containers-and-images)
  - [Buraco Negro](#blackhole)
  - [Adicionar Utilizadores ao Nginx (WebUI do T-Pot)](#add-users-to-nginx-t-pot-webui)
  - [Importar e Exportar Objetos do Kibana](#import-and-export-kibana-objects)
    - [Exportar](#export)
    - [Importar](#import)
- [Resolução de Problemas](#troubleshooting)
  - [Registos](#logs)
  - [RAM e Armazenamento](#ram-and-storage)
- [Contacto](#contact)
  - [Issues](#issues)
  - [Discussões](#discussions)
- [Licenças](#licenses)
- [Créditos](#credits)
  - [Os desenvolvedores e comunidades de desenvolvimento de](#the-developers-and-development-communities-of)
  - [**As seguintes empresas e organizações**](#the-following-companies-and-organizations)
  - [**E claro ***VOCÊ*** por se juntar à comunidade!**](#and-of-course-you-for-joining-the-community)
- [Testemunhos](#testimonials)
- [Obrigado 💖](#thank-you-)
<!-- TOC -->
<br><br>

# Aviso Legal
- Você instala e executa o T-Pot sob sua responsabilidade. Escolha a sua implementação com sabedoria, pois um comprometimento do sistema nunca pode ser descartado.
- Para ajuda rápida, pesquise nas [Issues](https://github.com/telekom-security/tpotce/issues) e [Discussões](https://github.com/telekom-security/tpotce/discussions).
- O software é concebido e oferecido com a melhor intenção possível. Como projeto comunitário e de código aberto, utiliza muito outro software de código aberto e pode conter bugs e problemas. Reporte de forma responsável.
- Honeypots - por conceção - não devem conter quaisquer dados sensíveis. Certifique-se de que não adiciona nenhum.
- Por predefinição, os seus dados são submetidos ao [Sicherheitstacho](https://www.sicherheitstacho.eu/start/main). Pode desativar isto na configuração (`~/tpotce/docker-compose.yml`) [removendo](#community-data-submission) a secção `ewsposter`. Mas neste caso, partilhar é realmente cuidar!
<br><br>

# Conceito Técnico
Os principais componentes do T-Pot foram movidos para a imagem Docker `tpotinit`, permitindo que o T-Pot agora suporte várias distribuições Linux, até mesmo macOS e Windows (embora ambos limitados ao conjunto de funcionalidades do Docker Desktop). O T-Pot utiliza [docker](https://www.docker.com/) e [docker compose](https://docs.docker.com/compose/) para alcançar o seu objetivo de executar o maior número possível de honeypots e ferramentas em simultâneo, utilizando assim ao máximo o hardware do anfitrião.
<br><br>

## Honeypots e Ferramentas
- O T-Pot oferece imagens docker para os seguintes honeypots:<br>
[adbhoney](https://github.com/huuck/ADBHoney),
[beelzebub](https://github.com/beelzebub-labs/beelzebub),
[ciscoasa](https://github.com/Cymmetria/ciscoasa_honeypot),
[citrixhoneypot](https://github.com/MalwareTech/CitrixHoneypot),
[conpot](http://conpot.org/),
[cowrie](https://github.com/cowrie/cowrie),
[ddospot](https://github.com/aelth/ddospot),
[dicompot](https://github.com/nsmfoo/dicompot),
[dionaea](https://github.com/DinoTools/dionaea),
[elasticpot](https://gitlab.com/bontchev/elasticpot),
[endlessh](https://github.com/skeeto/endlessh),
[galah](https://github.com/0x4D31/galah),
[go-pot](https://github.com/ryanolee/go-pot),
[glutton](https://github.com/mushorg/glutton),
[h0neytr4p](https://github.com/pbssubhash/h0neytr4p),
[hellpot](https://github.com/yunginnanet/HellPot),
[heralding](https://github.com/johnnykv/heralding),
[honeyaml](https://github.com/mmta/honeyaml),
[honeypots](https://github.com/qeeqbox/honeypots),
[honeytrap](https://github.com/armedpot/honeytrap/),
[ipphoney](https://gitlab.com/bontchev/ipphoney),
[log4pot](https://github.com/thomaspatzke/Log4Pot),
[mailoney](https://github.com/phin3has/mailoney),
[medpot](https://github.com/schmalle/medpot),
[miniprint](https://github.com/sa7mon/miniprint),
[redishoneypot](https://github.com/cypwnpwnsocute/RedisHoneyPot),
[rdphoneypot](https://gitlab.com/bontchev/rdphoneypot),
[sentrypeer](https://github.com/SentryPeer/SentryPeer),
[snare](http://mushmush.org/),
[tanner](http://mushmush.org/),
[wordpot](https://github.com/gbrindisi/wordpot)

Juntamente com as seguintes ferramentas:
* [Autoheal](https://github.com/willfarrell/docker-autoheal) uma ferramenta para reiniciar automaticamente contentores com verificações de saúde falhadas.
* [Cyberchef](https://gchq.github.io/CyberChef/) uma aplicação web para encriptação, codificação, compressão e análise de dados.
* [Elastic Stack](https://www.elastic.co/videos) para visualizar lindamente todos os eventos capturados pelo T-Pot.
* [Elasticvue](https://github.com/cars10/elasticvue/) um frontend web para navegar e interagir com um cluster Elasticsearch.
* [Fatt](https://github.com/0x4D31/fatt) um script baseado em pyshark para extrair metadados de rede e impressões digitais de ficheiros pcap e tráfego de rede em tempo real.
* [T-Pot-Attack-Map](https://github.com/telekom-security/t-pot-attack-map) um mapa de ataques lindamente animado para o T-Pot.
* [P0f](https://lcamtuf.coredump.cx/p0f3/) é uma ferramenta para recolha de impressões digitais de tráfego puramente passiva.
* [Spiderfoot](https://github.com/smicallef/spiderfoot) uma ferramenta de automação de inteligência de código aberto.
* [Suricata](https://suricata.io/) um motor de Monitorização de Segurança de Rede.

... para lhe proporcionar a melhor experiência pronta a usar possível e um sistema multi-honeypot fácil de utilizar.
<br><br>


## Arquitetura Técnica
![Architecture](https://assets.kitploit.com/production/public/readmes/4462/3fe1e953817d210102d0a4c79a55bebd32d23014d6ddefa058719411cfc9d178.png)

O código fonte e os ficheiros de configuração estão totalmente armazenados no repositório GitHub do T-Pot. As imagens docker são construídas e pré-configuradas para o ambiente T-Pot. 

Os Dockerfiles e configurações individuais estão localizados na [pasta docker](https://github.com/telekom-security/tpotce/tree/master/docker).
<br><br>

## Serviços
O T-Pot oferece vários serviços que estão basicamente divididos em cinco grupos:
1. Serviços de sistema fornecidos pelo SO
    * SSH para acesso remoto seguro.
2. Elastic Stack
    * Elasticsearch para armazenar eventos.
    * Logstash para ingerir, receber e enviar eventos para o Elasticsearch.
    * Kibana para exibir eventos em painéis lindamente renderizados.
3. Ferramentas
    * NGINX fornece acesso remoto seguro (proxy reverso) para Kibana, CyberChef, Elasticvue, GeoIP AttackMap, Spiderfoot e permite que os sensores T-Pot transmitam dados de evento de forma segura para a colmeia T-Pot.
    * CyberChef uma aplicação web para encriptação, codificação, compressão e análise de dados.
    * Elasticvue um frontend web para navegar e interagir com um cluster Elasticsearch.
    * Mapa de Ataques T-Pot um mapa de ataques lindamente animado para o T-Pot.
    * Spiderfoot uma ferramenta de automação de inteligência de código aberto.
4. Honeypots
    * Uma seleção dos 23 honeypots disponíveis com base no `docker-compose.yml` selecionado.
5. Monitorização de Segurança de Rede (NSM)
    * Fatt um script baseado em pyshark para extrair metadados de rede e impressões digitais de ficheiros pcap e tráfego de rede em tempo real.
    * P0f é uma ferramenta para recolha de impressões digitais de tráfego puramente passiva.
    * Suricata um motor de Monitorização de Segurança de Rede.
<br><br>

## Tipos de Utilizador
Durante a instalação e durante a utilização do T-Pot existem dois tipos diferentes de contas com as quais irá trabalhar. Certifique-se de que conhece as diferenças dos diferentes tipos de conta, uma vez que é **de longe** a razão mais comum para erros de autenticação.

| Serviço          | Tipo de Conta | Nome de Utilizador / Grupo | Descrição                                                         |
|:-----------------|:--------------|:---------------------------|:------------------------------------------------------------------|
| SSH              | SO            | `<OS_USERNAME>`            | O utilizador que escolheu durante a instalação do SO.             |
| Nginx            | BasicAuth     | `<WEB_USER>`               | `<web_user>` que escolheu durante a instalação do T-Pot.          |
| CyberChef        | BasicAuth     | `<WEB_USER>`               | `<web_user>` que escolheu durante a instalação do T-Pot.          |
| Elasticvue       | BasicAuth     | `<WEB_USER>`               | `<web_user>` que escolheu durante a instalação do T-Pot.          |
| Mapa de Ataques Geoip | BasicAuth     | `<WEB_USER>`               | `<web_user>` que escolheu durante a instalação do T-Pot.          |
| Spiderfoot       | BasicAuth     | `<WEB_USER>`               | `<web_user>` que escolheu durante a instalação do T-Pot.          |
| T-Pot            | SO            | `tpot`                     | `tpot` este utilizador / grupo está sempre reservado pelos serviços T-Pot. |
| Registos T-Pot   | BasicAuth     | `<LS_WEB_USER>`            | `LS_WEB_USER` são geridos automaticamente.                        |


<br><br>

# Requisitos de Sistema

Dependendo das [imagens de distribuição Linux suportadas](#choose-your-distro), colmeia / sensor, instalação em [hardware real](#running-on-hardware), numa [máquina virtual](#running-in-a-vm) ou outros ambientes, existem diferentes tipos de requisitos a cumprir relativamente a SO, RAM, armazenamento e rede para uma instalação bem-sucedida do T-Pot (pode sempre ajustar `~/tpotce/docker-compose.yml` e `~/tpotce/.env` às suas necessidades para ultrapassar estes requisitos).
<br><br>

| Tipo T-Pot | RAM  | Armazenamento | Descrição                                                                                     |
|:-----------|:-----|:--------------|:----------------------------------------------------------------------------------------------|
| Colmeia    | 16GB | 256GB SSD     | Como regra geral, quanto mais honeypots, sensores e dados, mais RAM e armazenamento são necessários. |
| Sensor     | 8GB  | 128GB SSD     | Como os registos dos honeypots são persistidos (~/tpotce/data) durante 30 dias, o armazenamento depende do volume de ataques. |

O T-Pot requer ...
- um endereço IPv4 via DHCP ou atribuído estaticamente
- uma ligação à Internet funcional e não através de proxy
... para uma instalação e operação bem-sucedidas.
<br><br>
*Se precisar de suporte para proxy ou outras funcionalidades não padrão, deve consultar a documentação das [imagens de distribuição Linux suportadas](#choose-your-distro) e/ou a [documentação do Docker](https://docs.docker.com/).*
<br><br>

## Executar numa VM
Todas as [imagens de distribuição Linux suportadas](#choose-your-distro) funcionarão numa VM, o que significa que o T-Pot funcionará bem. As seguintes foram testadas / reportadas como funcionais:
* [UTM (Intel & Apple Silicon)](https://mac.getutm.app/)
* [VirtualBox](https://www.virtualbox.org/)
* [VMWare Fusion](https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion) e [VMWare Workstation](https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion)
* KVM também é reportado como funcional.

***Algumas dicas de configuração / instalação:***
- Enquanto as versões Intel são estáveis, o suporte para Apple Silicon (arm64) tem problemas conhecidos que no UTM podem exigir mudar `Display` para `Console Only` durante a instalação inicial do SO e depois de volta para `Full Graphics`.
- Durante a configuração, poderá ser necessário ativar o modo promíscuo para a interface de rede para que fatt, suricata e p0f funcionem corretamente.
- Se pretender usar uma placa wifi como NIC principal para o T-Pot, esteja ciente de que nem todos os controladores de interface de rede suportam todas as placas sem fios. No VirtualBox, por exemplo, terá de escolher o modelo *"MT SERVER"* da NIC.
<br><br>

## Executar em Hardware
O T-Pot é apenas limitado pelo suporte de hardware das [imagens de distribuição Linux suportadas](#choose-your-distro). Recomenda-se verificar a HCL (lista de compatibilidade de hardware) e testar as distros suportadas com o T-Pot antes de investir em hardware dedicado.
<br><br>

## Executar na Nuvem
O T-Pot foi testado e sabe-se que funciona em ...
* Telekom OTC usando o método pós-instalação
... outros podem funcionar, mas permanecem não testados. 

Alguns utilizadores reportam instalações funcionais noutras nuvens e hospedeiros, por exemplo, Azure e GCP. Os requisitos de hardware podem ser diferentes. Se não tiver a certeza, deve pesquisar [issues](https://github.com/telekom-security/tpotce/issues) e [discussões](https://github.com/telekom-security/tpotce/discussions) e realizar alguns testes funcionais. Desde o T-Pot 24.04.0 em diante, garantimos remover definições que se sabia interferirem com instalações baseadas na nuvem. 
<br><br>

## Portas Necessárias
Além das portas geralmente necessárias pelo SO, como obter uma concessão DHCP, DNS, etc., o T-Pot requererá as seguintes portas para ligações de entrada / saída. Consulte a [Arquitetura T-Pot](#technical-architecture) para uma representação visual. Além disso, algumas portas aparecerão como duplicadas, o que é normal, pois são utilizadas em diferentes edições.| Port                                                                                                                                  | Protocol | Direction | Descrição                                                                                            |
|:--------------------------------------------------------------------------------------------------------------------------------------|:---------|:----------|:------------------------------------------------------------------------------------------------------|
| 80, 443                                                                                                                               | tcp      | outgoing  | Gerenciamento T-Pot: Instalação, Atualizações, Logs (ex.: SO, GitHub, DockerHub, Sicherheitstacho, etc.) |
| 11434                                                                                                                                 | tcp      | outgoing  | Honeypots baseados em LLM: Acesse sua instalação Ollama                                                |
| 64294                                                                                                                                 | tcp      | incoming  | Gerenciamento T-Pot: Transmissão de dados do sensor para o hive (através do NGINX reverse proxy) para 127.0.0.1:64305 |
| 64295                                                                                                                                 | tcp      | incoming  | Gerenciamento T-Pot: Acesso ao SSH                                                                     |
| 64297                                                                                                                                 | tcp      | incoming  | Gerenciamento T-Pot: Acesso ao NGINX reverse proxy                                                     |
| 5555                                                                                                                                  | tcp      | incoming  | Honeypot: ADBHoney                                                                                     |
| 22                                                                                                                                    | tcp      | incoming  | Honeypot: Beelzebub (requer LLM)                                                                      |
| 5000                                                                                                                                  | udp      | incoming  | Honeypot: CiscoASA                                                                                    |
| 8443                                                                                                                                  | tcp      | incoming  | Honeypot: CiscoASA                                                                                    |
| 443                                                                                                                                   | tcp      | incoming  | Honeypot: CitrixHoneypot                                                                              |
| 80, 102, 502, 1025, 2404, 10001, 44818, 47808, 50100                                                                                  | tcp      | incoming  | Honeypot: Conpot                                                                                      |
| 161, 623                                                                                                                              | udp      | incoming  | Honeypot: Conpot                                                                                      |
| 22, 23                                                                                                                                | tcp      | incoming  | Honeypot: Cowrie                                                                                      |
| 19, 53, 123, 1900                                                                                                                     | udp      | incoming  | Honeypot: Ddospot                                                                                     |
| 11112                                                                                                                                 | tcp      | incoming  | Honeypot: Dicompot                                                                                    |
| 21, 42, 135, 443, 445, 1433, 1723, 1883, 3306, 8081                                                                                   | tcp      | incoming  | Honeypot: Dionaea                                                                                     |
| 69                                                                                                                                    | udp      | incoming  | Honeypot: Dionaea                                                                                     |
| 9200                                                                                                                                  | tcp      | incoming  | Honeypot: Elasticpot                                                                                  |
| 22                                                                                                                                    | tcp      | incoming  | Honeypot: Endlessh                                                                                    |
| 80, 443, 8080, 8443                                                                                                                   | tcp      | incoming  | Honeypot: Galah (requer LLM)                                                                          |
| 8080                                                                                                                                  | tcp      | incoming  | Honeypot: Go-pot                                                                                      |
| 80, 443                                                                                                                               | tcp      | incoming  | Honeypot: H0neytr4p                                                                                   |
| 21, 22, 23, 25, 80, 110, 143, 443, 993, 995, 1080, 5432, 5900                                                                         | tcp      | incoming  | Honeypot: Heralding                                                                                   |
| 3000                                                                                                                                  | tcp      | incoming  | Honeypot: Honeyaml                                                                                    |
| 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      | incoming  | Honeypot: qHoneypots                                                                                  |
| 53, 123, 161, 5060                                                                                                                    | udp      | incoming  | Honeypot: qHoneypots                                                                                  |
| 631                                                                                                                                   | tcp      | incoming  | Honeypot: IPPHoney                                                                                    |
| 80, 443, 8080, 9200, 25565                                                                                                            | tcp      | incoming  | Honeypot: Log4Pot                                                                                     |
| 25                                                                                                                                    | tcp      | incoming  | Honeypot: Mailoney                                                                                    |
| 2575                                                                                                                                  | tcp      | incoming  | Honeypot: Medpot                                                                                      |
| 9100                                                                                                                                  | tcp      | incoming  | Honeypot: Miniprint                                                                                   |
| 6379                                                                                                                                  | tcp      | incoming  | Honeypot: Redishoneypot                                                                               |
| 3389                                                                                                                                  | tcp      | incoming  | Honeypot: RDPHoneypot                                                                                 |
| 5060                                                                                                                                  | tcp/udp  | incoming  | Honeypot: SentryPeer                                                                                  |
| 80                                                                                                                                    | tcp      | incoming  | Honeypot: Snare (Tanner)                                                                              |
| 8090                                                                                                                                  | tcp      | incoming  | Honeypot: Wordpot                                                                                     |

Portas e disponibilidade dos serviços SaaS podem variar conforme sua localização geográfica.

Para que alguns honeypots atinham funcionalidade completa (ex.: Cowrie ou Log4Pot), conexões de saída também são necessárias, para que eles possam baixar o malware do atacante. Consulte a documentação de cada honeypot para saber mais, seguindo os [links](#conceito-técnico) para seus repositórios.

## Honeypots Baseados em LLM
Acreditamos que os Honeypots Baseados em LLM marcam o **início** de uma mudança de jogo no campo de decepção / honeypots. Consequentemente, a partir do lançamento do **T-Pot 24.04.1**, dois honeypots baseados em LLM, **Beelzebub** e **Galah**, foram introduzidos. Esses honeypots requerem uma instalação do **Ollama**, que precisa ser configurado no [arquivo de configuração do T-Pot](#arquivo-de-configuração-do-t-pot). Você também pode ajustar as configurações neste arquivo para suporte ao **ChatGPT**, mas note que alterações também serão necessárias no arquivo docker compose (`~/tpotce/compose/llm.yml`) para acomodar esses ajustes.<br><br>
Siga os links na seção [Honeypots e Ferramentas](#honeypots-e-ferramentas) para saber mais sobre **Beelzebub** e **Galah**.

### Ollama
🚨 **O uso baseado em CPU não é recomendado**, nem mesmo para testes.<br><br>
Para configurar e executar o **Ollama**, consulte o [repositório GitHub do Ollama](https://github.com/ollama/ollama) para instruções. Para fins de entrada ou teste, resultados podem ser alcançados usando uma **Nvidia RTX 4060 Ti 16GB** ou equivalente (AMD's ROCm também é suportado pelo Ollama), com modelos como **openchat** e **Llama3**. Como regra geral com sistemas baseados em LLM, quanto melhor e mais hardware você usar, mais rápidos e precisos serão os resultados, especialmente quando as tarefas são descarregadas para múltiplas GPUs e modelos maiores.

### ChatGPT
O suporte ao ChatGPT para esses honeypots permanecerá não testado em relação ao T-Pot.
<br><br>

# Posicionamento do Sistema
Recomenda-se que você se familiarize com o funcionamento do T-Pot e dos honeypots antes de expor à internet. Para um início rápido, execute uma instalação do T-Pot em uma máquina virtual.
<br><br>
Depois de familiarizado com o funcionamento, você deve escolher uma rede onde suspeite de intrusos ou de onde eles venham (ex.: a internet). Caso contrário, o T-Pot provavelmente não capturará ataques (a menos que você queira provar algo)! Para iniciantes, recomenda-se colocar o T-Pot em uma zona não filtrada, onde todo o tráfego TCP e UDP seja encaminhado para a interface de rede do T-Pot. Para evitar sondagens das portas de gerenciamento do T-Pot, coloque o T-Pot atrás de um firewall e encaminhe todo o tráfego TCP/UDP na faixa de portas 1-64000 para o T-Pot, permitindo acesso às portas > 64000 apenas a partir de IPs confiáveis e/ou exponha apenas as [portas](#portas-necessárias) relevantes para o seu caso de uso. Se desejar capturar tráfego de malware em portas desconhecidas, não limite as portas que você encaminha, pois glutton e honeytrap vinculam dinamicamente qualquer porta TCP que não esteja ocupada por outros daemons de honeypot, dando assim uma melhor representação dos riscos aos quais sua configuração está exposta.
<br><br>

# Instalação
[Baixe](#escolha-sua-distro) uma das [imagens de distribuição Linux suportadas](#escolha-sua-distro), siga as instruções [TL;DR](#tldr) ou faça `git clone` do repositório T-Pot e execute o instalador `~/tpotce/install.sh`. Executar o T-Pot sobre um sistema Linux em execução e suportado é possível, mas uma instalação limpa é recomendada para evitar conflitos de porta com serviços em execução. O instalador do T-Pot exigirá acesso direto à internet conforme descrito [aqui](#portas-necessárias).
<br><br>

## Escolha sua distro
**Passos a seguir:**

1. Baixe uma distribuição Linux suportada da lista abaixo. (NOTA: Red Hat Enterprise Linux >= 8 é suportado, mas omitido da lista abaixo devido à sua natureza baseada em assinatura. Veja [Red Hat Enterprise Linux](#red-hat-enterprise-linux) para detalhes).
2. Durante a instalação, escolha uma versão **mínima**, **netinstall** ou **servidor** que instalará apenas pacotes essenciais.
3. **Nunca** instale um ambiente de desktop gráfico como Gnome ou KDE. O T-Pot não funcionará com ele devido a conflitos de porta.
4. Certifique-se de instalar o SSH para poder conectar-se à máquina remotamente.

| Nome da Distribuição                                                                  | x64                                                                                                                                   | arm64                                                                                                                                   |
|:--------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------|
| [Alma Linux OS 9.x Minimal ISO](https://almalinux.org)                                | [download](https://repo.almalinux.org/almalinux/9/isos/x86_64/AlmaLinux-9.8-x86_64-minimal.iso)                                        | [download](https://repo.almalinux.org/almalinux/9/isos/aarch64/AlmaLinux-9.8-aarch64-minimal.iso)                                        |
| [Debian 13 Network Install](https://www.debian.org/CD/netinst/index.en.html)          | [download](https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-13.5.0-amd64-netinst.iso)                                 | [download](https://cdimage.debian.org/debian-cd/current/arm64/iso-cd/debian-13.5.0-arm64-netinst.iso)                                   |
| [Fedora Server 42 Network Install](https://fedoraproject.org/server/download)         | [download](https://download.fedoraproject.org/pub/fedora/linux/releases/42/Server/x86_64/iso/Fedora-Server-netinst-x86_64-42-1.1.iso) | [download](https://download.fedoraproject.org/pub/fedora/linux/releases/42/Server/aarch64/iso/Fedora-Server-netinst-aarch64-42-1.1.iso) |
| [OpenSuse Tumbleweed Network Image](https://get.opensuse.org/tumbleweed/#download)    | [download](https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-NET-x86_64-Current.iso)                                   | [download](https://download.opensuse.org/ports/aarch64/tumbleweed/iso/openSUSE-Tumbleweed-NET-aarch64-Current.iso)                      |
| [Rocky Linux OS 9.x Minimal ISO](https://rockylinux.org/download)                     | [download](https://download.rockylinux.org/pub/rocky/9/isos/x86_64/Rocky-9.8-x86_64-minimal.iso)                                      | [download](https://download.rockylinux.org/pub/rocky/9/isos/aarch64/Rocky-9.8-aarch64-minimal.iso)                                      |
| [Ubuntu 24.04.x Live Server](https://ubuntu.com/download/server)                      | [download](https://releases.ubuntu.com/24.04/ubuntu-24.04.3-live-server-amd64.iso)                                                    | [download](https://cdimage.ubuntu.com/releases/24.04/release/ubuntu-24.04.3-live-server-arm64.iso)                                      |

<br>

## Suporte para Raspberry Pi 4 (8GB)
| Nome da Distribuição                                                | arm64                                                                                                                                               |
|:--------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------|
| [Raspberry Pi OS (**64Bit, Lite**)](https://www.raspberrypi.com)    | [download](https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-03-15/2024-03-15-raspios-bookworm-arm64-lite.img.xz) |

<br><br> 
## Obter e instalar o T-Pot
1. Clone o repositório GitHub: `$ git clone https://github.com/telekom-security/tpotce` ou siga o [TL;DR](#tldr) e pule esta seção.
2. Entre na pasta **tpotce/**: `$ cd tpotce`
3. Execute o instalador como não-root: `$ ./install.sh`:
   * ⚠️ ***Dependendo da distribuição Linux escolhida, o instalador irá:***
     * Alterar a porta SSH para `tcp/64295`
     * Desabilitar o DNS Stub Listener para evitar conflitos de porta com honeypots
     * Definir SELinux para Modo Monitoramento
     * Definir o alvo do firewall para a zona pública como ACCEPT
     * Adicionar o repositório do Docker e instalar o Docker
     * Instalar pacotes recomendados
     * Remover pacotes que causam problemas conhecidos
     * Adicionar o usuário atual ao grupo docker (permitir interação com docker sem `sudo`)
     * Adicionar aliases `dps`, `dpsw` e `dim` para visões gerais formatadas de contêineres e imagens
     * Adicionar aliases `la`, `ll` e `ls` (para `exa`, um comando `ls` melhorado)
     * Adicionar `mi` (para `micro`, uma ótima alternativa ao `vi` e/ou `nano`)
     * Exibir portas abertas no host (compare com as portas [necessárias](https://github.com/telekom-security/tpotce#required-ports) do T-Pot)
     * Adicionar e habilitar `tpot.service` para `/etc/systemd/system` para que o T-Pot possa iniciar e parar automaticamente
4. Siga as instruções do instalador; você precisará inserir sua senha de usuário (`sudo` ou `root`) pelo menos uma vez
5. Verifique as mensagens do instalador em busca de erros e portas abertas que possam causar conflitos de porta
6. Reinicie: `$ sudo reboot`
<br><br>## macOS e Windows
Às vezes é bom poder iniciar uma instância do T-Pot no macOS ou Windows, por exemplo, para desenvolvimento, testes ou apenas por diversão. Como o Docker Desktop é bastante limitado, nem todos os tipos de honeypot ou recursos do T-Pot são suportados. Lembre-se também que, por padrão, o firewall do macOS e do Windows bloqueia o acesso remoto, então os testes são limitados ao host. Para produção, é recomendado executar o T-Pot no [Linux](#choose-your-distro).<br>
Para colocar tudo em funcionamento, siga estes passos:
1. Instale o Docker Desktop para [macOS](https://docs.docker.com/desktop/setup/install/mac-install/) ou [Windows](https://docs.docker.com/desktop/setup/install/windows-install/).
2. Clone o repositório do GitHub: `git clone https://github.com/telekom-security/tpotce` (no Windows, certifique-se de que o código seja baixado com `LF` em vez de `CRLF`!)
3. Vá para: `cd ~/tpotce`
4. Copie `cp compose/mac_win.yml ./docker-compose.yml`
5. Crie um `WEB_USER` executando `~/tpotce/genuser.sh` (macOS) ou `~/tpotce/genuserwin.ps1` (Windows)
6. Ajuste o arquivo `.env` alterando `TPOT_OSTYPE=linux` para `mac` ou `win`:   ```
   # OSType (linux, mac, win)
   #  Most docker features are available on linux
   TPOT_OSTYPE=mac
  1. Você deve garantir por conta própria que não há conflitos de porta impedindo o T-Pot de iniciar.
  2. Iniciar T-Pot: docker compose up ou docker compose up -d se quiser que o T-Pot seja executado em segundo plano.
  3. Parar T-Pot: CTRL-C (se estiver sendo executado em primeiro plano) e/ou docker compose down -v para parar o T-Pot completamente.

Red Hat Enterprise Linux

O Red Hat Enterprise Linux (RHEL) é um caso um tanto único, pois:

  1. As conexões com os repositórios Red Hat dependem de uma assinatura Red Hat. Você não conseguirá atualizar o sistema operacional ou instalar novos pacotes se a máquina alvo não estiver inscrita. Se o seu servidor não estiver vinculado a uma assinatura Red Hat, a instalação falhará!
  2. O Ansible é instalado a partir de um repositório específico do RHEL pelo instalador. Não tente instalá-lo a partir dos repositórios upstream.
  3. O Docker é instalado a partir do EPEL, que é instalado pelo script do instalador. Não tente instalá-lo a partir do script da comunidade.
  4. O T-Pot só será instalado com sucesso no RHEL >= 8. Uma das dependências de conveniência (grc) depende do Python 2, que foi removido após o RHEL 7. Ela é omitida da instalação do T-Pot no RHEL.

Tipos de Instalação

Padrão / Hive

Com o T-Pot Padrão / Hive, todos os serviços, ferramentas, honeypots, etc. serão instalados em um único host que também serve como endpoint Hive. Certifique-se de atender aos requisitos de sistema. Você pode ajustar ~/tpotce/docker-compose.yml para seu caso de uso pessoal ou criar sua própria configuração usando ~/tpotce/compose/customizer.py para uma experiência T-Pot personalizada às suas necessidades. Assim que a instalação for concluída, você pode prosseguir para o Primeiro Início.

Distribuída

A versão distribuída do T-Pot requer pelo menos dois hosts

  • o Hive do T-Pot, a instalação padrão do T-Pot (instale este primeiro!),
  • e um Sensor do T-Pot, que hospedará apenas os honeypots, algumas ferramentas e transmitirá dados de log para o Hive.
  • O Sensor não iniciará antes de finalizar a instalação do Sensor conforme descrito em Implantação Distribuída.

Desinstalar o T-Pot

A desinstalação do T-Pot está disponível apenas nas distribuições Linux suportadas.
Para desinstalar o T-Pot execute ~/tpotce/uninstall.sh e siga as instruções do desinstalador, você precisará inserir sua senha pelo menos uma vez.
Assim que a desinstalação for concluída, reinicie a máquina com sudo reboot

Primeiro Início

Assim que o Instalador do T-Pot for concluído com sucesso, o sistema precisa ser reiniciado (sudo reboot). Após a reinicialização, você pode fazer login no sistema usando o usuário que configurou durante a instalação do sistema. Os logins são de acordo com os Tipos de Usuário:

  • usuário: [<OS_USERNAME>]
  • senha: [senha]

Você pode fazer login via SSH para acessar a linha de comando: ssh -l <OS_USERNAME> -p 64295 <your.ip>:

  • usuário: [<OS_USERNAME>]
  • senha: [senha, chave ssh recomendada]

Você também pode fazer login pelo navegador e acessar a WebUI e ferramentas do T-Pot: https://<your.ip>:64297

  • usuário: [<WEB_USER>]
  • senha: [senha]

Primeiro Início Autônomo

Não há muito o que fazer, exceto fazer login e verificar via dps se todos os serviços e honeypots estão iniciando corretamente. Você pode usar dim para revisar as imagens Docker instaladas, incluindo a idade CREATED, e então fazer login no Kibana e/ou no Mapa de Ataques Geoip para monitorar os ataques.

Implantação Distribuída

Planejamento e Certificados

A implantação distribuída envolve planejamento, pois o T-Pot Init criará apenas um certificado autoassinado para o IP do host Hive, que geralmente é adequado para configurações simples. Como o logstash verificará um certificado válido na conexão, uma configuração distribuída envolvendo o Hive acessível em vários IPs (por exemplo, RFC 1918 e IP NAT público) e talvez até um nome de domínio resultará em um erro de conexão onde o certificado não pode ser validado, pois tal configuração precisa de um certificado com um nome comum e SANs (Subject Alternative Name).
Antes de implantar quaisquer sensores, certifique-se de ter planejado adequadamente os nomes de domínio e IPs para evitar problemas com o certificado. Para mais detalhes, consulte issue #1543.
Ajuste o exemplo para sua configuração de IP/domínio e siga os comandos para alterar o certificado do 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

root@kitploit:~
O arquivo de configuração do T-Pot (`.env`) permite desabilitar a verificação SSL para conexões logstash do **Sensor** para a **Colmeia** definindo `LS_SSL_VERIFICATION=none`. Por razões de segurança, isso é recomendado apenas para ambientes de laboratório ou teste.<br><br>
Se você optar por usar um certificado válido para a **Colmeia** assinado por uma AC (ex.: Let's Encrypt), o logstash e, portanto, o **Sensor**, não devem ter problemas para conectar e transmitir seus logs para a **Colmeia**.

### Implantando Sensores
Depois de reiniciar o **Sensor** conforme instruído pelo instalador, você pode continuar com a implantação distribuída fazendo login na **Colmeia** e indo para a pasta `cd ~/tpotce`. Certifique-se de ter compreendido o [Planejamento e Certificados](#planning-and-certificates) antes de continuar com a implantação real.

Se ainda não o fez, gere uma chave SSH para fazer login com segurança no **Sensor** e permitir que o `Ansible` execute um playbook no sensor:
1. Execute `ssh-keygen`, siga as instruções e deixe a frase secreta vazia:   ```
   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
  1. Implantar a chave no Sensor executando 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.

    root@kitploit:~
  2. Conforme sugerido, siga as instruções para testar a conexão ssh -p '64295' '<seu_usuário>@<IP_do_Sensor>'.

  3. Quando a chave for implantada com sucesso, execute ./deploy.sh e siga as instruções.

Removendo Sensores

Identifique a variável de ambiente TPOT_HIVE_USER no Sensor no arquivo de configuração $HOME/tpotce/.env (é uma string codificada em base64). Agora identifique a mesma string na variável de ambiente LS_WEB_USER no Hive no arquivo de configuração $HOME/tpotce/.env. Remova a string e reinicie o T-Pot.
Agora você pode excluir a máquina do Sensor com segurança.

Envio de Dados da Comunidade

O T-Pot é fornecido para torná-lo acessível a todos os interessados em honeypots. Por padrão, os dados capturados são enviados para um backend da comunidade. Este backend da comunidade usa os dados para alimentar o Sicherheitstacho. Você pode optar por não participar do envio removendo o serviço # Ewsposter service do arquivo ~/tpotce/docker-compose.yml seguindo estes passos:

  1. Pare os serviços do T-Pot: systemctl stop tpot
  2. Abra ~/tpotce/docker-compose.yml: micro ~/tpotce/docker-compose.yml
  3. Remova as seguintes linhas, salve e saia do 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

root@kitploit:~
4. Iniciar os serviços T-Pot: `systemctl start tpot`

É incentivado a não desativar o envio de dados, pois é o principal objetivo da abordagem comunitária - como todos sabem **compartilhar é cuidar** 😍
<br><br>

## Submissão de Dados HPFEEDS Opt-In
Como Opt-In, é possível compartilhar dados do T-Pot com corretores HPFEEDS de terceiros.
1. Siga as instruções [aqui](#community-data-submission) para parar os serviços T-Pot e abra `~/tpotce/docker-compose.yml`.
2. Role para baixo até a seção `ewsposter` e ajuste as configurações HPFEEDS conforme necessário.
3. Se precisar adicionar um certificado CA, adicione-o em `~/tpotce/data/ews/conf` e defina `EWS_HPFEEDS_TLSCERT=/data/ews/conf/<your_ca.crt>`.
4. Iniciar os serviços T-Pot: `systemctl start tpot`.
<br><br>

# Acesso Remoto e Ferramentas
O acesso remoto ao seu host / T-Pot é possível via SSH (na porta **`tcp/64295`**) e alguns serviços e ferramentas vêm com o T-Pot para tornar algumas de suas tarefas de pesquisa muito mais fáceis.
<br><br>

## SSH
De acordo com os [Tipos de Usuário](#user-types) você pode fazer login via SSH para acessar a linha de comando: `ssh -l <OS_USERNAME> -p 64295 <your.ip>`:

- usuário: **[`<OS_USERNAME>`]**
- senha: **[password]**
<br><br>

## Página Inicial do T-Pot
De acordo com os [Tipos de Usuário](#user-types) você pode abrir a Página Inicial do T-Pot a partir do seu navegador via `https://<your.ip>:64297`:

- usuário: **[`<WEB_USER>`]**
- senha: **[password]**

![T-Pot-WebUI](https://assets.kitploit.com/production/public/readmes/4462/7e70eb82c25026577169f745794728206ca655c2fac5155262c645bf0290158e.png)
<br><br>

## Painel Kibana
Na Página Inicial do T-Pot, basta clicar em `Kibana` e você será encaminhado para o Kibana. Você pode selecionar uma grande variedade de painéis e visualizações, todos adaptados aos honeypots suportados pelo T-Pot.

![Dashbaord](https://assets.kitploit.com/production/public/readmes/4462/d363122f1d233abb0f1818c0e69ed6ac1f4a2f139d5d924bcf7d6fc2b0b7f8bc.png)
<br><br>

## Mapa de Ataques
Na Página Inicial do T-Pot, basta clicar em `Attack Map` e você será encaminhado para o Mapa de Ataques. Como o Mapa de Ataques utiliza web sockets, talvez seja necessário reinserir as credenciais do `<WEB_USER>`.

![AttackMap](https://assets.kitploit.com/production/public/readmes/4462/a9a8e7024bebe87b98b754ee1fcaf877dee35b0b35404525cfc7b4bcf63778b5.png)
<br><br>

## Cyberchef
Na Página Inicial do T-Pot, basta clicar em `Cyberchef` e você será encaminhado para o Cyberchef.

![Cyberchef](https://assets.kitploit.com/production/public/readmes/4462/4e8c0b3e528dad69e932ee8fefc6c0367c93b144fc22b5cbfdfc21401a212540.png)
<br><br>

## Elasticvue
Na Página Inicial do T-Pot, basta clicar em `Elasticvue` e você será encaminhado para o Elasticvue.

![Elasticvue](https://assets.kitploit.com/production/public/readmes/4462/0a40257ee96c7713158d952dd3eaeaaa65ef587883f3545592072793819d4a22.png)
<br><br>

## Spiderfoot
Na Página Inicial do T-Pot, basta clicar em `Spiderfoot` e você será encaminhado para o Spiderfoot.

![Spiderfoot](https://assets.kitploit.com/production/public/readmes/4462/018e445ac80bc3a63e3504e5f46335b67870f5afe102fe59b308f5b64886e79e.png)
<br><br>

# Configuração

## Arquivo de Configuração do T-Pot
O T-Pot oferece um arquivo de configuração que fornece variáveis não apenas para os serviços docker (ou seja, honeypots e ferramentas), mas também para o ambiente docker compose. O arquivo de configuração está oculto em `~/tpoce/.env`. Há também um arquivo de exemplo (`env.example`) que contém a configuração padrão.<br>
Antes da primeira inicialização, execute `~/tpotce/genuser.sh` ou configure o `WEB_USER` manualmente conforme descrito [aqui](#add-users-to-nginx-t-pot-webui). 

## Personalizar Honeypots e Serviços do T-Pot

Em `~/tpotce/compose` você encontrará tudo o que precisa para ajustar a instalação T-Pot Standard / Hive:```
customizer.py
llm.yml
mac_win.yml
mini.yml
mobile.yml
sensor.yml
standard.yml
tarpit.yml
tpot_services.yml

Os arquivos .yml são arquivos docker compose, cada um representando um conjunto diferente de honeypots e ferramentas, com tpot_services.yml sendo um modelo para customizer.py criar um arquivo docker compose personalizado.

Para ativar um arquivo compose, siga estas etapas:

  1. Pare o T-Pot com systemctl stop tpot.
  2. Copie o arquivo docker compose cp ~/tpotce/compose/<dockercompose.yml> ~/tpotce/docker-compose.yml.
  3. Inicie o T-Pot com systemctl start tpot.

Para criar seu arquivo docker compose personalizado:

  1. Vá para cd ~/tpotce/compose.
  2. Execute python3 customizer.py.
  3. O script guiará você pelo processo de criação do seu próprio docker-compose.yml. Como alguns honeypots e serviços ocupam as mesmas portas, ele verificará se há conflitos de porta e notificará sobre os serviços conflitantes. Você pode então resolvê-los manualmente ajustando docker-compose-custom.yml ou executando o script novamente.
  4. Pare o T-Pot com systemctl stop tpot.
  5. Copie o arquivo docker compose personalizado: cp docker-compose-custom.yml ~/tpotce e cd ~/tpotce.
  6. Verifique se tudo funciona executando docker-compose -f docker-compose-custom.yml up. Em caso de erros, siga a Especificação do Docker Compose para mitigação. Provavelmente é apenas um conflito de porta que você pode ajustar editando o arquivo docker compose.
  7. Se tudo funcionar perfeitamente, pressione CTRL-C para parar os contêineres e execute docker-compose -f docker-compose-custom.yml down -v.
  8. Substitua o arquivo docker compose pelo novo arquivo docker compose personalizado testado com sucesso mv ~/tpotce/docker-compose-custom.yml ~/tpotce/docker-compose.yml.
  9. Inicie o T-Pot com systemctl start tpot.

Manutenção

O T-Pot foi projetado para ter baixa manutenção. Como quase tudo é fornecido por meio de imagens docker, basicamente não há nada que você precise fazer além de deixá-lo funcionar. Atualizaremos as imagens docker regularmente para reduzir os riscos de comprometimento; no entanto, você deve ler esta seção com atenção.

Se uma atualização falhar, abrir uma issue ou uma discussão ajudará a melhorar as coisas no futuro, mas a solução oferecida será sempre realizar uma instalação limpa, pois simplesmente não podemos fornecer suporte para dados perdidos!

Atualizações Gerais

A segurança do T-Pot depende das atualizações fornecidas para as imagens de distribuição Linux suportadas. Certifique-se de revisar a documentação do SO e garantir que as atualizações sejam instaladas regularmente pelo SO. Por padrão (~/tpotce/.env), TPOT_PULL_POLICY=always garantirá que, a cada inicialização do T-Pot, o docker verifique novas imagens docker e as baixe antes de criar os contêineres.

Script de Atualização

As versões do T-Pot são oferecidas através do GitHub e podem ser baixadas usando ~/tpotce/update.sh.
Se você fez alterações relevantes nos arquivos de configuração do T-Pot, certifique-se de criar um backup primeiro!
As atualizações podem ter consequências imprevistas. Crie um backup da máquina ou dos arquivos mais valiosos para o seu trabalho!

O script de atualização irá ...

  • substituir impiedosamente as alterações locais para ficar em sincronia com o branch master do T-Pot
  • criar um backup completo da pasta ~/tpotce
  • atualizar todos os arquivos em ~/tpotce para ficar em sincronia com o branch master do T-Pot
  • restaurar seu ews.cfg personalizado de ~/tpotce/data/ews/conf e a configuração do T-Pot (~/tpotce/.env).

Reinicialização Diária

Por padrão, o T-Pot adicionará uma reinicialização diária incluindo alguma limpeza. Você pode ajustar esta linha com `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"'

root@kitploit:~
## Problemas Conhecidos
Os seguintes problemas são conhecidos, basta seguir os passos descritos para resolvê-los.
<br><br>

### Imagens Docker Falham ao Fazer Download
Há algum tempo, o Docker introduziu [limites de download](https://docs.docker.com/docker-hub/download-rate-limit/#:~:text=Docker%20Hub%20limits%20the%20number,pulls%20per%206%20hour%20period.). Se você está baixando imagens Docker frequentemente por um único IP ou IP compartilhado, o endereço IP pode ter excedido o limite de download do Docker. Faça login na sua conta do Docker para aumentar o limite.```
sudo su -
docker login

Falhas de Rede do T-Pot

O T-Pot foi projetado para ser executado apenas em máquinas com uma única NIC. O T-Pot tentará capturar a interface com a rota padrão, no entanto, não é garantido que isso sempre funcione. É melhor usar o T-Pot em máquinas com apenas uma única NIC.

Iniciar o T-Pot

O serviço T-Pot inicia e para automaticamente a cada reinicialização (o que ocorre uma vez por dia, conforme configurado em sudo crontab -l durante a instalação).
Se quiser iniciar manualmente o serviço T-Pot, pode fazê-lo através de systemctl start tpot e observar via dpsw a inicialização dos contentores.

Parar o T-Pot

O serviço T-Pot inicia e para automaticamente a cada reinicialização (o que ocorre uma vez por dia, conforme configurado em sudo crontab -l durante a instalação).
Se quiser parar manualmente o serviço T-Pot, pode fazê-lo através de systemctl stop tpot e observar via dpsw o encerramento dos contentores.

Pasta de Dados do T-Pot

Todos os ficheiros de registo persistentes dos honeypots, ferramentas e serviços relacionados com o T-Pot são armazenados em ~/tpotce/data. Isto inclui artefactos recolhidos que não são transmitidos para o Elastic Stack.

Persistência de Registos

Todos os dados de registo são armazenados na Pasta de Dados do T-Pot e serão persistidos pelo número de ciclos definido para TPOT_PERSISTENCE_CYCLES=<1-999> no ficheiro de configuração do T-Pot ~/tpotce/.env. O padrão é 30.
Os índices do Elasticsearch são geridos pela Política de Ciclo de Vida do Índice tpot, que pode ser ajustada diretamente no Kibana (certifique-se de "Incluir políticas de sistema geridas"). IndexManagement1

Por padrão, a Política de Ciclo de Vida do Índice tpot mantém os índices por 30 dias. Isto oferece um bom equilíbrio entre armazenamento e velocidade. No entanto, pode ajustar a política conforme as suas necessidades. IndexManagement2

Reposição de Fábrica

Todos os dados de registo armazenados na Pasta de Dados do T-Pot (exceto os índices do Elasticsearch, claro) podem ser apagados executando clean.sh. Às vezes, as coisas podem quebrar além do reparo e nunca foi tão fácil repor um T-Pot para as predefinições de fábrica (certifique-se de entrar em cd ~/tpotce).

  1. Pare o T-Pot usando systemctl stop tpot.
  2. Mova / Faça uma cópia de segurança da pasta ~/tpotce/data para um local seguro (isto é opcional, apenas por precaução).
  3. Apague a pasta ~/tpotce/data usando sudo rm -rf ~/tpotce/data.
  4. Reponha o T-Pot para o último commit obtido:``` cd ~/tpotce/ git reset --hard
root@kitploit:~
5. Agora você pode executar `~/tpotce/install.sh`.
<br><br>

## Mostrar Contêineres e Imagens
Pode mostrar todos os contêineres relevantes do T-Pot executando `dps` ou `dpsw [intervalo]`. O `intervalo (s)` executará novamente o `dps` periodicamente. Use `dim` para mostrar as imagens Docker disponíveis localmente, incluindo a coluna `CREATED`.
<br><br>

## Blackhole
O Blackhole executará o T-Pot de forma furtiva, sem visitas permanentes de scanners conhecidos publicamente, reduzindo assim a possibilidade de exposição. Embora seja sempre um jogo de gato e rato, a funcionalidade Blackhole está a encaminhar para nulo todos os pedidos de [scanners em massa conhecidos](https://raw.githubusercontent.com/stamparm/maltrail/master/trails/static/mass_scanner.txt) enquanto ainda captura os eventos através do Suricata.
<br>
A funcionalidade é ativada definindo `TPOT_BLACKHOLE=DISABLED` em `~/tpotce/.env`, depois execute `systemctl stop tpot` e `systemctl start tpot` ou `sudo reboot`.
<br>
Ativar esta funcionalidade reduzirá drasticamente a visibilidade dos atacantes e, consequentemente, resultará em menos atividade. No entanto, como já mencionado, não é garantia de total invisibilidade nem impedirá a identificação de alguns serviços honeypot.
<br><br>

## Adicionar Utilizadores ao Nginx (Interface Web do T-Pot)
O Nginx (Interface Web do T-Pot) permite adicionar quantas contas `<WEB_USER>` desejar (de acordo com os [Tipos de Utilizador](#user-types)).<br>
Para **adicionar** um novo utilizador execute `~/tpotce/genuser.sh`.<br>
Para **remover** utilizadores abra `~/tpotce/.env`, localize `WEB_USER` e remova a string base64 correspondente (para descodificar: `echo <base64_string> | base64 -d`, ou abra o CyberChef e carregue a receita "From Base64").<br>
Para que as alterações tenham efeito, precisa reiniciar o T-Pot usando `systemctl stop tpot` e `systemctl start tpot` ou `sudo reboot`.
<br><br>

## Importar e Exportar Objetos do Kibana
Algumas atualizações do T-Pot exigirão que atualize os objetos do Kibana. Seja para suportar novos honeypots ou para melhorar painéis ou visualizações existentes. Certifique-se de ***exportar*** primeiro para não perder as suas personalizações.

### Exportar
1. Vá para o Kibana
2. Clique em "Stack Management"
3. Clique em "Saved Objects"
4. Clique em "Exportar <n.º> objetos"
5. Clique em "Exportar tudo"
Isto exportará um ficheiro NDJSON com todos os seus objetos. Execute sempre uma exportação completa para garantir que todas as referências estão incluídas.

### Importar
1. [Descarregue o ficheiro NDJSON](https://raw.githubusercontent.com/telekom-security/tpotce/refs/heads/master/docker/tpotinit/dist/etc/objects/kibana_export.ndjson.zip) e descompacte-o.
2. Vá para o Kibana
3. Clique em "Stack Management"
4. Clique em "Saved Objects"
5. Clique em "Importar" e mantenha as predefinições (verificar objetos existentes e substituir automaticamente conflitos) se não tiver feito alterações pessoais aos objetos do Kibana.
6. Selecione o ficheiro NDJSON
Quando for perguntado: "Se algum dos objetos já existir, deseja substituí-los automaticamente?" responda "Sim, substituir todos".
<br><br>

# Resolução de Problemas
Geralmente, o T-Pot é oferecido ***tal como está*** sem qualquer compromisso de suporte. Podem ser abertos issues e discussões, mas prepare-se para incluir informações básicas necessárias para que a comunidade possa ajudar.
<br><br>

## Registos
* Verifique se os seus contêineres estão a funcionar corretamente: `dps`
* Verifique as imagens Docker disponíveis localmente e a sua idade: `dim`
* Verifique se os recursos do sistema não estão esgotados: `htop`, `docker stats`
* Verifique se existe um conflito de portas:```
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 os logs de contêineres individuais: docker logs -f <nome_do_container>
  • Verifique o log do tpotinit: cat ~/tpotce/data/tpotinit.log

RAM e Armazenamento

O Elastic Stack é faminto por RAM, especificamente logstash e elasticsearch. Se o Elastic Stack estiver indisponível, não receber logs ou simplesmente continuar travando, provavelmente é um problema de RAM ou armazenamento.
Enquanto o T-Pot tenta reiniciar os serviços/contêineres, execute docker logs -f <nome_do_container> (logstash ou elasticsearch) e verifique se há avisos ou falhas envolvendo RAM.

Falhas de armazenamento podem ser identificadas mais facilmente via htop.

Contato

O T-Pot é fornecido como está, em código aberto, sem qualquer compromisso de suporte (veja o aviso legal).

Se você é um pesquisador de segurança e deseja reportar um problema de forma responsável, entre em contato com nosso CERT.

Problemas

Por favor, reporte problemas (erros) em nosso GitHub Issues, mas faça a solução de problemas primeiro. Problemas que não fornecerem informações para resolver o erro serão fechados ou convertidos em discussões.

Use a função de pesquisa primeiro, é possível que um problema semelhante já tenha sido abordado ou discutido, com a solução a uma pesquisa de distância.

Discussões

Perguntas gerais, ideias, mostre e conte, etc., podem ser abordadas em nossas GitHub Discussions.

Use a função de pesquisa, é possível que uma discussão semelhante já tenha sido aberta, com uma resposta a uma pesquisa de distância.

Licenças

O software no qual o T-Pot é construído utiliza as seguintes licenças.
GPLv2: conpot, galah, dionaea, honeytrap, suricata
GPLv3: adbhoney, elasticpot, ewsposter, log4pot, fatt, heralding, ipphoney, miniprint, redishoneypot, rdphoneypot, sentrypeer, snare, tanner
Apache 2 License: cyberchef, dicompot, elasticsearch, go-pot, h0neytr4p, logstash, kibana, docker
MIT license: autoheal, beelzebub, ciscoasa, ddospot, elasticvue, glutton, hellpot, honeyaml, maltrail
Unlicense: endlessh
Other: citrixhoneypot, cowrie, mailoney, Elastic License, Wordpot
AGPL-3.0: honeypots
Public Domain (CC): Harvard Dataverse

Créditos

Sem o código aberto e a comunidade de desenvolvimento da qual temos orgulho de fazer parte, o T-Pot não teria sido possível! Nossos agradecimentos se estendem, mas não se limitam, às seguintes pessoas e organizações:

Os desenvolvedores e comunidades de desenvolvimento de

  • adbhoney, beelzebub, ciscoasa, citrixhoneypot, conpot, cowrie, ddospot, dicompot, dionaea, docker, elasticpot, elasticsearch, elasticvue, endlessh, ewsposter, fatt, galah, glutton, go-pot, h0neytr4p, hellpot, heralding, honeyaml, honeypots, honeytrap, ipphoney, kibana, logstash, log4pot, mailoney, maltrail, medpot, miniprint, p0f, redishoneypot, rdphoneypot, sentrypeer, spiderfoot, snare, tanner, suricata, wordpot

As seguintes empresas e organizações

  • docker, elastic.io, honeynet project

E é claro VOCÊ por se juntar à comunidade!


Depoimentos

Um dos maiores feedbacks que recebemos até agora é de um dos desenvolvedores do Conpot:
"[...] Eu recomendo fortemente o T-Pot, que é... não é exatamente um canivete suíço... é mais como um soldado suíço, equipado com um canivete suíço. Dentro de um tanque. Um tanque suíço. [...]"

E de @robcowart (criador do ElastiFlow):
"O #TPot é uma das soluções de honeypot turnkey mais bem montadas. É obrigatório para qualquer pessoa que queira analisar e entender o comportamento de atores maliciosos e a ameaça que representam para sua organização."

Obrigado 💖

Baixar ferramenta