Fange Angreifer ein: Dein eigener Honeypot mit Debian und Bash
In einer Welt, in der Cyberangriffe alltäglich sind, ist es entscheidend, die Taktiken von Angreifern zu verstehen. Eine effektive Methode, um dies zu erreichen, ist die Einrichtung eines Honeypots – eines Ködersystems, das so konzipiert ist, Angreifer anzulocken und ihre Aktivitäten zu protokollieren. Dieser Artikel führt dich Schritt für Schritt durch die Erstellung eines einfachen Honeypots unter Debian und ausschließlich mit Bash-Skripten.
Was ist ein Honeypot und warum solltest du einen haben?
Ein Honeypot ist im Wesentlichen ein Computersystem, das absichtlich unsicher gemacht wurde, um als Ziel für Cyberangriffe zu dienen. Es sammelt Informationen über Angreifer, ihre Methoden, Tools und Ziele, ohne dass deine echten Systeme gefährdet werden.
Vorteile eines Honeypots:
* Bedrohungsintelligenz: Erfahre, welche Arten von Angriffen gegen deine Systeme gerichtet sind.
* Angreifer-Profilierung: Verstehe die Taktiken und Werkzeuge der Angreifer.
* Früherkennung: Mögliche Angriffe auf deine echten Systeme können vorab im Honeypot erkannt werden.
* Forschung: Einblicke in neue Angriffsmuster und Schwachstellen.
Die Grundlagen deines Honeypots
Für unseren einfachen Honeypot werden wir einen Debian-Server verwenden und grundlegende Netzwerkdienste simulieren, die Angreifer gerne scannen oder attackieren. Wir werden die Aktivitäten protokollieren, um später analysieren zu können, was passiert ist.
Was du benötigst:
* Eine virtuelle Maschine (VM) oder ein dedizierter Server mit Debian (eine frische Installation ist ideal).
* Grundkenntnisse in Bash und der Linux-Kommandozeile.
* Ein Texteditor deiner Wahl (z.B. nano oder vim).
Wichtiger Hinweis zur Sicherheit:
Richte deinen Honeypot IMMER in einer isolierten Umgebung ein. Idealerweise in einem separaten VLAN oder Subnetz, das keinen Zugriff auf dein internes Netzwerk hat. Das Ziel ist es, Angreifer im Honeypot einzuschließen und zu verhindern, dass sie von dort aus deine echten Systeme erreichen.
Schritt 1: Debian vorbereiten
Stelle sicher, dass dein Debian-System auf dem neuesten Stand ist:
sudo apt update
sudo apt upgrade -y
Installieren wir dann einige nützliche Tools, die wir für unser Skript benötigen könnten, falls sie noch nicht vorhanden sind:
sudo apt install netcat tcpdump -y
Schritt 2: Das Honeypot-Skript erstellen
Wir erstellen ein Bash-Skript, das auf verschiedenen Ports lauscht und alle Verbindungsversuche protokolliert. Wir simulieren dabei gängige Dienste wie SSH (Port 22), HTTP (Port 80) und FTP (Port 21).
Erstelle eine neue Datei, z.B. honeypot.sh:
nano honeypot.sh
Füge den folgenden Code ein:
#!/bin/bash
# Pfad zum Logfile
LOGFILE=“/var/log/honeypot/honeypot.log“
# Verzeichnis für das Logfile erstellen, falls es nicht existiert
sudo mkdir -p /var/log/honeypot
sudo touch „$LOGFILE“
sudo chown syslog:adm „$LOGFILE“ # Oder einen anderen geeigneten Benutzer/Gruppe
# Funktion zum Protokollieren von Verbindungen
log_connection() {
PROTOCOL=$1
PORT=$2
IP=$3
TIMESTAMP=$(date +“%Y-%m-%d %H:%M:%S“)
echo „$TIMESTAMP – $PROTOCOL_Honeypot auf Port $PORT: Verbindung von $IP“ >> „$LOGFILE“
echo „$TIMESTAMP – $PROTOCOL_Honeypot auf Port $PORT: Verbindung von $IP“ # Ausgabe auf Konsole
}
# — SSH Honeypot (Port 22) —
# Simuliert einen SSH-Server und loggt Verbindungsversuche
ssh_honeypot() {
echo „Starte SSH-Honeypot auf Port 22…“
while true; do
# Nutzt netcat, um auf Port 22 zu lauschen
# -l: Listen Mode
# -p: Port
# -v: Verbose Output
# -k: Keep Listener alive after client disconnects (not strictly needed with while true)
# -n: Don‘t do DNS lookups
{ echo „SSH-2.0-OpenSSH_7.6p1 Debian-4ubuntu0.3“; sleep 1; echo „Password authentication required for user root“; sleep 1; echo „root@honeypot‘s password:“; sleep 1; } | nc -l -n -p 22 -q 1 > /dev/null 2>&1
IP=$(netstat -tn | grep „:22 “ | awk ‚{print $5}‘ | cut -d: -f1 | head -n 1) # Holt die Quell-IP der letzten Verbindung
if [ -n „$IP“ ]; then
log_connection „SSH“ 22 „$IP“
fi
done
}
# — HTTP Honeypot (Port 80) —
# Simuliert einen einfachen HTTP-Server
http_honeypot() {
echo „Starte HTTP-Honeypot auf Port 80…“
while true; do
# Nutzt netcat, um auf Port 80 zu lauschen und eine einfache HTTP-Antwort zu senden
echo -e „HTTP/1.1 200 OK\nContent-Type: text/html\n\n<h1>Willkommen im Honeypot!</h1>“ | nc -l -n -p 80 -q 1 > /dev/null 2>&1
IP=$(netstat -tn | grep „:80 “ | awk ‚{print $5}‘ | cut -d: -f1 | head -n 1)
if [ -n „$IP“ ]; then
log_connection „HTTP“ 80 „$IP“
fi
done
}
# — FTP Honeypot (Port 21) —
# Simuliert einen einfachen FTP-Server
ftp_honeypot() {
echo „Starte FTP-Honeypot auf Port 21…“
while true; do
echo -e „220 Welcome to the FTP Honeypot\r\n“ | nc -l -n -p 21 -q 1 > /dev/null 2>&1
IP=$(netstat -tn | grep „:21 “ | awk ‚{print $5}‘ | cut -d: -f1 | head -n 1)
if [ -n „$IP“ ]; then
log_connection „FTP“ 21 „$IP“
fi
done
}
# Starte die Honeypots im Hintergrund
ssh_honeypot &
HTTP_PID=$! # Speichert die Prozess-ID des HTTP-Honeypots
http_honeypot &
FTP_PID=$! # Speichert die Prozess-ID des FTP-Honeypots
ftp_honeypot &
SSH_PID=$! # Speichert die Prozess-ID des SSH-Honeypots (umgekehrt da sie im Hintergrund gestartet werden)
echo „Alle Honeypots laufen im Hintergrund. Beobachte das Logfile: $LOGFILE“
echo „Drücke Strg+C um alle Honeypots zu beenden.“
# Warte auf Beendigung, damit das Skript nicht sofort terminiert
wait $SSH_PID $HTTP_PID $FTP_PID
Speichere die Datei und mache sie ausführbar:
chmod +x honeypot.sh
Schritt 3: Den Honeypot starten
Du kannst das Skript nun starten:
sudo ./honeypot.sh
Du solltest Ausgaben sehen, die bestätigen, dass die Honeypots auf den jeweiligen Ports laufen.
Schritt 4: Das Logfile überwachen
Alle Verbindungsversuche werden im Logfile honeypot.log gespeichert. Du kannst dieses Logfile in Echtzeit überwachen:
tail -f /var/log/honeypot/honeypot.log
Sobald ein Angreifer (oder du selbst zu Testzwecken) versucht, sich mit einem dieser Ports zu verbinden, wird dies im Logfile protokolliert.
Beispiel für Log-Eintrag:
2025-07-29 19:30:05 – SSH_Honeypot auf Port 22: Verbindung von 192.168.1.100
2025-07-29 19:30:10 – HTTP_Honeypot auf Port 80: Verbindung von 192.168.1.101
Schritt 5: Erweiterungsmöglichkeiten und weitere Schritte
Dieser einfache Honeypot ist ein guter Startpunkt, kann aber noch erheblich erweitert werden:
* Mehr Dienste: Füge weitere Honeypot-Funktionen für andere gängige Ports hinzu (z.B. Telnet, SMB, RDP).
* Interaktive Honeypots: Die aktuellen Honeypots senden nur eine statische Antwort. Ein interaktiver Honeypot könnte mehr Kommunikation mit dem Angreifer simulieren, um mehr Informationen zu sammeln (z.B. das Simulieren eines Dateisystems bei FTP).
* Datenanalyse: Skripte erstellen, die das Logfile analysieren, um Muster, wiederkehrende IPs oder Angriffstypen zu identifizieren.
* Firewall-Regeln: Obwohl der Honeypot isoliert sein sollte, können zusätzliche Firewall-Regeln (mit iptables) auf dem Honeypot-Server helfen, unerwünschten Ausgangsverkehr zu unterbinden.
* Benachrichtigungen: Implementiere eine Funktion, die dich per E-Mail oder über einen anderen Kanal benachrichtigt, wenn eine Verbindung zum Honeypot hergestellt wird.
* Containerisierung (Docker): Für eine noch bessere Isolation und Portabilität kannst du deinen Honeypot in einem Docker-Container betreiben.
Fazit
Die Erstellung eines Honeypots mit Debian und Bash ist eine zugängliche und lehrreiche Methode, um die Welt der Cyberangriffe aus erster Hand zu erleben. Auch wenn dieser Ansatz grundlegend ist, bietet er wertvolle Einblicke in die Bedrohungslandschaft und stärkt dein Verständnis für Netzwerksicherheit. Erinnere dich stets daran, deinen Honeypot sich
er und isoliert zu betreiben, um keine unbeabsichtigten Risiken für deine echten Systeme zu schaffen. Viel Erfolg beim Fangen der Angreifer!