Kippo auf dem Raspberry PI

Nachdem ich hier mehrere Raspberrys intern laufen habe um die verschiedensten Szenarien zu testen, dachte ich mir, man könnte auch mal einen Honeypot aufsetzen und schauen was so von extern versucht wird angriffstechnisch.

Was wir dazu benötigen:

  • Raspberry PI (Am besten Model B)
  • SD Karte (Ich empfehle hier eine 8-16GB Karte)
  • Einen Router auf dem man Portweiterleitungen konfigurieren kann

Im ersten Schritt installieren wir die benötigten Packete:

sudo apt-get install subversion python-twisted python-mysqldb mysql-server apache2 git

MySQL und Apache2 wird zum Logging des Kippos und zur Auswertung für uns, benötigt. Jetzt können wir uns die aktuelle Version aus dem SVN ziehen:

cd /opt/ svn checkout http://kippo.googlecode.com/svn/trunk/ kippo

Nun benötigen wir eine Datenbank für das Logging unseres Honeypots:

mysql -h localhost -uroot -p create database kippo; GRANT ALL ON kippo.* TO 'kippo'@'localhost' IDENTIFIED BY 'Mein-Kippo-Passwort'; exit

‘Mein-Kippo-Passwort’ ist das Passwort des Kippo-MySQL Benutzers und sollte von euch durch ein eigenes ersetzt werden. Nachdem die DB erstellt ist, können wir die nötigen Tabellen darin anlegen:

cd /opt/kippo/doc/sql mysql -ukippo -p use kippo; source mysql.sql;

Wenn keine Fehler aufgetreten sind, solltet Ihr durch eingabe von show tables; alle angelegten Tabellen sehen können. Wenn ihr die Tabellen sehen könnt, könnt ihr die DB-Shell durch eingabe von exit verlassen. Jetzt kommen wir zur eigentlichen Konfiguration:

cd /opt/kippo/ cp kippo.cfg.dst kippo.cfg

In der Datei wird die Verbindung zur Datenbank definiert.

[database_mysql] host = localhost database = kippo username = kippo password = Mein-Kippo-Passwort

Nun ist es schon fast geschaft. In unserem Beispiel verwende ich für Kippo den Port 2222 auf den wir mit dem Router weiter leiten werden. Mit der folgenden IPTables Regel könne wir jedoch auch den Traffic von Port 22 auf dem Raspberry auf den Kippo verschieben.

sudo apt-get install iptables sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 2222 sudo iptables-save > /etc/iptables.rules

Nachdem nun aber auch der SSH des Raspberry nicht mehr erreichbar währe, verschieben wir diesen auf einen anderen Port:

sudo sed -i 's:Port 22:Port 65534:g' /etc/ssh/sshd_config sudo /etc/init.d/ssh restart

Damit ist die Installation abgeschlossen. Wir können Kippo jetzt starten:

sudo ./start.sh

In der Datei /opt/kippo/log/kippo.log kannst du nun prüfen ob Kippo ordentlcih gestartet wurde. In diesem Log kannst du, zusätzlich zur Datenbank, auch sehen wer was auf deinem Kippo ausgeführt hat.

Das Standart Passwort von Kippo ist ‘123456’.

Falls du das ändern willst, kannst du dies in der Datei /opt/kippo/data/userdb.txt. Im Anschluss musst du Kippo jedoch neu starten.

An dieser Stelle kannst du in deinem Router den Port 22 auf Port 2222 deines Kippos weiter leiten um auch reale Angriffe zu erhalten.

Logfiles und die Logs in der Datenbank sind ja schön und gut, ein paar Grafiken dazu sind jedoch auch nicht schlecht:

sudo apt-get install libapache2-mod-php5 php5-cli php5-common php5-cgi php5-mysql php5-gd sudo /etc/init.d/apache2 restart

Hiermit haben wir die benötigten PHP Komponenten installiert und können nun kippo-graph installieren:

cd /var/www git clone https://github.com/ikoniaris/kippo-graph.git cd kippo-graph sudo chmod 777 generated-graphs

In der Datei /var/www/kippo-graph/config.php kannst du nun wieder deine Datenbank-Verbindung konfigurieren. Anschließend solltest du unter

http://<IP-des-Kippo>/kippo-graph/index.php

die Statistiken des Kippos sehen können.

Bitte beachtet auch das man einen Kippo niemals auf einem Produktivsystem einsetzen sollte, das sich mach Hacker ärgert wenn er an der Nase herumgeführt wird und dann mehr Energie in euer System investiert. Das kann ein böses Ende haben 😉