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.

FeedsContatoPrivacidade© 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
378há 2 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

Licença: MIT Python Último Commit Tamanho do Repositório

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 opcional --tarpit para atrasar atacantes com saída retardada
  • 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)
  • Visão de investigação de sessão — selecione qualquer sessão e reconstrua a linha do tempo completa do ataque em ordem cronológica, incluindo IP de origem, resultado da autenticação, cada comando executado com seu diretório de trabalho e a 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 requisições de rede.

O SSHintel não é um shell Bash/Linux completo. Ele simula um subconjunto verossímil 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. Não é necessária a geração manual de chaves.


🚀 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, caso ela não exista. Não é necessária a geração manual da chave.

Para habilitar o modo tarpit:

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

Para desativar a telemetria do SQLite (apenas JSONL):

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

Arquivos de configuração e variáveis de ambiente

As configurações do sensor seguem CLI > ambiente > arquivo de configuração > padrões. Apenas flags de CLI fornecidas explicitamente substituem outras fontes. Isso se aplica a serve; os comandos de dashboard/consulta mantêm suas próprias configurações de CLI.

No Python 3.11+:

cp sshintel.toml.example sshintel.toml
chmod 600 sshintel.toml
python3 run.py serve

No Python 3.8/3.10, use o equivalente JSON sem dependências:

cp sshintel.json.example sshintel.json
chmod 600 sshintel.json
python3 run.py serve

Edite o arquivo copiado antes da implantação. O TOML requer Python 3.11+; versões mais antigas falham com uma instrução clara para usar JSON. Sem um arquivo explícito, o SSHintel procura por sshintel.toml, depois sshintel.json no diretório atual. Use serve --config /path/to/settings.json ou HONEYPOT_CONFIG para selecionar outro arquivo (--config tem precedência). Arquivos explícitos ausentes, arquivos malformados, chaves desconhecidas e valores inválidos falham antes de o servidor ou o banco de dados iniciar. Os caminhos de arquivo dentro da configuração são relativos ao diretório de trabalho do processo, não ao arquivo de configuração.

Chave do arquivoVariável de ambientePadrão
hostHONEYPOT_HOST0.0.0.0
portHONEYPOT_PORT (alias legado: PORT)2222
usernameHONEYPOT_USERNAMEuser1
passwordHONEYPOT_PASSWORDpass123
tarpitHONEYPOT_TARPITfalse
tarpit_max_secondsHONEYPOT_TARPIT_MAX_SECONDS120
max_connectionsHONEYPOT_MAX_CONNECTIONS50
auth_timeoutHONEYPOT_AUTH_TIMEOUT60
session_idle_timeoutHONEYPOT_SESSION_IDLE_TIMEOUT300
sensor_idHONEYPOT_SENSOR_IDnão definido
db_pathHONEYPOT_DB_PATHdata/sshintel.db
no_dbHONEYPOT_NO_DBfalse
fetch_payloadsHONEYPOT_FETCH_PAYLOADSfalse (reservado)

Booleanos de ambiente aceitam true/false, 1/0, yes/no e on/off. HONEYPOT_PORT tem precedência sobre PORT. As portas devem estar entre 1–65535 e os limites e timeouts devem ser inteiros positivos. Use --no-tarpit, --db-enabled ou --no-fetch-payloads para substituir uma configuração verdadeira de menor prioridade. Os caminhos do banco de dados usam a flag de CLI --db existente. A busca de payloads não está implementada: habilitar fetch_payloads é rejeitado em vez de silenciosamente ignorado.

Arquivos locais sshintel.toml/sshintel.json são ignorados pelo Git e excluídos dos builds Docker porque podem conter credenciais. Monte um arquivo de configuração como somente leitura em um contêiner. O Docker consome variáveis de ambiente diretamente (sem interpolação de shell nas credenciais); seus padrões ENV existentes têm precedência sobre um arquivo montado. Substitua essas variáveis conforme necessário ou use flags de CLI explícitas.

🛡️ Limites de conexão e timeouts

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

FlagPadrãoPropósito
--max-connections50Número má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 é encerrado

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 saída intencionalmente de forma lenta para manter o atacante envolvido, portanto o loop do banner do tarpit não está sujeito ao timeout de inatividade — mas as sessões de tarpit contam para o limite de conexões.


📊 Dashboard

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

Iniciar o dashboard

python3 run.py dashboard

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

O dashboard lê do banco de dados SQLite em data/sshintel.db por padrão. Inicie o honeypot primeiro para que a telemetria seja capturada, depois inicie o dashboard para acompanhá-la sendo preenchida.

O que ele exibe

Baixar ferramenta