Bereitstellung von Kippo SSH Honeypot unter Ubuntu Linux
Einleitung
Haben Sie das Gefühl, dass jemand versucht, auf Ihren Server zuzugreifen? Um das herauszufinden, kannst du einen Honeypot in deinem System einsetzen, der dir hilft, deine Paranoia zu lindern, indem du deinen anfänglichen Glauben entweder bestätigt oder verwirfst. Als Beispiel können Sie den Kippo SSH-Honeypot starten, mit dem Sie Brute-Force-Versuche überwachen, heutige Exploits und Malware sammeln können. Kippo zeichnet auch automatisch die Shell-Sitzung des Hackers auf, die Sie abspielen können, um verschiedene Hacking-Techniken zu erkunden und das gesammelte Wissen später zu nutzen, um Ihren Produktionsserver zu härten. Ein weiterer Grund, warum Sie einen Honeypot installieren sollten, besteht darin, die Aufmerksamkeit von Ihrem Produktionsserver abzulenken. In diesem Tutorial zeigen wir, wie Sie einen Kippo SSH-Honeypot auf dem Ubuntu-Server bereitstellen.
Voraussetzungen
Kippo SSH Honeypot ist eine Python-basierte Anwendung. Daher müssen wir zuerst die Python-Bibliotheken installieren:
sudo apt-get install python-twistedNormalerweise würden Sie Ihren sshd-Dienst ausführen, der auf dem Standardport 22 lauscht. Es ist sinnvoll, diesen Port für Ihren SSH-Honeypot zu verwenden, und wenn Sie den SSH-Dienst bereits ausführen, müssen wir den Standardport auf eine andere Nummer ändern. Ich würde vorschlagen, den alternativen Port 2222 nicht zu verwenden, da seine Verwendung bereits allgemein bekannt ist und er Ihre Tarnung sabotieren könnte. Nehmen wir eine zufällige 4-stellige Zahl wie 4632. Öffnen Sie Ihre SSH-Konfigurationsdatei /etc/ssh/sshd_config und ändern Sie die Port-Direktive von:
Port 22An
Port 4632Sobald Sie fertig sind, starten Sie Ihre SSHD neu:
sudo service ssh restart
Sie können mit dem Befehl netstat bestätigen, dass Sie den Port korrekt geändert haben:
netstat -ant | grep 4632
tcp 0 0 0.0.0.0:4632 0.0.0.0:* LISTENDarüber hinaus muss Kippo einen nicht privilegierten Benutzer ausführen, daher ist es eine gute Idee, ein separates Benutzerkonto zu erstellen und Kippo unter diesem Konto auszuführen. Erstellen Sie einen neuen Benutzer kippo:
sudo adduser kippoInstallation
Kippo erfordert keine langwierige Installation. Alles, was getan werden muss, ist, einen gezippten Tarball herunterzuladen und ihn in das Verzeichnis des Kippos zu extrahieren. Melden Sie sich zuerst als Benutzer an oder ändern Sie den Benutzer in kippo und laden Sie dann den Quellcode von Kippo herunter:
kippo@ubuntu:~$ wget http://kippo.googlecode.com/files/kippo-0.5.tar.gzExtrahieren Sie es mit:
kippo@ubuntu:~$ tar xzf kippo-0.5.tar.gz Dadurch wird ein neues Verzeichnis mit dem Namen KIPPO-0.5 erstellt.
Konfiguration
Sobald Sie in das Verzeichnis von Kippo navigieren, sehen Sie:
kippo@ubuntu:~/kippo-0.5$ ls
data dl doc fs.pickle honeyfs kippo kippo.cfg kippo.tac log start.sh txtcmds utilsDie bemerkenswertesten Verzeichnisse und Dateien hier sind:
- dl – Dies ist ein Standardverzeichnis, in dem Kippo alle Malware und Exploits speichert, die vom Hacker mit dem wget-Befehl heruntergeladen wurden
- honeyfs – Dieses Verzeichnis enthält einige Dateien, die dem Angreifer präsentiert werden
- kippo.cfg – die Konfigurationsdatei von Kippo
- log – Standardverzeichnis zum Protokollieren der Interaktion von Angreifern mit der Shell
- start.sh – dies ist ein Shell-Skript zum Starten von Kippo
- utils – enthält verschiedene Kippo-Dienstprogramme, von denen das bemerkenswerteste playlog.py ist, das es Ihnen ermöglicht, die Shell-Sitzung des Angreifers wiederzugeben
Kippo ist mit Port 2222 vorkonfiguriert. Dies liegt hauptsächlich daran, dass Kippo als Benutzer ohne Berechtigungen ausgeführt werden muss und der nicht privilegierte Benutzer keine Ports öffnen kann, die unter der Nummer 1024 liegen. Um dieses Problem zu lösen, können wir iptables mit den Direktiven "PREROUTING" und "REDIRECT" verwenden. Dies ist nicht die beste Lösung, da jeder Benutzer den Port über 1024 öffnen kann, wodurch eine Gelegenheit zum Ausnutzen geschaffen wird.
Öffnen Sie die Konfigurationsdatei von Kippo und ändern Sie die Standard-Portnummer in eine beliebige Nummer wie 4633. Erstellen Sie danach eine iptables-Weiterleitung von Port 22 zu Kippos auf Port 4633:
sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 4633Optionale Konfigurationen
Dateisystem
Als nächstes möchten Sie möglicherweise das Dateisystem konfigurieren, das dem Angreifer angezeigt wird, sobald er sich in unserem Honeypot anmeldet. Standardmäßig wird Kippo mit einem eigenen Dateisystem ausgeliefert, aber es stammt aus dem Jahr 2009 und sieht nicht mehr plausibel aus. Sie können Ihr eigenes Dateisystem klonen, ohne irgendwelche Informationen preiszugeben, mit dem Kippo-Dienstprogramm utils/createfs.py. Führen Sie mit Root-Rechten den folgenden Linux-Befehl aus, um Ihr Dateisystem zu klonen:
cd /home/kippo/kippo-0.5/
utils/createfs.py > fs.pickle
Doing stuffName des Betriebssystems
Kippo ermöglicht es Ihnen auch, den Namen des Betriebssystems zu ändern, der sich in der Datei /etc/issue befindet. Nehmen wir an, wir verwenden Linux Mint 14 Julaya. Natürlich, dass Sie etwas Reales und Plausibles verwenden werden.
echo "Linux Mint 14 Julaya \n \l" > honeyfs/etc/issuePasswort-Datei
Bearbeiten Sie honeyfs/etc/passwd und machen Sie es plausibler und saftiger.
Alternative Root-Passwörter
Kippo wird mit dem vordefinierten Passwort "123456" geliefert. Sie können diese Einstellung beibehalten und weitere Passwörter hinzufügen, wie z. B.: pass, a , 123, password, root
kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add pass
kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add a
kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add 123
kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add password
kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add rootJetzt kann sich der Angreifer mit einem der oben genannten Passwörter als root anmelden.
Erstellen neuer Befehle
Darüber hinaus können Sie mit Kippo zusätzliche Befehle konfigurieren, die im Verzeichnis txtcmds/ gespeichert sind. Um einen neuen Befehl, z.B. df, zu erstellen, leiten wir einfach die Ausgabe des echten df-Befehls auf txtcmds/bin/df um:
df -h > txtcmds/bin/df
Das Obige ist ein einfacher statischer Textausgabebefehl, aber er wird einen Angreifer für einige Zeit beschäftigen.
Hostname
Bearbeiten Sie die Konfigurationsdatei kippo.cfg und ändern Sie Ihren Hostnamen in einen attraktiveren Namen, wie zum Beispiel:
hostname = accounting
Starten von Kippo SSH Honeypot
Wenn Sie die obigen Anweisungen bis zu diesem Punkt befolgt haben, sollten Sie Ihren SSH-Honeypot bereits mit den folgenden Einstellungen konfiguriert haben:
- Überwachender Port 4633
- iptables Portforward von 22 -> 4633
- Hostname: Buchhaltung
- Mehrere Root-Passwörter
- Frischer aktueller Honeyfs-Klon Ihres bestehenden Systems
- Betriebssystem: Linux Mint 14 Julaya
Starten wir jetzt den Kippo SSH Honeypot.
pwd
/home/kippo/kippo-0.5
kippo@ubuntu:~/kippo-0.5$ ./start.sh
Starting kippo in background...Generating RSA keypair...
done.
kippo@ubuntu:~/kippo-0.5$ cat kippo.pid
2087Aus dem oben Gesagten können Sie ersehen, dass Kippo gestartet ist und dass es alle notwendigen RSA-Schlüssel für die SSH-Kommunikation erstellt hat. Darüber hinaus wurde eine Datei namens kippo.pid erstellt, die eine PID-Nummer der laufenden Instanz von Kippo enthält, mit der Sie Kippo mit dem Befehl kill beenden können.
Testen der SSH-Honeypot-Bereitstellung
Jetzt sollten wir in der Lage sein, uns bei unserem neuen SSH-Server-Alias ssh honeypot auf dem Standard-SSH-Port 22 anzumelden:
ssh root@server
The authenticity of host 'server (10.1.1.61)' can't be established.
RSA key fingerprint is 81:51:31:8c:21:2e:41:dc:e8:34:d7:94:47:35:8f:88.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'server,10.1.1.61' (RSA) to the list of known hosts.
Password:
accounting:~#
accounting:~# cd /
accounting:/# ls
var sbin home srv usr
mnt selinux tmp vmlinuz initrd.img etc
root dev sys lost+found proc
boot opt run media lib64 bin
lib
accounting:/# cat /etc/issue
Linux Mint 14 Julaya \n \l
Kommt Ihnen das bekannt vor? Wir sind fertig
Zusätzliche Funktionen
Kippo bietet zahlreiche weitere Optionen und Einstellungen. Eine davon ist die Verwendung des Dienstprogramms utils/playlog.py, um die Shell-Interaktionen des Angreifers wiederzugeben, die im Verzeichnis log/tty/ gespeichert sind. Darüber hinaus ermöglicht Kippo die Speicherung von Protokolldateien in der MySQL-Datenbank. Weitere Einstellungen finden Sie in der Konfigurationsdatei.
Schlussfolgerung
Eine Sache, die erwähnt werden muss, ist, dass es ratsam ist, das dl-Verzeichnis des Kipps auf ein separates Dateisystem zu konfigurieren. In diesem Verzeichnis befinden sich alle Dateien, die der Angreifer heruntergeladen hat, sodass Sie nicht möchten, dass Ihre Anwendungen aufgrund von fehlendem Speicherplatz hängen bleiben.
Kippo scheint eine nette und einfach zu konfigurierende SSH-Honeypot-Alternative zu vollständig gechrooteten Honeypot-Umgebungen zu sein. Kippo hat mehr Funktionen zu bieten, als in diesem Leitfaden beschrieben sind. Bitte lesen Sie kippo.cfg, um sich mit ihnen vertraut zu machen und die Einstellungen von Kippo an Ihre Umgebung anzupassen.