Tutorial: Die tolle Welt des nepenthes.

Halli Hallo.

Viele werden sich sicher fragen, wie man sich überhaupt solch einen Honeypot, oder auch liebevoll “honeyboi” von Kollegen genannt, am besten und am schnellsten aufsetzt.

Im Prinzip ist alles recht einfach und folgt den Prinzipiellen Linux Kompiliermethoden (./configure, make, make install…)

Aber ich werde die ganze Prozedur trotzdem einmal für blutige Anfänger und jenen, welche Interesse am lesen von Tutorials haben aufschreiben. Wer sich jedoch nicht durch das ewige kompilieren des Tutorials quälen möchte, dem kann durch ein inoffizieles Debian Package verholfen werden. (Download hier.)
(Alternativ kann diese Version auch glaube bei Debian Lenny per Aptitude geladen werden.)

Desweiteren werde ich, wie ihr sicher schon erkannt habt, dass ganze an Debian erklären. Es sollte sich aber nicht als schwieriger erweisen, dies bei anderen Distributionen durchzuführen. Allerdings beläuft sich die ganze Installation auf den “Standard”. Das heißt, der Honeypot startet, loggt sich auf einem IRC Server für den Report ein, sendet die gesammelte Malware an CWSandbox und das war’s.

Nun okay. Fangen wir an.

Ihr braucht auf dem Server, wo ihr den Honeypot installieren wollt, uneingeschränkte root Rechte.
Es werden ein paar Pakete benötigt, ohne diese kann eine Installation nicht gewährleistet werden.

Loggt euch zunächst per “root” oder per Befehl “su” auf eurem Server ein. Stellt sicher, dass eure “sources.list” auf dem neusten Stand ist. Solltet ihr dessen nicht sicher sein, führt ein “apt-get update” aus, dann seid ihr auf der sicheren Seite. Stellt außerdem jetzt sicher, ob gewisse Programme, die zum kompilieren notwendig sind, auf dem Server vorhanden sind.
Installiert diese per: “apt-get install make g++”

Desweiteren brauch der Honeypot auch noch einige Pakete, die per “apt-get install libcurl3-dev libmagic-dev libpcre3-dev libadns1-dev libpcap0.8-dev iptables-dev” nachinstalliert werden können.

Sollte dies getätigt sein, fügt einen neuen User per “useradd nepenthes -d /var/lib/nepenthes/ -m -s /bin/bash” hinzu. Gebt dem User jetzt noch ein neues Passwort per “passwd nepenthes”.

Besorgt euch jetzt den Sourcecode von nepenthes.
Dies wird durch ein
“wget http://dfn.dl.sourceforge.net/sourceforge/nepenthes/nepenthes-0.2.2.tar.gz && tar xvf nepenthes-0.2.2.tar.gz” ausgeführt. Es sollte nun ein Ordner “nepenthes-0.2.2″ erstellt worden sein, geht nun per “cd nepenthes-0.2.2″ in diesen Ordner. Durch ein “ls” vergewissert ihr euch, ob alle Dateien im Ordner sind.

Ein “./configure –prefix=/” stellt erst einmal sicher, ob alle Programme die benötigt werden vorhanden sind. Außerdem gibt der Parameter “–prefix=/” an, dass das ganze im Rootverzeichnis (etc/, var/, usw.) installiert wird. Kompilieren wir das Teil nun endlich mit dem Befehl “make”. Sollte alles geklappt haben, wird alles ordentlich per “make install” in seine Verzeichnise installiert und per “make clean” werden alle jetzt unbrauchbaren Dateien gelöscht.  Herzlichen Glückwunsch, der erste Teil des Honeypots hast du erfolgreich geschafft. Erinnerst du dich noch an den neu erstellten User? Der wird jetzt benötigt. Es müssten Besitzerrechte vergeben werden, damit der Honeypot die gesammelte Malware speichern kann und nicht etwa vor verschlossenen Türen steht. Das tut ihr aber auch mit einem einzigen Befehl: “chown nepenthes -R /var/lib/nepenthes”. Soweit, so gut. Die Konfiguration muss angepasst werden. Macht euch zunächst mit einem Konsolentexteditor wie “vi” oder “nano” vertraut. Hierbei muss ich sagen, das nano für Anfänger einfacher zu verstehen ist. Gut, fahren wir fort. Die erste Konfigurationsdatei die angepasst werden muss, ist die “/etc/nepenthes/nepenthes.conf”.
Ihr öffnet diese also nun mit eurem bevorzugten Texteditor und springt zu Zeile 35, wo einem als allererstes zwei //  und dahinter ein “submitnorman.so” in die Augen fällt. Die beiden // dürfen jedoch nicht sein, löscht sie weg und euer Honeypot wird die gesammelten Malwarebinarys an die CWSandbox senden, von welcher ihr dann eure Reports zu der jeweiligen Malware an eure E-Mail Adresse erhaltet.
Zeile 42 beherbergt ebenfalls noch zwei dieser Auskommentierungszeichen (//). Die werden auch wieder terminiert und euer Honeypot sollte alle Aktivitäten in einen IRC Channel loggen. Dies ist aber nicht unbedingt von Nöten, der Honeyboi wird auch so alles in einer Logdatei aufschreiben. Nun gut. Speichert den ganzen Kram jetzt erstmal ab und widmet euch der nächsten Configdatei “/etc/nepenthes/submit-norman.conf”. Hier müsst ihr eigentlich nicht viel einstellen, lediglich in Zeile 4, welche “email” seien sollte, eure E-Mail angeben, an die die Reports der CWSandbox verschickt werden. Erneut speichern und dann sind wir fast am Ziel. Wenn ihr euren Honeypot im IRC loggen lassen wollt, editiert die “/etc/nepenthes/log-irc.conf”. Dort sollte ebenfalls alles klar seien, tragt in Zeile 3 bei use-tor eine 0 ein, andernfalls wird euer Honeypot nicht im IRC joinen, da kein TOR Daemon auf eurem Server läuft.
Weiter unten, im server-Block (Zeile 14, 15 und 16) sind die Serverinformationen, sprich die Hostname oder IP vom Server, der Port, welcher Standard 6667 ist und falls gebraucht, ein Server Passwort. Der user-Block (Zeile 21, 22, 23 und 24) sind für die Identifikation von Nöten. Also der Nickname, die Ident, die Userinfo und die Usermodes, die der Bot setzen soll. Der channel-Block (Zeile 29 und 30) hat nur einen Raum und eventuell das Passwort für diesen. Darunter in Zeile 34 ist noch ein Individueller Connect Command, der beim verbinden mit dem Server getätigt werden kann. (zB. eine Identifikation beim NickServ.)
Dort müsst ihr aber vorher die beiden // löschen, damit das ganze nicht mehr auskommentiert ist.

Gut, alles geschafft. Ah, okay. Vergesst nicht, wenn ihr den Server zu Hause stehen habt, besitzt ihr sicher einen Router mit eingeschalteter Firewall. Nein, die müsst ihr nich ausschalten, jedoch einige Ports für den Honeypot freigeben. Welche das sind, seht ihr nachfolgend:

Port       Vuln            Module

42    MS04-006     vuln_wins
80    MS03-007     vuln_asn1
135   MS03-039     vuln_dcom
139                vuln_netbiosname
443   FIXME        vuln_iis
445   FIXME        vuln_asn1
1023               vuln_sasserftpd
1025  FIXME        vuln_dcom
1434  MS02-039     vuln_mssql
2103  MS05-017     vuln_msmq
2105  MS05-017     vuln_msmq
2107  MS05-017     vuln_msmq
2745               vuln_bagle
3127               vuln_mydoom
3140               vuln_optix
5000  MS01-059     vuln_upnp
5554               vuln_sasserftpd
17300              vuln_kuang2
27347              vuln_sub7

Startet nun euren frisch installieren Honeypot über “/bin/nepenthes -u nepenthes”.
Es sollte euch nun die Fleischfressende Pflanze entgegen kommen und erfolgreich starten. Es kann passieren, dass rote Meldungen erscheinen, sprich Fehler. Manche sind weniger kritisch, andere schon. Haltet Ausschau nach diesen. Wenn Fehler wie “ERROR Binding :21 failed” erscheinen, belegt ein anderes Programm diesen Port. Wenn es nicht gerade ein wichtiger Dienst ist, lasst euch per “lsof” die Prozesse mit jeweiligen Bindings anzeigen und killt danach den Prozess. Wenn Konfigurationsprobleme erscheinen, schaut die jeweiligen Konfigurationsdateien nach Fehlern durch. Das zweite ist nun, dass ihr kein Init.d Script besitzt, womit ihr den Honeypot nun jedes mal beim Systemstart mitstarten lassen könntet, bzw. als Daemon laufen lassen. Ihr werdet bemerken, dass wenn ihr eure Shell ausmacht, auf die der Honeypot gerade läuft, auch der Honeypot ausgehen wird. Für jene, die keine Ahnung von Bash haben, habe ich ein kleines Script gefunden, welches von Surfnet erstellt wurde.
Download: nepenthes

Ladet das Script einfach herunter und packt es nach “/etc/init.d/” und macht die Datei per “chmod +x /etc/init.d/nepenthes” ausführbar.
Wenn ihr euren Potty nun per Systemstart starten möchtet, setzt die Einträge per “update-rc.d nepenthes defaults” in die Runlevels. Andernfalls, startet euren Honeypot nun über “/etc/init.d/nepenthes”.

Fertig. Euer Honeypot sollte jetzt glücklich laufen und jeden Angriff auf euer System bemerken und die dazugehörige Malware sammeln. Nach kurzer Zeit sollte die CWSandbox diese Malware analysiert haben und euch einen Report per E-Mail zukommen lassen.

Der Honeypot hat auch noch andere Zusatzmodule in seinen Modulordner, jedoch hab ich dort nichts weiter groß zum laufen gebracht. (Was wohl auch an meine Faulheit liegt, nachzuforschen, welche Pakete usw. fehlen.)
Probiert einfach ein wenig herum, vielleicht findet ihr ein paar Interessante Features.

Ich hoffe ihr versteht das Tutorial und könnt dadurch euren nepenthes aufsetzen. Über Kommentare und Kritiken würde ich mich sehr freuen. Nutzt dazu einfach die Kommentarfunktion.

~ duke

Edit:
Ich wurde darauf hingewiesen, dass die Portliste in dem Tutorial (welche von der nepenthes doku stammt) nicht mehr aktuell ist. Um dies zu umgehen, geht auf euren Server und schaut, welche Ports nepenthes für sich verwendet. (Das tut ihr mit “lsof -P | grep nepenthes | grep *:”. Stellt sicher das ihr dies mit Root Rechten ausführt, da es sonst zu Permission Denied Fehlern kommen kann.)
Gebt die weiteren Ports dann noch in eurem Router/Firewall frei.

Creative Commons License

Post to Twitter

Dieser Beitrag wurde unter Allgemein abgelegt und mit , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Eine Antwort auf Tutorial: Die tolle Welt des nepenthes.

  1. glaslos sagt:

    Schönes und einfaches Tutorial. Die Portliste ist nicht mehr aktuell, am besten schaust du dir einen Portscan an. CWSandbox finde ich ganz nett, wer es etwas anders möchte, kann die submit-norman.conf um einen Eintrag für joebox.org erweitern. Soviel ich weiß, ist auch im Debian testing Zweig die Version 0.2.2-3 erhältlich, was die Installation etwas vereinfacht. Auch sollte man auf das FOOBAR-MUTTER Problem hinweisen, falls ich nicht falsch liege, wurde dieses Problem von den Entwicklern noch nicht behoben.
    Ich wünsche weiterhin noch viel Erfolg :)

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>