
Implementazione di honeypot SSH a interazione media che cattura traffico di forza bruta reale, drop di malware e comportamento degli attaccanti. Include registrazione di sessioni TTY, raccolta di credenziali e intelligence sulle minacce incrociata con 159 fonti.
Un honeypot Cowrie a interazione media distribuito su un VPS Linux pubblico a noleggio, progettato per attrarre, registrare e analizzare il traffico SSH brute-force reale. In una finestra di acquisizione di 8 giorni il sensore ha registrato 37.477 sessioni da 1.582 IP attaccanti unici, catturando 794 download di malware — ogni osservazione incrociata con 159 fonti pubbliche del settore e accademiche.
| 📊 Live Report — HTML interattivo | 📜 Logs/ — log Cowrie giornalieri | 📸 ScreenShots/ — catture di sessioni |
| 🏗️ docs/ — diagramma architetturale | 🗂️ Reports/ — sorgente del report | 🐛 Apri l'analisi renderizzata |
L'honeypot risiede su un VPS Linux a noleggio. Il tcp/22 pubblico su internet viene reindirizzato silenziosamente via NAT a Cowrie sulla tcp/2222, mentre il demone OpenSSH reale viene spostato su una porta di management non standard (tcp/49222) raggiungibile solo con una chiave privata. Per un attaccante la macchina appare come un vulnerabile server Debian sulla porta 22; per l'amministratore è completamente raggiungibile su una porta separata e silenziosa.

Due corsie attraverso la stessa macchina: la corsia attaccante (superiore) attraversa iptables NAT e finisce in Cowrie, che scrive nei log TTY e in una cartella di quarantena. La corsia amministratore (inferiore) passa direttamente attraverso iptables al demone OpenSSH reale sulla tcp/49222. I due percorsi non si intersecano mai.
File sorgente vettoriale:
docs/architecture.svg

Cattura live: più IP attaccanti che colpiscono simultaneamente la tcp/2222 — CONNECT (ciano), LOGIN SUCCESS / FAILED e le coppie di credenziali tentate. Stesso minuto, campagne multiple.

Sequenza completa di comandi post-login di un attaccante — chattr -ia ~/.ssh, l'impianto della chiave mdrfckr, cat /proc/cpuinfo, uname, lscpu, crontab -l. Catturato letteralmente con timestamp al millisecondo e un ID di sessione.

Vista aggregata di molte sessioni: connessioni (ciano), login falliti (rosso), login riusciti (verde), comandi (giallo), trasferimenti file (viola). Il pattern ripetuto dell'impianto della chiave mdrfckr + chattr -ia .ssh è visibile attraverso IP attaccanti distinti — stessa campagna, bot diversi.

Il caratteristico drop del cryptominer RedTail XMRig: sei file in una sessione da 213.209.159.158 — installer clean.sh e setup.sh, più quattro binari ELF specifici per architettura (redtail.arm7, redtail.arm8, redtail.i686, redtail.x86_64) che coprono router, IoT, x86 legacy e server in un unico drop.
ls, wget, cat /proc/cpuinfo registrato con timestamp ad alta risoluzionewget / curl vengono intercettati e messi in quarantena in downloads/🌍 Regioni di origine principali: Hong Kong (Alibaba Cloud) · Cina (ChinaNet) · Bulgaria (IT7 Networks) · Russia (Aeza Group, sanzionata)
🐛 Campagne principali identificate: Cryptominer RedTail XMRig · famiglia di impianti di chiavi SSH mdrfckr · reclutatori IoT derivati da Mirai · firma SSH-spreader 3245gs5662d34
Analisi completa con grafici interattivi, mappatura MITRE ATT&CK e discussione con fonti per ogni risultato → Apri il report live.
cowriesudo useradd -m -s /bin/bash cowrie
sudo passwd -l cowrie
su - cowrie
git clone https://github.com/cowrie/cowrie.git
cd cowrie
python3 -m venv cowrie-env
source cowrie-env/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
sshd dalla porta 22 (prima di aggiungere qualsiasi regola NAT)sudo sed -i 's/^#\?Port .*/Port 49222/' /etc/ssh/sshd_config
sudo systemctl restart sshd
⚠️ Verifica da un secondo terminale di poter ancora accedere sulla porta 49222 prima di continuare.
sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 2222
sudo iptables-save | sudo tee /etc/iptables/rules.v4
bin/cowrie start
SSH-Honeypot-Research/
├── README.md ← sei qui
├── docs/
│ ├── architecture.png ← diagramma architetturale (renderizzato)
│ └── architecture.svg ← diagramma architetturale (sorgente vettoriale)
├── Logs/ ← log Cowrie giornalieri (cowrie_YYYY-MM-DD.log)
│ ├── cowrie_2026-05-08.log
│ ├── cowrie_2026-05-09.log
│ └── ... (8 giorni in totale)
├── Reports/
│ └── honeypot_report.html ← report interattivo completo
└── ScreenShots/ ← catture di sessioni, snapshot dei log, payload
├── live session.png ← flusso CONNECT/LOGIN multi-IP
├── CMD1.png · CMD2.png ← sequenze di comandi post-login catturate
├── sh1.png · sh2.png ← viste aggregate dei log giornalieri
└── RedTail Payload.png ← drop caratteristico del cryptominer a 4 architetture
Incrociata con 159 fonti del settore e accademiche — l'elenco completo annotato si trova nella sezione Riferimenti del report live. Ancore accademiche chiave:
Questo honeypot è stato distribuito esclusivamente per scopi di ricerca difensiva. Tutti gli artefatti catturati (IP, payload, credenziali) sono osservati passivamente da traffico non richiesto in entrata. L'honeypot non avvia scansioni, non reagisce e non ospita alcun servizio oltre al listener Cowrie in sandbox. Riutilizza la configurazione in modo responsabile e nel rispetto delle leggi applicabili.
Costruito con Cowrie. 🛠️
| Livello | Cosa fa | Perché |
|---|
Utente non privilegiato cowrie | L'honeypot viene eseguito come utente di sistema senza sudo, senza shell host | Una compromissione del sandbox nel caso peggiore non ottiene alcun accesso all'host |
| Ambiente virtuale Python | Albero delle dipendenze isolato e bloccato (Twisted, cryptography, ecc.) | Nessun conflitto con il Python di sistema; smontaggio e ricostruzione puliti |
| Filesystem simulato | Le scritture dell'attaccante vanno a un overlay Cowrie effimero | Il disco reale non viene mai toccato, nemmeno in sessioni lunghe |
| Reindirizzamento NAT iptables | Una regola PREROUTING riscrive il tcp/22 in ingresso verso tcp/2222 | Cowrie si lega a una porta alta (nessun root richiesto); l'inganno rimane invisibile |
| Migrazione della porta di management | Il vero sshd spostato su tcp/49222, autenticazione solo con chiave | Il rumore brute-force contro il demone reale scende a zero |
| Metrica | Valore |
|---|
| Sessioni totali | 37.477 |
| IP attaccanti unici | 1.582 |
| Login falliti | 14.968 |
| Login riusciti con shell | 22.720 |
| Comandi shell catturati | 21.968 |
| Download di malware | 794 |
| Fonti esterne incrociate | 159 |