Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
SSHintel — Self-contained SSH honeypot per catturare le interazioni degli attaccanti e trasformarle in intelligence di sicurezza strutturata. | Kitploit
Strumenti/GitHubGitHub/sonitbahl/sshintel
Sicurezza di ReteThreat IntelligenceRilevamento IntrusioniRisposta agli IncidentiAnalisi dei Log
GitHubsonitbahl/sshintel

SSHintel

Self-contained SSH honeypot per catturare le interazioni degli attaccanti e trasformarle in intelligence di sicurezza strutturata.

Vedi Repository
3698 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

SSHintel — Honeypot SSH leggero

License: MIT Python Last Commit Repo Size

SSHintel è un honeypot SSH leggero realizzato con Python e Paramiko. Simula una shell Linux fittizia per registrare tentativi di accesso non autorizzati, catturare credenziali e analizzare il comportamento degli attaccanti in un ambiente controllato.


🔧 Funzionalità

  • Registra i tentativi di accesso SSH con IP, nome utente e password
  • Fornisce una shell Linux simulata (un ambiente fittizio in memoria)
  • Supporta un ampio set di comandi di ricognizione e navigazione (ls, cd, pwd, cat, echo, grep, find, tree, head, tail, wc, stat, ps, df, free, env, id, whoami, ecc.)
  • Modalità --tarpit opzionale per rallentare gli attaccanti con output ritardato
  • Filesystem fittizio isolato per sessione con supporto alla creazione e lettura di file
  • Dashboard web locale per visualizzare la telemetria di sicurezza catturata (sessioni, comandi, tentativi di autenticazione, principali attaccanti)
  • Vista di investigazione sessione — seleziona qualsiasi sessione e ricostruisci cronologicamente l'intera timeline dell'attacco, inclusi IP sorgente, esito dell'autenticazione, ogni comando eseguito con la relativa directory di lavoro e durata della sessione
  • Tutto è simulato — i comandi non vengono mai eseguiti sull'host, non accedono mai al filesystem reale e non effettuano richieste di rete.

SSHintel non è una shell Bash/Linux completa. Simula un sottoinsieme credibile di comandi comuni per raccogliere telemetria sugli attaccanti. I comandi vengono gestiti da un registro leggero; aggiungere un comando significa aggiungere una piccola funzione handler.


🛠️ Configurazione

1. 📦 Installare le dipendenze

pip install -r requirements.txt

Nota: La chiave host SSH viene generata automaticamente al primo avvio. Nessuna generazione manuale della chiave necessaria.


🚀 Esecuzione dell'Honeypot

Esegui l'honeypot con una porta, un nome utente e una password specifici:

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

La porta predefinita è 2222 e l'host è 0.0.0.0.

L'honeypot genera automaticamente una chiave host SSH in static/server.key al primo avvio se non esiste già. Nessuna generazione manuale della chiave necessaria.

Per abilitare la modalità tarpit:

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

Per disabilitare la telemetria SQLite (solo JSONL):

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

🛡️ Limiti di connessione e timeout

SSHintel protegge dall'esaurimento delle risorse dovuto a molte connessioni simultanee o connessioni mantenute attive indefinitamente. Questi parametri sono configurabili tramite CLI:

FlagPredefinitoScopo
--max-connections50Numero massimo di connessioni attive simultanee; le connessioni extra vengono rifiutate e registrate come evento connection_rejected
--auth-timeout60 (s)Tempo consentito per completare l'handshake/autenticazione SSH; i client bloccati vengono disconnessi
--session-idle-timeout300 (s)Timeout di inattività per una shell autenticata; una sessione inattiva viene terminata, ma un attaccante che digita attivamente non viene mai interrotto

Esempio:

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

Quando ci sono troppe connessioni aperte, la connessione extra viene chiusa immediatamente e un evento di sicurezza connection_rejected (con reason: connection_limit) viene scritto nel log JSONL. Un'autenticazione bloccata viene registrata come disconnessione con reason: auth_timeout; una shell inattiva termina con reason: idle_timeout.

La modalità tarpit invia intenzionalmente l'output lentamente per mantenere impegnato un attaccante, quindi il ciclo del banner tarpit non è soggetto al timeout di inattività — ma le sessioni tarpit contano ai fini del limite di connessioni.


📊 Dashboard

SSHintel include una dashboard web locale che visualizza la telemetria di sicurezza memorizzata in SQLite.

Avvia la dashboard

python3 run.py dashboard

Poi apri http://localhost:5000 nel tuo browser.

La dashboard legge dal database SQLite in data/sshintel.db per impostazione predefinita. Avvia prima l'honeypot così la telemetria viene catturata, poi avvia la dashboard per vederla popolarsi.

Cosa visualizza

  • Card KPI — sessioni totali, IP sorgente unici, tentativi di autenticazione, autenticazioni riuscite/fallite e comandi eseguiti
  • Grafico attività — connessioni nel tempo, raggruppate per ora
  • Comandi principali — i comandi attaccanti eseguiti più frequentemente
  • Nomi utente presi di mira — quali nomi utente stanno tentando gli attaccanti
  • Sessioni recenti — clicca su qualsiasi ID sessione per investigarla
  • Attività recente — gli ultimi eventi di telemetria in una tabella ricercabile

Investigazione sessione

Clicca su un ID sessione (o naviga su /session/<session_id>) per aprire la vista di investigazione sessione, che ricostruisce cronologicamente un singolo attacco:

  • Riepilogo sessione — IP sorgente, nome utente, orari di inizio/fine, durata, risultato dell'autenticazione, motivo della disconnessione
  • Timeline dell'attacco — ogni evento (connessione, tentativi di autenticazione, comandi, disconnessione) in ordine cronologico
  • Sequenza comandi — una vista compatta $ comando di tutto ciò che l'attaccante ha digitato, con le directory di lavoro

Flusso di lavoro di esempio

# Terminale 1: avvia l'honeypot
python3 run.py serve --port 2222 --username user1 --password pass123

# Terminale 2: avvia la dashboard
python3 run.py dashboard

# Terminale 3: simula un attaccante
ssh user1@localhost -p 2222
# (esegui alcuni comandi, poi esci)

Poi apri http://localhost:5000 per ispezionare l'attività catturata.

La dashboard supporta la telemetria live — interroga l'honeypot ogni 2 secondi e si aggiorna automaticamente. Nuove sessioni, comandi ed eventi appaiono in tempo reale senza ricaricare la pagina. Un indicatore live (● Live) mostra lo stato della connessione.


🔐 Test da un Altro Terminale

Apri un secondo terminale e prova a connetterti:

ssh user1@localhost -p 2222

Se le credenziali corrispondono, verrai inserito nella shell emulata.


🚑 Opzionale: Cancella Host Noti (Se ti Riconnetti)

Per rimuovere impronte SSH obsolete:

notepad "%USERPROFILE%\.ssh\known_hosts"

Elimina la riga pertinente che contiene localhost o l'IP dell'honeypot.


📝 Informazioni Registrate

  • Le credenziali vengono registrate in creds_logger
  • I comandi della shell vengono registrati tramite funnel_logger
  • Gli eventi di sicurezza strutturati vengono scritti in log_files/events.jsonl come JSON Lines (JSONL) — un oggetto JSON valido per riga

Ogni evento JSONL include un timestamp UTC ISO-8601, un event_type, un session_id univoco e l'source_ip. Connessioni, tentativi/risultati di autenticazione, esecuzione di comandi, attivazione tarpit e disconnessioni vengono tutti registrati come eventi strutturati.

Scarica lo strumento