Website-Suche

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-twisted

Normalerweise 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 22

An

Port 4632

Sobald 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:*               LISTEN

Darü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 kippo

Installation

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.gz

Extrahieren 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  utils

Die 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 4633

Optionale 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 stuff

Name 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/issue

Passwort-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 root

Jetzt 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 
2087

Aus 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.

Verwandte Artikel: