
Einfacher TCP/UDP-Honeypot, implementiert in Perl
TCP/UDP-Honeypot-Programm, implementiert in Perl
README für Malbait, 2/10/17
(Übrigens, meine Bitcoin-Adresse ist 3A7yuqBcPAcVEM59bNAVQdTCmkxRb5JRgE )
(Hier ist eine Alternative, ebenfalls für BTC, da ich Berichte bekommen habe, dass einige Bitcoin-Wallets bestimmte Adressen nicht unterstützen: 1PEDKUiUTxGNJ3XTPfXCTAjpzVzX1VZAme )
Willkommen bei Malbait, deiner einfachen Perl-Honeypot-Komplettlösung!
Malbait ist ein Honeypot- oder „Malware-Köder"-Programm. Es ist dazu gedacht, die Zeit von Hackern zu verschwenden und feindlichen Datenverkehr im Internet (oder in deinem LAN) zu überwachen.
Malbait erstellt eine Reihe von Scheinservern auf ausgewählten oder Standard-TCP- und, falls ausgewählt, UDP-Ports. Wenn sich jemand oder etwas mit ihnen verbindet, wird dessen Eingabe in den Logdateien aufgezeichnet.
Diese laufen als Hintergrundprozesse, daher musst du entweder deinen Computer ausschalten oder den „kill"-Befehl der Shell (oder besser noch „skill") verwenden, um sie loszuwerden. Du kannst sie mit netstat überwachen. Ich empfehle:
sudo netstat -anp|grep perl
um zu sehen, was lauscht, und
sudo skill -9 perl
um sie abzuschießen, wenn du genug hast.
Hinweis: Wenn du install.sh verwendest, um dieses Programm zu installieren, musst du
sudo skill -9 malbait
stattdessen ausführen. Du kannst es trotzdem mit folgendem Befehl überwachen: sudo netstat -anp|grep perl
Alternativ kannst du die Maschine einfach herunterfahren. Benutze Malbait natürlich nicht, während du Perl für etwas anderes verwendest! Ich empfehle eine dedizierte „Köder"-Maschine, entweder etwas Kleines wie einen Raspberry Pi, der die Standard-Ports bedient, oder einen großen Computer, der so viele Ports bedient, wie du abhören kannst (vorzugsweise alle).
Malbait verwendet standardmäßig TCP, kann aber UDP für sich allein sowie beide parallel laufend unterstützen.
Es wird SEHR NACHDRÜCKLICH empfohlen, dieses Programm im Superuser-Modus zu verwenden, entweder durch Aufruf von gainroot (sudo gainroot) oder indem du es mit sudo ausführst (sudo malbait). Du MUSST Superuser-Berechtigungen haben, um einen der ersten 1024 Ports zu öffnen.
Es wird so aufgerufen:
malbait -foo
Wenn du es ohne Parameter ausführst, gibt es einen langen Text aus, der die Verwendung weiter erklärt. Wenn du „out of the box" loslegen willst, starte
malbait -defaults
Dies öffnet seine Standard-Ports und erstellt Server, wo immer möglich.
Malbait kann Scheinserver für Telnet, FTP, SMTP, POP3, BGP, HTTP (nicht gerade brillant), TR-69 (nicht gerade brillant), imap, systat, echo und den alten ASCII-„Time"-Server erstellen. Standardmäßig werden diese auf allen ihren Standard-Ports geöffnet, aber du kannst Ports für sie angeben.
Du kannst auch einen Bereich von Ports öffnen, z. B.
malbait -ports:1-1024
öffnet die Ports 1-1024 (die „Well-Known"- oder „beschränkten" Ports) und erstellt Scheinserver, wo dies angebracht ist.
Die Nutzung von Malbait wird nur durch die Menge an Arbeitsspeicher begrenzt, die du hast. Die Optionen -trans_proto:tcpudp und -ports: geben dir die Möglichkeit, jeden einzelnen Port zu überwachen, wenn deine Maschine hardcore genug ist – oder deinen Computer zum Absturz zu bringen, wenn nicht. Ich stelle fest, dass mein kleiner Lenovo-x200-Notebook ungefähr 6000 Ports verkraftet, bevor es anfängt, verrücktzuspielen, aber deine Erfahrung kann abweichen. Willst du sehen, wie leistungsfähig deine neue Kiste WIRKLICH ist? Malbait kann einen Benchmark liefern – persönlich würde ich liebend gern sehen, was auf einer Maschine passiert, die
malbait -ports:1-65535 -trans_proto:tcpudp
auf einem sehr leistungsfähigen Computer läuft – meiner Erfahrung nach gibt es bei nur 10 % davon definitiv mehr bösartigen UDP-Verkehr da draußen (hauptsächlich Idioten, die offenbar versuchen, kostenlose Telefonate zu ergaunern), und Telnet ist eine absolute Petrischale, aber ich würde gern eine Untersuchung des unerforschten Territoriums dahinter sehen, falls jemand die Rechenleistung (und die Fähigkeit und die Eier / Eierstöcke) hat, ihre Firewall komplett zu deaktivieren!
Wenn du versuchst, beispielsweise einen FTP-Server im UDP-Modus zu öffnen (malbait -proto:ftp -trans_proto:udp), werden die Standard-Ports geöffnet – aber du bekommst keinen vorgetäuschten FTP-Server! UDP erstellt nur Server für UDP-kompatible Dienste, nämlich asciitime, systat, echo und die speziellen Meta-Protokolle „hacktime" und „fuzz".
Hacktime ist ein kleiner Scherz, inspiriert vom Film „Kung Fury". Es erstellt NTP-Zeitserver, sowohl altmodische als auch moderne, und überträgt entweder nur Einsen oder nur FFs – die Idee dahinter ist, das Rollover-Datum des Unix-Millenniums („hacktime-2036") oder ein frisch gebootetes System („hacktime-1900") nachzuahmen. Offensichtlich ist der NTP-Server viel komplizierter als das, und es wird wahrscheinlich nicht funktionieren, aber es wird definitiv alle Hacker verwirren, die dich angreifen, weil sie denken, du seist ein NTP-Server!
Fuzz ist genau das – ein Versuch, automatisierte Angriffe zu stören, indem man zufälligen Müll auf sie wirft. Auch das ist experimentell, und ich nehme es nicht unbedingt besonders ernst, aber ich dachte, jemand könnte es nützlich finden, also bleibt es drin.
Der HTTP-Server sucht nach einer Datei namens „webpage.html". Wenn er sie nicht findet, erzeugt er stattdessen eine einfache 404-Seite. Auch das ist nicht brillant – bei diesem Programm geht es mehr darum, dir zu helfen, die exotischen, zufälligen Clients zu untersuchen, die versuchen, sich mit dir zu verbinden, als um langweilige, alte Webcrawler.
Beachte, dass du, wenn du es in einem Webbrowser öffnest, viele „HTTP/1.1 200 OK"-Zeichenfolgen unterhalb des Inhalts sehen wirst; das liegt daran, dass es nicht dafür gedacht ist, in einem Webbrowser geöffnet zu werden, sondern dafür, potenziell bösartige Webcrawler-Bots so lange wie möglich bei der Stange zu halten.
Du kannst die Standard-webpage.html natürlich gerne durch deine eigene ersetzen – du darfst sie gerne verwenden, aber sie ist für Demonstrationszwecke gedacht.
Die Option -transblank erlaubt es dir, die Erstellung von Scheinservern zu überschreiben. Wenn du also
malbait.pl -port:23 -proto:transblank
oder