
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
malbait.pl -proto:telnet -transblank
aufrufst, sendet Malbait das, was einer leeren Antwort am nächsten kommt (ein einzelner, einsamer Wagenrücklauf), an Clients, anstatt einen „Telnet-Server" zu erstellen.
Verschiedene Optionen wurden für Liebhaber von Computer-Exotik bereitgestellt.
-noloop: Keine Schleife – beendet jeden Server nach einer Verbindung. Wenn es ein UDP-Server ist, beendet es ihn, nachdem der Client einen „Befehl" eingegeben hat.
-no_multiplexing: Stoppt das Multiplexing des TCP-Servers, d. h. das Starten von Servern in einem Kindprozess. Obwohl du auf diese Weise viel Speicher sparen kannst, wird es NICHT empfohlen – bekanntermaßen bringt nmap die TCP-Server von Malbait zum Absturz, und die Tatsache, dass sie in einem Kindprozess laufen, bedeutet, dass Malbait sich von diesem und anderen böswilligen Verbindungsversuchen erholen und sie protokollieren kann. Wenn du also die Option „-no_multiplexing" verwendest, GARANTIERE ich dir, dass du verwaiste temporäre Dateien wie einen Ausschlag über deinen gesamten Arbeitsordner / dein Arbeitsverzeichnis verstreut vorfinden wirst, und das wird dich sehr traurig machen; du wirst außerdem Server dauerhaft verlieren, wenn sie abstürzen. TL;DR: Verwende diese Option nicht.
-maxreq:nn Erlaubt dir, potenziell nn TCP-Server gleichzeitig zu starten, sodass du (möglicherweise) so viele „Clients" auf einmal bedienen kannst. Standard ist 2.
-noblocking: Startet Server im „nicht blockierenden" Modus; das hat nicht viel Sinn, obwohl es uns weniger anfällig für nmaps Spielchen machen könnte, wenn es zusammen mit -no_multiplexing verwendet wird. Aber warum solltest du das wollen? Im Ernst, einige Clients bevorzugen es, wenn du nicht blockierend arbeitest. Wenn du also Probleme hast, versuche diese Option zu verwenden.
-timeout:nn Setzt das Timeout für Clients auf nn Sekunden. Standard ist 30 – aber wenn du viele automatisierte Angriffe bekommst, möchtest du das vielleicht senken, damit dir nicht die ganze andere Malware entgeht, die sich mit deinem Computer verbindet.
-report:filename.txt Erlaubt dir, deine eigenen Berichtsdateien zu benennen.
-recvbuffer:nn: Setzt eine interne Variable, die recv (empfangene Bytes) auf den Wert nn puffert. Standard ist 1024. Wenn du also mehr als 1 kB auf einmal schlucken willst (kein unvernünftiger Wunsch), ist das die Stelle, an der du es änderst.
Die Textausgabe von Malbait ist im Moment ein wenig ... unordentlich. Sie ist voller Debugmeldungen und Statusinformationen. Du kannst sie gefahrlos ignorieren, es sei denn, du bist Entwickler oder Masochist. Tatsächliche Fehlermeldungen werden in der Logdatei aufgezeichnet.
Malbait erstellt drei Arten von Logdateien: eine CSV-Datei, die dir einen Überblick über alle Clients gibt, die sich mit deiner Maschine verbunden haben, eine Textdatei mit detaillierteren Daten und Analysen sowie temporäre Dateien (mit Namen wie TEMP-16537), die automatisch gelöscht werden, wenn Malbait Ports öffnet / schließt und „Server" erstellt / zerstört.
Entschuldige die temporären Dateien, es war der einzige Weg, um sicherzustellen, dass der GESAMTE Datenverkehr erfasst wird, selbst wenn er versucht, uns zum Absturz zu bringen! Wenn du welche herumliegen siehst, tu nichts, aktualisiere einfach die Seite, und sie werden wahrscheinlich verschwinden.
Wenn die Leute Interesse an diesem Programm zeigen und mir E-Mails / Geld / Liebesbriefe / Drohungen schicken, werde ich es mit Updates und neuen Funktionen unterstützen – zum Beispiel kann ich leicht ICMP-Unterstützung hinzufügen und vielleicht auch eine bessere Behandlung von Web-Clients. Ich hatte eine großartige Zeit beim Schreiben dieses Programms, und ich weiß, dass es mir richtig Spaß machen würde, es zu unterstützen! Aber wenn ich nichts von den Leuten höre, werde ich annehmen, dass es nicht so nützlich ist, und mich anderen Dingen zuwenden. Wenn du also weitere großartige Funktionen sehen willst oder dir wünschst, dass ich den nervigen Bug X behebe, bitte melde dich!
Meine E-Mail-Adresse ist [email protected] Die Bitcoin-Adresse für dieses Programm (Tipp, Tipp) ist 16P267RxgkLsEDVEKwLGsfnUCJ6bfgyWKR
Danke fürs Lesen, und bitte, bitte schick mir deine Satoshis!