Wetland
Wetland ist ein High-Interaction-SSH-Honeypot, der entwickelt wurde, um Brute-Force-Angriffe zu protokollieren. Darüber hinaus protokolliert Wetland Shell-, SCP-, SFTP-, Exec-Command-, Direct-Forward- und Reverse-Forward-Interaktionen, die vom Angreifer durchgeführt werden.
Wetland basiert auf dem Python-SSH-Modul paramiko. Wetland läuft als Multithreading-TCP-Server unter Verwendung von SocketServer.
Features
- Verwendung von Docker zur Bereitstellung einer echten Linux-Umgebung.
- Alle Passwort-Authentifizierungen werden an Docker weitergeleitet.
- Alle Befehle werden auf Docker ausgeführt.
- Speichert eine Kopie der Datei, wenn ein Hacker Dateien per SFTP hochlädt.
- Extrahiert und speichert Dateien aus Exec-Logs, wenn ein Hacker Dateien per SCP hochlädt.
- Bereitstellung eines Playlog-Skripts zur Wiedergabe von [Shell | Exec | Direct-Forward | Reverse-Forward]-Logs.
- Erweiterte Netzwerkfunktion zur Verschleierung der IP-Adresse des Angreifers zwischen Wetland und Docker (dank honssh).
- Verschiedene Möglichkeiten, dich zu benachrichtigen, wenn Wetland von einem Hacker berührt wird, derzeit jedoch nur per E-Mail und Bearychat.
Anforderungen
- Ein Linux-System (getestet auf Ubuntu)
- sshd-Images in Docker (z.B. rastasheep/ubuntu-sshd)
- Python 2.7
- paramiko
- yagmail
- IPy
- requests
Einrichtung und Konfiguration
- Kopiere wetland.cfg.default nach wetland.cfg
- Generiere Schlüssel, die vom SSH-Server verwendet werden
- Führe
mkdir data aus
- Führe
ssh-keygen -t rsa aus und lege sie in data/ ab
- Führe
ssh-keygen -t dsa aus und lege sie in data/ ab
- Denke daran, dass Wetland und der sshd-Container die gleichen Schlüssel verwenden sollten.
- Installiere die Python-Abhängigkeiten
- Führe
pip install -r requirements aus
- Konfiguriere den Banner des SSH-Servers
- Bearbeite den Banner in wetland.cfg
- Er sollte mit dem SSH-Banner des sshd-Containers übereinstimmen
- Oder du kannst
python util/initwetland.py ./ ausführen; dieses Skript erledigt alle oben genannten Schritte
- Konfiguriere die Output-Plugins in wetland.cfg
- Aktiviere oder deaktiviere sie im Abschnitt
[output]
- Bearbeite die URL des eingehenden Robots bei Verwendung von Bearychat
- Bearbeite user, pwd usw. bei Verwendung von E-Mail
- Installiere p0f, falls gewünscht
- Führe
git clone https://github.com/p0f/p0f aus
Ausführung
- Starten
- Führe
nohup python main.py & aus
- Stoppen
- Führe
netstat -autpn | grep 22 aus
- Dann
kill pid_number
- Ahaha
- Bereinigen
- Möglicherweise musst du einige von der Netzwerkmodul erstellte Interfaces von Hand löschen.
- Führe
ip link list aus
- Dann
ip link del dev wdxxxxxx
- Bereinige schließlich die NAT-Tabelle von iptables oder starte einfach neu
- Logs anzeigen
- Führe
python util/clearlog.py -p log aus; dies entfernt Logs, die nur pwd.log enthalten, und schreibt username:password in die Datei -l, standardmäßig ./pwd.txt
- Verwende dann playlog.py in util
- Änderungen im Dateisystem
- filechange.py kopiert die Read-Write-Schicht des sshd-Containers nach ./ ; diese Schicht enthält das, was der Hacker erstellt und gelöscht hat
- z.B.
docker inspect sshd --format '{{.Id}}' | python filechange.py -
Dockerisiertes Wetland
- Führe
docker pull ohmyadd/wetland aus
- Siehe es auf Docker Hub
TODO
-
Wetland dockerisieren
-
Realistisches sshd-Docker-Image erstellen
-
sshd-Container automatisieren
-
Watchdog hinzufügen
-
Bearychat Incoming Outgoing nutzen
-
Verteiltes Log-System & Support für hpfeeds