GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Bereitstellung von Kippo SSH Honeypot auf Ubuntu Linux

Einführung

Haben Sie das Gefühl, dass jemand versucht, auf Ihren Server zuzugreifen? Um das herauszufinden, können Sie einen Honigtopf einsetzen in Ihrem System, um Ihnen zu helfen, Ihre Paranoia zu lindern, indem Sie Ihren anfänglichen Glauben entweder bestätigen oder ablehnen. Als Beispiel können Sie den Kippo-SSH-Honeypot starten, mit dem Sie Brute-Force-Versuche überwachen und aktuelle Exploits und Malware sammeln können. Kippo zeichnet auch automatisch die Shell-Sitzung des Hackers auf, die Sie wiedergeben können, um verschiedene Hacking-Techniken zu erkunden und später dieses gesammelte Wissen zu verwenden, um Ihren Produktionsserver zu härten. Ein weiterer Grund, einen Honeypot zu installieren, besteht darin, Ihrem Produktionsserver die Aufmerksamkeit zu nehmen. In diesem Tutorial zeigen wir, wie man einen Kippo-SSH-Honeypot auf dem Ubuntu-Server bereitstellt.

Voraussetzungen

Kippo SSH Honeypot ist eine Python-basierte Anwendung. Daher müssen wir zuerst Python-Bibliotheken installieren:

$ sudo apt-get install python-twisted

Normalerweise würden Sie Ihre sshd ausführen Dienst, 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 Ihre Tarnung sabotieren könnte. Lassen Sie uns eine zufällige 4-stellige Zahl wie 4632 auswählen. Öffnen Sie Ihre SSH-Konfigurationsdatei /etc/ssh/sshd_config und ändern Sie die Port-Direktive von:

Port 22

zu

Port 4632

Sobald Sie fertig sind, starten Sie sshd neu:

$ sudo service ssh restart

Mit netstat können Sie bestätigen, dass Sie den Port korrekt geändert haben Befehl:

$ 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 gzip-Tarball herunterzuladen und ihn in das Kippo-Verzeichnis zu extrahieren. Melden Sie sich zuerst an oder ändern Sie den Benutzer zu 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 namens kippo-0.5 erstellt.

Konfiguration

Sobald Sie in Kippos Verzeichnis 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 von Hackern mit dem Befehl wget heruntergeladen wurden
  • Honigfs – Dieses Verzeichnis enthält einige Dateien, die einem Angreifer präsentiert werden
  • kippo.cfg – Konfigurationsdatei von kippo
  • protokollieren – Standardverzeichnis zum Protokollieren der Interaktion von Angreifern mit der Shell
  • start.sh – Dies ist ein Shell-Skript zum Starten von Kippo
  • Dienstprogramme – enthält verschiedene Kippo-Dienstprogramme, von denen das bemerkenswerteste playlog.py ist, mit dem Sie die Shell-Sitzung des Angreifers wiederholen können

Kippo ist mit Port 2222 vorkonfiguriert. Dies liegt hauptsächlich daran, dass Kippo als nicht privilegierter Benutzer ausgeführt werden muss und nicht privilegierte Benutzer keine Ports öffnen können, die unter der Nummer 1024 liegen. Um dieses Problem zu lösen, können wir iptables mit verwenden „PREROUTING“- und „REDIRECT“-Direktiven. Dies ist nicht die beste Lösung, da jeder Benutzer Ports ü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-Umleitung 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 vielleicht das Dateisystem konfigurieren, das dem Angreifer präsentiert wird, sobald er/sie sich bei unserem Honeypot anmeldet. Standardmäßig kommt Kippo mit einem eigenen Dateisystem, aber es stammt aus dem Jahr 2009 und sieht nicht mehr plausibel aus. Mit Kippos Dienstprogramm utils/createfs.py können Sie Ihr eigenes Dateisystem klonen, ohne Informationen preiszugeben . 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

Betriebssystemname

Kippo ermöglicht 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.

$ echo "Linux Mint 14 Julaya \n \l" > honeyfs/etc/issue

Passwortdatei

Bearbeiten Sie honeyfs/etc/passwd und machen es plausibler und saftiger.

Alternative Root-Passwörter

Kippo wird mit voreingestelltem Passwort „123456“ geliefert. Sie können diese Einstellung beibehalten und weitere Passwörter hinzufügen wie: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 als root mit einem der oben genannten Passwörter anmelden.

Neue Befehle erstellen

Darüber hinaus können Sie mit Kippo zusätzliche Befehle konfigurieren, die im Verzeichnis txtcmds/ gespeichert sind. Zum Erstellen eines neuen Befehls, zum Beispiel df wir leiten einfach die Ausgabe vom echten df um Befehl an txtcmds/bin/df:

# df -h > txtcmds/bin/df

Das obige ist ein einfacher statischer Textausgabebefehl, aber er wird einen Angreifer einige Zeit beschäftigen.

Hostname

Bearbeiten Sie die Konfigurationsdatei kippo.cfg und ändern Sie Ihren Hostnamen in einen ansprechenderen wie:

hostname = accounting

Kippo SSH Honeypot starten

Wenn Sie die obigen Anweisungen bis zu diesem Punkt befolgt haben, sollten Sie Ihren SSH-Honeypot jetzt mit den folgenden Einstellungen konfiguriert haben:

  • Überwachungsport 4633
  • iptables-Portweiterleitung von 22 -> 4633
  • Hostname:Buchhaltung
  • mehrere Root-Passwörter
  • aktueller Honeyfs-Klon Ihres bestehenden Systems
  • Betriebssystem:Linux Mint 14 Julaya

Lassen Sie uns jetzt Kippo SSH Honeypot starten.

$ 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 Obigen können Sie ersehen, dass Kippo gestartet wurde und dass es alle notwendigen RSA-Schlüssel für die SSH-Kommunikation erstellt hat. Außerdem hat es auch eine Datei namens kippo.pid erstellt, die eine PID-Nummer der laufenden Instanz von Kippo enthält, die Sie verwenden können, um Kippo mit kill zu beenden Befehl.

Testen der SSH-Honeypot-Bereitstellung

Jetzt sollten wir uns bei unserem neuen SSH-Server-Alias ​​ssh-Honeypot auf dem Standard-SSH-Port 22 anmelden können:

$ 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 mir bekannt vor? Wir sind fertig

Zusätzliche Funktionen

Kippo kommt mit mehreren anderen 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 das Speichern von Protokolldateien durch die 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 von Kipps auf ein separates Dateisystem zu konfigurieren. Dieses Verzeichnis enthält alle vom Angreifer heruntergeladenen Dateien, sodass Sie nicht möchten, dass Ihre Anwendungen hängen bleiben, weil kein Speicherplatz vorhanden ist.

Kippo scheint eine nette und einfach zu konfigurierende SSH-Honeypot-Alternative zu vollständig chrooted Honeypot-Umgebungen zu sein. Kippo bietet mehr Funktionen als die in dieser Anleitung beschriebenen. Bitte lesen Sie kippo.cfg, um sich damit vertraut zu machen und die Einstellungen von Kippo an Ihre Umgebung anzupassen.


Ubuntu
  1. SSH-Root-Anmeldung auf dem Ubuntu 14.04-Linux-Server zulassen

  2. So ändern Sie den SSH-Port unter Linux

  3. SSH-Port auf Ubuntu 20.04 Linux-System ändern - beste Methode?

  4. So ändern Sie den SSH-Port unter Lubuntu 20.04 Linux

  5. Top-Port-Scanner unter Ubuntu Linux

Aktivieren Sie SSH unter Ubuntu 22.04 Jammy Jellyfish Linux

So ändern Sie den SSH-Port unter Linux

So installieren Sie den SSH-Server in Ubuntu 20.04

So aktivieren Sie ssh unter Ubuntu 20.04 LTS Linux

So ändern Sie den SSH-Port in Ubuntu

Wie ändere ich den SSH-Port auf Ubuntu?