Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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
SSHintel — Honeypot SSH autossuficiente para capturar interações de atacantes e transformá-las em inteligência de segurança estruturada. | Kitploit
Ferramentas/GitHubGitHub/sonitbahl/sshintel
Segurança de RedeInteligência de AmeaçasDetecção de IntrusãoResposta a IncidentesAnálise de Logs
GitHubsonitbahl/sshintel

SSHintel

Honeypot SSH autossuficiente para capturar interações de atacantes e transformá-las em inteligência de segurança estruturada.

Ver Repositório
369há 8 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

SSHintel — Honeypot SSH Leve

License: MIT Python Last Commit Repo Size

SSHintel é um honeypot SSH leve construído com Python e Paramiko. Ele simula um shell Linux falso para registrar tentativas de acesso não autorizado, capturar credenciais e analisar o comportamento de atacantes em um ambiente controlado.


🔧 Recursos

  • Registra tentativas de login SSH com IP, nome de usuário e senha
  • Fornece um shell Linux simulado (um ambiente falso, em memória)
  • Suporta um amplo conjunto de comandos de reconhecimento e navegação (ls, cd, pwd, cat, echo, grep, find, tree, head, tail, wc, stat, ps, df, free, env, id, whoami, etc.)
  • Modo --tarpit opcional para desacelerar atacantes com saída atrasada
  • Sistema de arquivos falso isolado por sessão, com suporte à criação e leitura de arquivos
  • Painel web local para visualizar a telemetria de segurança capturada (sessões, comandos, tentativas de autenticação, principais atacantes)
  • Visualização de investigação de sessão — selecione qualquer sessão e reconstrua a linha do tempo completa do ataque cronologicamente, incluindo IP de origem, resultado da autenticação, cada comando executado com seu diretório de trabalho e duração da sessão
  • Tudo é simulado — os comandos nunca são executados no host, nunca acessam o sistema de arquivos real e não fazem nenhuma solicitação de rede.

O SSHintel não é um shell Bash/Linux completo. Ele simula um subconjunto plausível de comandos comuns para coletar telemetria de atacantes. Os comandos são despachados por um registro leve; adicionar um comando significa adicionar uma pequena função de manipulador.


🛠️ Configuração

1. 📦 Instalar Dependências

pip install -r requirements.txt

Nota: A chave de host SSH é gerada automaticamente na primeira execução. Nenhuma geração manual de chave é necessária.


🚀 Executando o Honeypot

Execute o honeypot com uma porta, nome de usuário e senha específicos:

python3 run.py serve --port 2222 --username user1 --password pass123

A porta padrão é 2222 e o host é 0.0.0.0.

O honeypot gera automaticamente uma chave de host SSH em static/server.key na primeira execução se ela não existir. Nenhuma geração manual de chave é necessária.

Para habilitar o modo tarpit:

python3 run.py serve --port 2222 --username user1 --password pass123 --tarpit

Para desabilitar a telemetria SQLite (somente JSONL):

python3 run.py serve --port 2222 --username user1 --password pass123 --no-db

🛡️ Limites de conexão e timeouts

O SSHintel protege contra o esgotamento de recursos causado por muitas conexões simultâneas ou conexões mantidas ativas indefinidamente. Eles são configuráveis via CLI:

FlagPadrãoFinalidade
--max-connections50Máximo de conexões ativas simultâneas; conexões extras são rejeitadas e registradas como um evento connection_rejected
--auth-timeout60 (s)Tempo permitido para concluir o handshake/autenticação SSH; clientes travados são desconectados
--session-idle-timeout300 (s)Timeout de inatividade para um shell autenticado; uma sessão ociosa é encerrada, mas um atacante digitando ativamente nunca é morto

Exemplo:

python3 run.py serve --port 2222 --username user1 --password pass123 \
  --max-connections 25 --auth-timeout 30 --session-idle-timeout 300

Quando muitas conexões estão abertas, a conexão extra é fechada imediatamente e um evento de segurança connection_rejected (com reason: connection_limit) é gravado no log JSONL. Uma autenticação travada é registrada como uma desconexão com reason: auth_timeout; um shell ocioso termina com reason: idle_timeout.

O modo tarpit envia intencionalmente a saída lentamente para manter um atacante engajado, portanto o loop do banner tarpit não está sujeito ao timeout de inatividade — mas as sessões tarpit contam para o limite de conexões.


📊 Painel

O SSHintel inclui um painel web local que visualiza a telemetria de segurança armazenada no SQLite.

Iniciar o painel

python3 run.py dashboard

Em seguida, abra http://localhost:5000 no seu navegador.

O painel lê do banco de dados SQLite em data/sshintel.db por padrão. Inicie o honeypot primeiro para que a telemetria seja capturada e, em seguida, inicie o painel para vê-lo se popular.

O que ele exibe

  • Cartões KPI — total de sessões, IPs de origem únicos, tentativas de autenticação, autenticações bem-sucedidas/falhas e comandos executados
  • Gráfico de atividade — conexões ao longo do tempo, agrupadas por hora
  • Principais comandos — os comandos de atacante executados com mais frequência
  • Nomes de usuário visados — quais nomes de usuário os atacantes estão tentando
  • Sessões recentes — clique em qualquer ID de sessão para investigá-la
  • Atividade recente — os eventos de telemetria mais recentes em uma tabela pesquisável

Investigação de sessão

Clique em um ID de sessão (ou navegue até /session/<session_id>) para abrir a visualização de investigação de sessão, que reconstrói um único ataque cronologicamente:

  • Resumo da sessão — IP de origem, nome de usuário, horários de início/término, duração, resultado da autenticação, motivo da desconexão
  • Linha do tempo do ataque — cada evento (conexão, tentativas de autenticação, comandos, desconexão) em ordem cronológica
  • Sequência de comandos — uma visualização compacta de $ comando de tudo o que o atacante digitou, com diretórios de trabalho

Fluxo de trabalho de exemplo

# Terminal 1: iniciar o honeypot
python3 run.py serve --port 2222 --username user1 --password pass123

# Terminal 2: iniciar o painel
python3 run.py dashboard

# Terminal 3: simular um atacante
ssh user1@localhost -p 2222
# (execute alguns comandos e depois saia)

Em seguida, abra http://localhost:5000 para inspecionar a atividade capturada.

O painel suporta telemetria ao vivo — ele consulta o honeypot a cada 2 segundos e atualiza automaticamente. Novas sessões, comandos e eventos aparecem em tempo real sem atualizar a página. Um indicador ao vivo (● Live) mostra o status da conexão.


🔐 Testando de Outro Terminal

Abra um segundo terminal e tente conectar:

ssh user1@localhost -p 2222

Se as credenciais corresponderem, você será colocado no shell emulado.


🚑 Opcional: Limpar Hosts Conhecidos (Ao Reconectar)

Para remover impressões digitais SSH obsoletas:

notepad "%USERPROFILE%\.ssh\known_hosts"

Exclua a linha relevante contendo localhost ou o IP do honeypot.


📝 Informações Registradas

  • Credenciais são registradas no creds_logger
  • Comandos de shell são registrados via funnel_logger
  • Eventos de segurança estruturados são gravados em log_files/events.jsonl como JSON Lines (JSONL) — um objeto JSON válido por linha

Cada evento JSONL inclui um timestamp UTC ISO-8601, um event_type, um session_id único e o source_ip. Conexão, tentativas/resultados de autenticação, execução de comandos, ativação do tarpit e desconexões são todos registrados como eventos estruturados.

Cada conexão SSH recebida é rastreada como uma sessão independente com seu próprio session_id. Uma sessão registra o IP de origem, horários de conexão/desconexão, o resultado da autenticação e a duração da conexão, e cada evento gerado dentro dessa conexão carrega o mesmo session_id (para que tentativas de autenticação, comandos e desconexões possam ser vinculados a uma única conexão). As sessões são isoladas por conexão — nenhum estado é compartilhado entre clientes simultâneos.

Baixar ferramenta