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!