T-Pot é a plataforma honeypot multiarch (amd64, arm64) completa, opcionalmente distribuída, com suporte para mais de 20 honeypots e inúmeras opções de visualização usando o Elastic Stack, mapas animados de ataque ao vivo e muitas ferramentas de segurança para melhorar ainda mais a experiência de fraude.
Atenda aos requisitos do sistema. A instalação do T-Pot precisa de pelo menos 8-16 GB de RAM, 128 GB de espaço livre em disco, bem como uma conexão de Internet funcional (de saída não filtrada).
Baixe ou use uma distribuição compatível e em execução.
Instale o ISO com o mínimo de pacotes/serviços possível ( ssh
necessário)
Instale curl
: $ sudo [apt, dnf, zypper] install curl
se ainda não estiver instalado
Execute o instalador como não root em $HOME
:
env bash -c "$(curl -sL https://github.com/telekom-security/tpotce/raw/master/install.sh)"
Siga as instruções, leia as mensagens, verifique possíveis conflitos de porta e reinicie
T-Pot - a plataforma multifuncional multi honeypot
DR
Isenção de responsabilidade
Conceito Técnico
Arquitetura Técnica
Serviços
Tipos de usuário
Requisitos do sistema
Executando em uma VM
Executando em hardware
Correndo em uma nuvem
Portas necessárias
Posicionamento do sistema
Instalação
Padrão / HIVE
Distribuído
Escolha sua distribuição
Suporte para Raspberry Pi 4 (8 GB)
Obtenha e instale o T-Pot
macOS e Windows
Tipos de instalação
Desinstalar o T-Pot
Primeiro começo
Planejamento e Certificados
Implantando Sensores
Primeiro início independente
Implantação Distribuída
Envio de dados da comunidade
Envio de dados HPFEEDS de aceitação
Acesso remoto e ferramentas
SSH
Página inicial do T-Pot
Painel Kibana
Mapa de Ataque
Ciberchef
Elasticvue
Pé-aranha
Configuração
Arquivo de configuração T-Pot
Personalize honeypots e serviços T-Pot
Manutenção
Exportar
Importar
Falha ao baixar imagens do Docker
Falha na rede T-Pot
Atualizações Gerais
Atualizar script
Reinicialização diária
Problemas conhecidos
Inicie o T-Pot
Pare o T-Pot
Pasta de dados T-Pot
Persistência de registro
Redefinição de fábrica
Mostrar contêineres
Buraco negro
Adicionar usuários ao Nginx (T-Pot WebUI)
Importar e exportar objetos do Kibana
Solução de problemas
Registros
RAM e armazenamento
Contato
Problemas
Discussões
Licenças
Créditos
Os desenvolvedores e comunidades de desenvolvimento de
Depoimentos
Você instala e executa o T-Pot sob sua responsabilidade. Escolha sua implantação com sabedoria, pois um comprometimento do sistema nunca pode ser descartado.
Para obter ajuda rápida, pesquise os problemas e discussões.
O software é projetado e oferecido com o melhor esforço em mente. Como um projeto comunitário e de código aberto, ele usa muitos outros softwares de código aberto e pode conter bugs e problemas. Informe com responsabilidade.
Honeypots - por design - não devem hospedar dados confidenciais. Certifique-se de não adicionar nenhum.
Por padrão, seus dados são enviados ao Sicherheitstacho. Você pode desabilitar isso na configuração ( ~/tpotce/docker-compose.yml
) removendo a seção ewsposter
. Mas neste caso compartilhar é mesmo cuidar!
Os principais componentes do T-Pot foram movidos para a imagem tpotinit
Docker, permitindo que o T-Pot agora suporte múltiplas distribuições Linux, até mesmo macOS e Windows (embora ambos limitados ao conjunto de recursos do Docker Desktop). T-Pot usa docker e docker compose para atingir seu objetivo de executar tantos honeypots e ferramentas quanto possível simultaneamente e, assim, utilizar ao máximo o hardware do host.
T-Pot oferece imagens docker para os seguintes honeypots ...
adbhoney,
ciscoasa,
citrixhoneypot,
conpot,
cauri,
ddospot,
dicompot,
dionaea,
pote elástico,
sem fim,
glutão,
inferno,
anunciando,
potes de mel,
armadilha de mel,
ipphone,
log4pot,
mailoney,
remédio,
redishoneypot,
sentinela,
laço,
curtidor,
pote de palavras
... juntamente com as seguintes ferramentas ...
Autoheal, uma ferramenta para reiniciar automaticamente contêineres com falhas nas verificações de integridade.
Cyberchef, um aplicativo web para criptografia, codificação, compactação e análise de dados.
Elastic Stack para visualizar lindamente todos os eventos capturados pelo T-Pot.
Elasticvue, um front-end da web para navegar e interagir com um cluster Elasticsearch.
Fatt, um script baseado em pyshark para extrair metadados de rede e impressões digitais de arquivos pcap e tráfego de rede ativo.
T-Pot-Attack-Map um mapa de ataque lindamente animado para T-Pot.
P0f é uma ferramenta para impressão digital de tráfego puramente passiva.
Spiderfoot, uma ferramenta de automação de inteligência de código aberto.
Suricata, um mecanismo de monitoramento de segurança de rede.
... para oferecer a melhor experiência possível e um sistema multi-honeypot fácil de usar.
O código-fonte e os arquivos de configuração são totalmente armazenados no repositório T-Pot GitHub. 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.
A T-Pot oferece uma série de serviços que se dividem basicamente em cinco grupos:
Serviços de sistema fornecidos pelo sistema operacional
SSH para acesso remoto seguro.
Pilha Elástica
Elasticsearch para armazenar eventos.
Logstash para ingestão, recebimento e envio de eventos para o Elasticsearch.
Kibana para exibir eventos em painéis lindamente renderizados.
Ferramentas
NGINX fornece acesso remoto seguro (proxy reverso) para Kibana, CyberChef, Elasticvue, GeoIP AttackMap, Spiderfoot e permite que sensores T-Pot transmitam dados de eventos com segurança para a colmeia T-Pot.
CyberChef, um aplicativo da web para criptografia, codificação, compactação e análise de dados.
Elasticvue, um front-end da web para navegar e interagir com um cluster Elasticsearch.
T-Pot Attack Map, um mapa de ataque lindamente animado para T-Pot.
Spiderfoot, uma ferramenta de automação de inteligência de código aberto.
Pote de mel
Uma seleção dos 23 honeypots disponíveis com base no docker-compose.yml
selecionado.
Monitoramento de segurança de rede (NSM)
Fatt, um script baseado em pyshark para extrair metadados de rede e impressões digitais de arquivos pcap e tráfego de rede ativo.
P0f é uma ferramenta para impressão digital de tráfego puramente passiva.
Suricata, um mecanismo de monitoramento de segurança de rede.
Durante a instalação e durante o uso do T-Pot, existem dois tipos diferentes de contas com as quais você trabalhará. Certifique-se de conhecer as diferenças entre os diferentes tipos de conta, pois esse é de longe o motivo mais comum para erros de autenticação.
Serviço | Tipo de conta | Nome de usuário/grupo | Descrição |
---|---|---|---|
SSH | SO | <OS_USERNAME> | O usuário que você escolheu durante a instalação do sistema operacional. |
Nginx | Autenticação Básica | <WEB_USER> | <web_user> você escolheu durante a instalação do T-Pot. |
CyberChef | Autenticação Básica | <WEB_USER> | <web_user> você escolheu durante a instalação do T-Pot. |
Elasticvue | Autenticação Básica | <WEB_USER> | <web_user> você escolheu durante a instalação do T-Pot. |
Mapa de ataque Geoip | Autenticação Básica | <WEB_USER> | <web_user> você escolheu durante a instalação do T-Pot. |
Pé-aranha | Autenticação Básica | <WEB_USER> | <web_user> você escolheu durante a instalação do T-Pot. |
Pote T | SO | tpot | tpot este usuário/grupo é sempre reservado pelos serviços T-Pot. |
Registros T-Pot | Autenticação Básica | <LS_WEB_USER> | LS_WEB_USER são gerenciados automaticamente. |
Dependendo das imagens de distribuição Linux suportadas, hive/sensor, instalação em hardware real, em uma máquina virtual ou outros ambientes, existem diferentes tipos de requisitos a serem atendidos em relação ao sistema operacional, RAM, armazenamento e rede para uma instalação bem-sucedida do T-Pot ( você sempre pode ajustar ~/tpotce/docker-compose.yml
e ~/tpotce/.env
de acordo com suas necessidades para superar esses requisitos).
Tipo T-Pot | BATER | Armazenar | Descrição |
---|---|---|---|
Colmeia | 16 GB | SSD de 256 GB | Como regra geral, quanto mais sensores e dados, mais RAM e armazenamento serão necessários. |
Sensor | 8GB | SSD de 128 GB | Como os logs do honeypot são persistidos (~/tpotce/data) por 30 dias, o armazenamento depende do volume do ataque. |
T-Pot requer ...
um endereço IPv4 via DHCP ou atribuído estaticamente
uma conexão de Internet funcional e sem proxy... para uma instalação e operação bem-sucedidas.
Se precisar de suporte de proxy ou de outros recursos fora do padrão, você deve verificar a documentação das imagens de distribuição Linux suportadas e/ou a documentação do Docker.
Todas as imagens de distribuição Linux suportadas serão executadas em uma VM, o que significa que o T-Pot funcionará bem. Os seguintes foram testados/relatados para funcionar:
UTM (Intel e Apple Silicon)
Caixa Virtual
VMWare Fusion e estação de trabalho VMWare
O KVM também funciona.
Algumas dicas de configuração/configuração:
Embora as versões Intel funcionem de forma estável, o suporte Apple Silicon (arm64) tem problemas conhecidos que em UTM podem exigir a mudança de Display
para Console Only
durante a instalação inicial do sistema operacional e depois de volta para Full Graphics
.
Durante a configuração, pode ser necessário ativar o modo promíscuo para a interface de rede para que fatt, suricata e p0f funcionem corretamente.
Se você deseja usar uma placa wifi como NIC primária para T-Pot, esteja ciente de que nem todos os drivers de interface de rede suportam todas as placas wireless. No VirtualBox, por exemplo, você deve escolher o modelo "MT SERVER" da NIC.
O T-Pot é limitado apenas pelo suporte de hardware das imagens de distribuição Linux suportadas. Recomenda-se verificar a HCL (lista de compatibilidade de hardware) e testar as distros suportadas com T-Pot antes de investir em hardware dedicado.
O T-Pot é testado e conhecido por funcionar em ...
Telekom OTC usando o método pós-instalação... outros podem funcionar, mas não foram testados.
Alguns usuários relatam instalações funcionando em outras nuvens e hosters, ou seja, Azure e GCP. Os requisitos de hardware podem ser diferentes. Se não tiver certeza, pesquise questões e discussões e execute alguns testes funcionais. Com o T-Pot 24.04.0 e posteriores, certificamo-nos de remover configurações que sabidamente interferiam nas instalações baseadas na nuvem.
Além das portas geralmente necessárias ao sistema operacional, ou seja, obter uma concessão de DHCP, DNS, etc. O T-Pot exigirá as seguintes portas para conexões de entrada/saída. Revise a arquitetura T-Pot para obter uma representação visual. Além disso, algumas portas aparecerão como duplicatas, o que é bom, pois é usado em diferentes edições.
Porta | Protocolo | Direção | Descrição |
---|---|---|---|
80, 443 | tcp | extrovertido | Gerenciamento T-Pot: instalação, atualizações, logs (ou seja, sistema operacional, GitHub, DockerHub, Sicherheitstacho, etc. |
64294 | tcp | entrada | Gerenciamento T-Pot: transmissão de dados do sensor para o hive (por meio do proxy reverso NGINX) para 127.0.0.1:64305 |
64295 | tcp | entrada | Gerenciamento T-Pot: Acesso ao SSH |
64297 | tcp | entrada | Acesso de gerenciamento T-Pot ao proxy reverso NGINX |
5555 | tcp | entrada | Honeypot: ADBHoney |
5.000 | UDP | entrada | Honeypot: CiscoASA |
8443 | tcp | entrada | Honeypot: CiscoASA |
443 | tcp | entrada | Honeypot: CitrixHoneypot |
80, 102, 502, 1025, 2404, 10001, 44818, 47808, 50100 | tcp | entrada | Pote de mel: Conpot |
161, 623 | UDP | entrada | Pote de mel: Conpot |
22, 23 | tcp | entrada | Pote de mel: Cowrie |
19, 53, 123, 1900 | UDP | entrada | Honeypot: Ddospot |
11112 | tcp | entrada | Pote de mel: Dicompot |
21, 42, 135, 443, 445, 1433, 1723, 1883, 3306, 8081 | tcp | entrada | Pote de mel: Dionaea |
69 | UDP | entrada | Pote de mel: Dionaea |
9200 | tcp | entrada | Honeypot: Elasticpot |
22 | tcp | entrada | Honeypot: Infinito |
21, 22, 23, 25, 80, 110, 143, 443, 993, 995, 1080, 5432, 5900 | tcp | entrada | Honeypot: Arauto |
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 | entrada | Honeypot: qHoneypots |
53, 123, 161, 5060 | UDP | entrada | Honeypot: qHoneypots |
631 | tcp | entrada | Honeypot: IPPHoney |
80, 443, 8080, 9200, 25565 | tcp | entrada | Honeypot: Log4Pot |
25 | tcp | entrada | Pote de mel: Mailoney |
2575 | tcp | entrada | Honeypot: Medpot |
6379 | tcp | entrada | Honeypot: Redishoneypot |
5060 | tcp/udp | entrada | Honeypot: SentryPeer |
80 | tcp | entrada | Honeypot: Armadilha (Tanner) |
8090 | tcp | entrada | Honeypot: Wordpot |
As portas e a disponibilidade de serviços SaaS podem variar de acordo com sua localização geográfica.
Para que alguns honeypots atinjam a funcionalidade completa (ou seja, Cowrie ou Log4Pot), também são necessárias conexões de saída, para que possam baixar o malware do invasor. Consulte a documentação individual do honeypot para saber mais seguindo os links para seus repositórios.
É recomendável que você se familiarize com o funcionamento do T-Pot e dos honeypots antes de começar a expor na Internet. Para um início rápido, execute uma instalação do T-Pot em uma máquina virtual.
Depois de estar familiarizado com o funcionamento das coisas, você deve escolher uma rede na qual você suspeite de intrusos (ou seja, a Internet). Caso contrário, o T-Pot provavelmente não capturará nenhum ataque (a menos que você queira provar algo)! Para começar, é recomendado colocar o T-Pot em uma zona não filtrada, onde todo o tráfego TCP e UDP é encaminhado para a interface de rede do T-Pot. Para evitar a investigação das portas de gerenciamento do T-Pot, você deve colocar o T-Pot atrás de um firewall e encaminhar todo o tráfego TCP/UDP no intervalo de portas de 1 a 64000 para o T-Pot, permitindo acesso às portas > 64000 apenas de IPs confiáveis e/ou ou exponha apenas as portas relevantes ao seu caso de uso. Se você deseja capturar o tráfego de malware em portas desconhecidas, você não deve limitar as portas encaminhadas, pois o glutton e o honeytrap vinculam dinamicamente qualquer porta TCP que não esteja ocupada por outros daemons honeypot e, assim, fornecem uma representação melhor dos riscos aos quais sua configuração está exposta. .
Baixe uma das imagens de distribuição Linux suportadas, siga as instruções TL;DR ou git clone
o repositório T-Pot e execute o instalador ~/tpotce/install.sh
. É possível executar o T-Pot em um sistema Linux em execução e compatí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.
Passos a seguir:
Baixe uma distribuição Linux compatível da lista abaixo.
Durante a instalação, escolha uma versão mínima , netinstall ou servidor que instale apenas pacotes essenciais.
Nunca instale um ambiente de área de trabalho gráfico como Gnome ou KDE. O T-Pot não funcionará com ele devido a conflitos de porta.
Certifique-se de instalar o SSH para poder conectar-se à máquina remotamente.
Nome de distribuição | x64 | braço64 |
---|---|---|
ISO de inicialização do sistema operacional Alma Linux 9.4 | download | download |
Instalação em rede Debian 12 | download | download |
Instalação de rede do Fedora Server 40 | download | download |
Imagem de rede OpenSuse Tumbleweed | download | download |
ISO de inicialização do Rocky Linux OS 9.4 | download | download |
Servidor Ubuntu 24.04 Live | download | download |
Nome de distribuição | braço64 |
---|---|
Raspberry Pi OS ( 64 bits, Lite ) | download |
Clone o repositório GitHub: $ git clone https://github.com/telekom-security/tpotce
ou siga o TL;DR e pule esta seção.
Mude para a pasta tpotce/ : $ cd tpotce
Execute o instalador como não root: $ ./install.sh
:
Altere a porta SSH para tcp/64295
Desative o DNS Stub Listener para evitar conflitos de porta com honeypots
Defina o SELinux para o modo monitor
Defina o alvo do firewall da zona pública como ACEITAR
Adicione o repositório do Docker e instale o Docker
Instale pacotes recomendados
Remova pacotes conhecidos por causar problemas
Adicione o usuário atual ao grupo docker (permita a interação do docker sem sudo
)
Adicione aliases dps
e dpsw
( grc docker ps -a
, watch -c "grc --colour=on docker ps -a
)
Adicione aliases la
, ll
e ls
(por exa
, um comando ls
aprimorado)
Adicione mi
(para micro
, uma ótima alternativa para vi
e/ou nano
)
Exibir portas abertas no host (compare com as portas necessárias do T-Pot)
Adicione e ative tpot.service
em /etc/systemd/system
para que o T-Pot possa iniciar e parar automaticamente
Dependendo da distribuição Linux de sua escolha, o instalador irá:
Siga as instruções do instalador, você terá que inserir sua senha de usuário ( sudo
ou root
) pelo menos uma vez
Verifique as mensagens do instalador em busca de erros e portas abertas que possam causar conflitos de porta
Reinicializar: $ sudo reboot
Às vezes, é ótimo se você puder ativar uma instância do T-Pot no macOS ou no Windows, ou seja, para desenvolvimento, teste ou apenas 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 de que, por padrão, o firewall do macOS e do Windows bloqueia o acesso remoto, portanto, o teste é limitado ao host. Para produção é recomendado rodar o T-Pot no Linux.
Para colocar tudo em funcionamento, basta seguir estas etapas:
Instale o Docker Desktop para macOS ou Windows.
Clone o repositório GitHub: git clone https://github.com/telekom-security/tpotce
(no Windows, certifique-se de que o código foi verificado com LF
em vez de CRLF
!)
Acesse: cd ~/tpotce
Copie cp compose/mac_win.yml ./docker-compose.yml
Crie um WEB_USER
executando ~/tpotce/genuser.sh
(macOS) ou ~/tpotce/genuserwin.ps1
(Windows)
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
Você deve garantir por si mesmo que não haja conflitos de porta impedindo a inicialização do T-Pot.
Inicie o T-Pot: docker compose up
ou docker compose up -d
se desejar que o T-Pot seja executado em segundo plano.
Pare o T-Pot: CTRL-C
(se estava rodando em primeiro plano) e/ou docker compose down -v
para parar o T-Pot completamente.
Com o T-Pot Standard / HIVE todos os serviços, ferramentas, honeypots, etc. serão instalados em um único host que também serve como endpoint do HIVE. Certifique-se de atender aos requisitos do sistema. Você pode ajustar ~/tpotce/docker-compose.yml
ao seu caso de uso pessoal ou criar sua própria configuração usando ~/tpotce/compose/customizer.py
para uma experiência T-Pot personalizada de acordo com suas necessidades. Assim que a instalação for concluída, você pode prosseguir para o Primeiro Início.
A versão distribuída do T-Pot requer pelo menos dois hosts
o T-Pot HIVE , a instalação padrão do T-Pot (instale primeiro!),
e um T-Pot SENSOR , que hospedará apenas os honeypots, algumas ferramentas e transmitirá dados de log para o HIVE .
O SENSOR não será iniciado antes de finalizar a instalação do SENSOR conforme descrito em Implantação Distribuída.
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ê terá que inserir sua senha pelo menos uma vez.
Assim que a desinstalação for concluída, reinicie a máquina sudo reboot
Assim que o instalador do T-Pot for concluído com êxito, o sistema precisará ser reinicializado ( sudo reboot
). Depois de reinicializado, você pode fazer login no sistema usando o usuário configurado 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>
]
pass: [senha, chave ssh recomendada]
Você também pode fazer login no seu navegador e acessar a WebUI e as ferramentas do T-Pot: https://<your.ip>:64297
usuário: [ <WEB_USER>
]
senha: [senha]
Não há muito o que fazer a não ser fazer login e verificar via dps.sh
se todos os serviços e honeypots estão inicializando corretamente e fazer login no Kibana e/ou Geoip Attack Map para monitorar os ataques.
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 para ser acessível em vários IPs (ou seja, RFC 1918 e IP NAT público) e talvez até mesmo um nome de domínio resultará em um erro de conexão onde o certificado não pode ser validado como tal configuração precisa de um certificado com um nome comum e SANs (nome alternativo do assunto).
Antes de implantar qualquer sensor, certifique-se de ter planejado nomes de domínio e IPs adequadamente para evitar problemas com o certificado. Para obter mais detalhes, consulte a edição nº 1543.
Ajuste o exemplo à configuração do seu 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
O arquivo de configuração T-Pot ( .env
) permite desabilitar a verificação SSL para conexões logstash do SENSOR para o HIVE configurando LS_SSL_VERIFICATION=none
. Por motivos de segurança, isso é recomendado apenas para ambientes de laboratório ou de teste.
Se você optar por usar um certificado válido para o HIVE assinado por uma CA (ou seja, Let's Encrypt), o logstash e, portanto, o SENSOR , não deverá ter problemas para conectar e transmitir seus logs para o HIVE .
Depois de reinicializar o SENSOR conforme instruído pelo instalador, você pode continuar com a implantação distribuída fazendo login no HIVE e indo para a pasta cd ~/tpotce
. Certifique-se de ter entendido o Planejamento e os Certificados antes de continuar com a implantação real.
Se você ainda não tiver gerado uma chave SSH para fazer login com segurança no SENSOR e permitir que Ansible
execute um playbook no sensor:
Execute ssh-keygen
, siga as instruções e deixe a senha 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
Implante 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.
Conforme sugerido, siga as instruções para testar a conexão ssh -p '64295' '<your_user>@<SENSOR_IP>'
.
Depois que a chave for implantada com sucesso, execute ./deploy.sh
e siga as instruções.
Identifique o TPOT_HIVE_USER
ENV no SENSOR na configuração $HOME/tpotce/.env
(é uma string codificada em base64). Agora identifique a mesma string no LS_WEB_USER
ENV no HIVE na configuração $HOME/tpotce/.env
. Remova a string e reinicie o T-Pot.
Agora você pode excluir com segurança a máquina SENSOR.
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 back-end da comunidade. Este back-end da comunidade usa os dados para alimentar Sicherheitstacho. Você pode cancelar o envio removendo o # Ewsposter service
de ~/tpotce/docker-compose.yml
seguindo estas etapas:
Pare os serviços T-Pot: systemctl stop tpot
Abra ~/tpotce/docker-compose.yml
: micro ~/tpotce/docker-compose.yml
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
Inicie os serviços T-Pot: systemctl start tpot
É encorajado a não desabilitar o envio de dados, pois é o principal objetivo da abordagem comunitária - como todos vocês sabem, compartilhar é cuidar ?
Como Opt-In, é possível compartilhar dados T-Pot com corretores HPFEEDS terceirizados.
Siga as instruções aqui para interromper os serviços T-Pot e abrir ~/tpotce/docker-compose.yml
.
Role para baixo até a seção ewsposter
e ajuste as configurações do HPFEEDS de acordo com suas necessidades.
Se você precisar adicionar um certificado CA, adicione-o ~/tpotce/data/ews/conf
e defina EWS_HPFEEDS_TLSCERT=/data/ews/conf/<your_ca.crt>
.
Inicie os serviços T-Pot: systemctl start tpot
.
O acesso remoto ao seu host/T-Pot é possível com SSH (em tcp/64295
) e alguns serviços e ferramentas vêm com o T-Pot para facilitar muito algumas de suas tarefas de pesquisa.
De acordo com os tipos de usuário 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]
De acordo com os tipos de usuário, você pode abrir a página inicial do T-Pot em seu navegador via https://<your.ip>:64297
:
usuário: [ <WEB_USER>
]
senha: [senha]
Na página inicial do T-Pot basta clicar em Kibana
e você será encaminhado para Kibana. Você pode selecionar entre uma grande variedade de painéis e visualizações, todos adaptados aos honeypots suportados pelo T-Pot.
Na página inicial do T-Pot basta clicar no Attack Map
e você será encaminhado para o Mapa de Ataque. Como o Mapa de Ataque utiliza web sockets, pode ser necessário inserir novamente as credenciais <WEB_USER>
.
Na página inicial do T-Pot basta clicar em Cyberchef
e você será encaminhado para Cyberchef.
Na página inicial do T-Pot, basta clicar em Elasticvue
e você será encaminhado para o Elasticvue.
Na página inicial do T-Pot, basta clicar em Spiderfoot
e você será encaminhado para Spiderfoot.
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.
Antes da primeira inicialização, execute ~/tpotce/genuser.sh
ou configure o WEB_USER
manualmente conforme descrito aqui.
Em ~/tpotce/compose
você encontrará tudo o que precisa para ajustar a instalação do T-Pot Standard / HIVE:
customizer.py mac_win.yml mini.yml mobile.yml raspberry_showcase.yml sensor.yml standard.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
para criar um arquivo docker compose personalizado.
Para ativar um arquivo composto, siga estas etapas:
Pare o T-Pot com systemctl stop tpot
.
Copie o arquivo docker compose cp ~/tpotce/compose/<dockercompose.yml> ~/tpotce/docker-compose.yml
.
Inicie o T-Pot com systemctl start tpot
.
Para criar seu arquivo docker compose personalizado:
Vá para cd ~/tpotce/compose
.
Execute python3 customizer.py
.
O script irá guiá-lo através do 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á algum conflito de porta e notificará sobre os serviços conflitantes. Você pode então resolvê-los manualmente ajustando docker-compose-custom.yml
ou executando novamente o script.
Pare o T-Pot com systemctl stop tpot
.
Copie o arquivo docker compose personalizado: cp docker-compose-custom.yml ~/tpotce
e cd ~/tpotce
.
Verifique se tudo funciona executando docker-compose -f docker-compose-custom.yml up
. Em caso de erros, siga a especificação Docker Compose para mitigação. Provavelmente é apenas um conflito de porta que você pode ajustar editando o arquivo docker compose.
Se tudo funcionar bem, pressione CTRL-C
para parar os contêineres e execute docker-compose -f docker-compose-custom.yml down -v
.
Substitua o arquivo docker compose pelo novo e testado com sucesso arquivo docker compose personalizado mv ~/tpotce/docker-compose-custom.yml ~/tpotce/docker-compose.yml
.
Inicie o T-Pot com systemctl start tpot
.
O T-Pot foi projetado para ser de baixa manutenção. Como quase tudo é fornecido por meio de imagens do docker, basicamente não há nada que você precise fazer a não ser deixá-lo rodar. Atualizaremos as imagens do Docker regularmente para reduzir os riscos de comprometimento; no entanto, você deve ler esta seção com atenção.
Caso uma atualização falhe, abrir um problema ou uma discussão ajudará a melhorar as coisas no futuro, mas a solução oferecida será sempre realizar uma nova instalação , pois simplesmente não podemos fornecer nenhum suporte para dados perdidos!
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 sistema operacional e garantir que as atualizações sejam instaladas regularmente pelo sistema operacional. Por padrão ( ~/tpotce/.env
) TPOT_PULL_POLICY=always
garantirá que a cada início do T-Pot o docker verificará se há novas imagens do docker e fará o download delas antes de criar os contêineres.
As versões do T-Pot são oferecidas através do GitHub e podem ser obtidas usando ~/tpotce/update.sh
.
Se você fez alguma alteração relevante 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á ...
sobrescrever impiedosamente as alterações locais para ficarem sincronizadas com o branch master do T-Pot
crie um backup completo da pasta ~/tpotce
atualize todos os arquivos em ~/tpotce
para estarem sincronizados com o branch master do T-Pot
restaure seu ews.cfg
personalizado de ~/tpotce/data/ews/conf
e a configuração do T-Pot ( ~/tpotce/.env
).
Por padrão, o T-Pot adicionará uma reinicialização diária, incluindo algumas limpezas. 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"'
Os seguintes problemas são conhecidos, basta seguir as etapas descritas para resolvê-los.
Há algum tempo, o Docker introduziu limites de taxa de download. Se você baixa frequentemente imagens do Docker por meio de um IP único ou compartilhado, o endereço IP pode ter esgotado o limite de taxa de download do Docker. Faça login em sua conta Docker para estender o limite de taxa.
sudo su - docker login
O T-Pot foi projetado para funcionar apenas em máquinas com uma única NIC. O T-Pot tentará capturar a interface com a rota padrão, porém não é garantido que isso sempre terá sucesso. Na melhor das hipóteses, use o T-Pot em máquinas com apenas uma única NIC.
O serviço T-Pot inicia e para automaticamente em cada reinicialização (o que ocorre uma vez por dia conforme configuração em sudo crontab -l
durante a instalação).
Se você deseja iniciar manualmente o serviço T-Pot você pode fazê-lo via systemctl start tpot
e observar via dpsw
a inicialização dos containers.
O serviço T-Pot inicia e para automaticamente em cada reinicialização (o que ocorre uma vez por dia conforme configuração em sudo crontab -l
durante a instalação).
Se você deseja interromper manualmente o serviço T-Pot, pode fazê-lo via systemctl stop tpot
e observar via dpsw
o desligamento dos contêineres.
Todos os arquivos de log persistentes dos honeypots, ferramentas e serviços relacionados ao T-Pot são armazenados em ~/tpotce/data
. Isso inclui artefatos coletados que não são transmitidos ao Elastic Stack.
Todos os dados de registro armazenados na pasta de dados T-Pot serão mantidos por 30 dias por padrão.
Os índices do Elasticsearch são tratados 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 gerenciado").
Por padrão, a Política de Ciclo de Vida do Índice tpot
mantém os índices por 30 dias. Isso oferece um bom equilíbrio entre armazenamento e velocidade. No entanto, você pode ajustar a política às suas necessidades.
Todos os dados de log armazenados na pasta de dados T-Pot (exceto os índices Elasticsearch, é claro) podem ser apagados executando clean.sh
. Às vezes, as coisas podem quebrar sem possibilidade de reparo e nunca foi tão fácil redefinir um T-Pot para os padrões de fábrica (certifique-se de inserir cd ~/tpotce
).
Pare o T-Pot usando systemctl stop tpot
.
Mova/faça backup da pasta ~/tpotce/data
para um local seguro (isso é opcional, apenas por precaução).
Exclua a pasta ~/tpotce/data
usando sudo rm -rf ~/tpotce/data
.
Redefina o T-Pot para o último commit obtido:
cd ~/tpotce/ git reset --hard
Agora você pode executar ~/tpotce/install.sh
.
Você pode mostrar todos os contêineres relevantes do T-Pot executando dps
ou dpsw [interval]
. O interval (s)
serão executados novamente dps.sh
periodicamente.
Blackhole executará o T-Pot em modo furtivo, sem visitas permanentes de scanners conhecidos publicamente, reduzindo assim a possibilidade de exposição. Embora este seja sempre um jogo de gato e rato, o recurso blackhole é o roteamento nulo de todas as solicitações de scanners em massa conhecidos, enquanto ainda captura os eventos por meio do Suricata.
O recurso é ativado configurando TPOT_BLACKHOLE=DISABLED
em ~/tpotce/.env
e, em seguida, execute systemctl stop tpot
e systemctl start tpot
ou sudo reboot
.
A ativação desse recurso reduzirá drasticamente a visibilidade dos invasores e, consequentemente, resultará em menos atividade. No entanto, como já mencionado, não é uma garantia de ser completamente furtivo nem impedirá a impressão digital de alguns serviços de honeypot.
Nginx (T-Pot WebUI) permite adicionar quantas contas <WEB_USER>
desejar (de acordo com os tipos de usuário).
Para adicionar um novo usuário, execute ~/tpotce/genuser.sh
.
Para remover usuários, abra ~/tpotce/.env
, localize WEB_USER
e remova a string base64 correspondente (para decodificar: echo <base64_string> | base64 -d
, ou abra o CyberChef e carregue a receita "From Base64").
Para que as alterações tenham efeito, você precisa reiniciar o T-Pot usando systemctl stop tpot
e systemctl start tpot
ou sudo reboot
.
Algumas atualizações do T-Pot exigirão que você atualize os objetos Kibana. Seja para oferecer suporte a novos honeypots ou para melhorar painéis ou visualizações existentes. Certifique-se de exportar primeiro para não perder nenhum dos ajustes.
Vá para Kibana
Clique em "Gerenciamento de pilha"
Clique em "Objetos salvos"
Clique em "Exportar <nº> objetos"
Clique em "Exportar tudo". Isso exportará um arquivo NDJSON com todos os seus objetos. Sempre execute uma exportação completa para garantir que todas as referências sejam incluídas.
Baixe o arquivo NDJSON e descompacte-o.
Vá para Kibana
Clique em "Gerenciamento de pilha"
Clique em "Objetos salvos"
Clique em “Importar” e deixe os padrões (verificar objetos existentes e substituir conflitos automaticamente) se você não fez alterações pessoais nos objetos Kibana.
Procure o arquivo NDJSON Quando perguntado: "Se algum dos objetos já existir, deseja substituí-lo automaticamente?" você responde com "Sim, substituir tudo".
Geralmente o T-Pot é oferecido como está, sem qualquer compromisso de suporte. Questões e discussões podem ser abertas, mas esteja preparado para incluir informações básicas necessárias, para que a comunidade possa ajudar.
Verifique se seus contêineres estão funcionando corretamente: dps
Verifique se os recursos do seu sistema não estão esgotados: htop
, docker stats
Verifique se há um conflito de porta:
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 <container_name>
Verifique o log tpotinit
: cat ~/tpotce/data/tpotinit.log
O Elastic Stack precisa de RAM, especificamente logstash
e elasticsearch
. Se a pilha elástica não estiver disponível, não receber nenhum registro ou simplesmente continuar travando, provavelmente é um problema de RAM ou armazenamento.
Enquanto o T -POT continua tentando reiniciar os serviços / contêineres executam docker logs -f <container_name>
( logstash
ou elasticsearch
) e verifique se existem avisos ou falhas envolvendo RAM.
As falhas de armazenamento podem ser identificadas mais facilmente via htop
.
O T-POT é fornecido como código aberto sem qualquer compromisso com relação ao suporte (consulte o aviso).
Se você é pesquisador de segurança e deseja relatar com responsabilidade um problema, entre em contato com nosso cert.
Por favor, relate problemas (erros) em nossos problemas do Github, mas solucione o problema primeiro. Questões que não fornecem informações para resolver o erro serão fechadas ou convertidas 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 apenas uma pesquisa.
Perguntas gerais, idéias, shows & Tell etc. podem ser abordadas em nossas discussões no Github.
Use a função de pesquisa, é possível que uma discussão semelhante já tenha sido aberta, com uma resposta a apenas uma pesquisa.
O software em que o T-POT é construído usa as seguintes licenças.
GPLV2: Conpot, Dionaea, Honeytrap, Suricata
GPLV3: Adbhoney, Elasticpot, Ewsoster, Log4pot, Fatt, Heralding, Iphoney, Redishoneypot, Sentrypeer, Snue, Tanner
Licença Apache 2: Cyberchef, Dicompot, Elasticsearch, Logstash, Kibana, Docker
MIT Licença: Autoheal, Ciscoasa, DDospost, Elasticvue, Glutton, Hellpot, Maltrail
UNICENSE: Endlessh
Outro: Citrixhoneypot, Cowrie, Mailoney, Licença de Elastic, Wordpot
AGPL-3.0: Honeypots
Domínio Público (CC): Harvard DataSverse
Sem o código aberto e a comunidade de desenvolvimento de que estamos orgulhosos de fazer parte, o T-POT não teria sido possível! Nossos agradecimentos são estendidos, mas não se limitam às seguintes pessoas e organizações:
Adbhoney
Ciscoasa
CitrixHoneypot
Conpot
cauri
DDosPot
dicompot
Dionaea
janela de encaixe
Elasticpot
Elasticsearch
ElasticVue
Endlessh
EWSPOSTER
gordo
glutão
Hellpot
Heralding
Honeypots
Honeytrap
IPHONEY
Kibana
Logstash
log4pot
Mailoney
Maltrail
Medpot
p0f
Redishoneypot
Sentypeer
Spiderfoot
laço
curtidor
Suricata
WordPot
As seguintes empresas e organizações
janela de encaixe
Elastic.io
Projeto HoneyNet
... E, claro, você por se juntar à comunidade!
Obrigado por jogar?
Um dos maiores feedback que recebemos até agora é por um dos desenvolvedores da Conpot:
"[...] eu recomendo o T-Pot que é ... não é exatamente uma faca do exército suíço. É mais como um soldado suíço do exército, equipado com uma faca do exército suíço. Dentro de um tanque. Um tanque suíço. [ ...] "
E de @robcowart (Criador do Elastiflow):
"O #TPOT é uma das soluções mais bem montadas no Honeypot. É essencial para quem deseja analisar e entender o comportamento de atores maliciosos e a ameaça que eles representam para sua organização".