
Sicherheitsprogramm zur Wiederherstellung von Passwörtern und zum Pen-Testing von Servern, Routern und IoT-Geräten mittels Brute-Force-Passwortangriffen.
Sicherheitsprogramm für Pen-Tests von Servern, Routern und IoT-Geräten
(übrigens, meine Bitcoin-Adresse ist 3A7yuqBcPAcVEM59bNAVQdTCmkxRb5JRgE )
(Hier ist eine alternative, ebenfalls für BTC, da mir mitgeteilt wurde, dass einige Bitcoin-Wallets bestimmte Adressen nicht unterstützen: 1PEDKUiUTxGNJ3XTPfXCTAjpzVzX1VZAme )
Grüße, Genossen, und willkommen zu UBERSCAN 1.0
UBERSCAN wurde entwickelt, um Pen-Tests von Servern und Netzwerken zu unterstützen, und als Werkzeug für Leute wie mich, die versuchen, in das ethische Hacking-Geschäft einzusteigen, um einfach einen Überblick zu bekommen, wie viele Geräte beispielsweise anfällig für den Mirai-Virus sind. Ja, es ist eine Art Wählcomputer und ja, es kann verwendet werden, um Passwörter von Servern und IoT-Geräten zu knacken, und nein, es ist nicht für böswillige oder finstere Zwecke gedacht (siehe RECHTLICHER HINWEIS).
Beispiel für die Befehlszeilenverwendung:
uberscan -user:admin -passblank -scantype:telnet -random_ip -forktimes:20
oder
uberscan -user:root -password:admin -scantype:ssh -random_ip -forktimes:20
oder vielleicht
uberscan -userfile:wordlist.txt -passfile:wordlist.txt -scantype:telnet -random_ip -forktimes:15
Probieren Sie, diese verschiedenen Optionen zu kombinieren und anzupassen, bis Sie etwas Lustiges zum Spielen finden! (NUR EIN SCHERZ, ICH WILL NICHT INS GEFÄNGNIS AAAAAAARRRGGGHHHHHH!)
Dieses Programm (im Folgenden als UBERSCAN oder uberscan bezeichnet) wird unter der GPL-3-Lizenz vertrieben. Alle relevanten Rechte vorbehalten. UBERSCAN IST URHEBERRECHTLICH GESCHÜTZT (c) Batch McNulty 2017. Sie dürfen UBERSCAN ohne Genehmigung verbreiten, modifizieren und/oder kopieren, solange Sie die Bedingungen der GPL-3-Lizenz einhalten.
Dieses Dienstprogramm ist NUR FÜR DIE LEGALE NUTZUNG konzipiert. Ich werde nicht für böswillige Nutzung verantwortlich gemacht. Böswillige Hacker werden ohnehin ihre eigenen Werkzeuge haben; UBERSCAN wurde entwickelt, um Computersysteme zu sichern, nicht zu beschädigen. Wenn Sie mit den Scannern -random_ip und -random_ipblock anfällige Server finden, werden Sie ermutigt, die Besitzer zu kontaktieren und sie über die Sicherheitslücke zu informieren.
Seid nett! Das ist ein Befehl!
Bitte senden Sie alle Todesdrohungen, Auslieferungsbefehle und zwielichtigen Jobangebote an [email protected]. Ich werde versuchen, mich zu melden, kann aber nichts garantieren...
Es hat einige Abhängigkeiten, daher liefere ich eine Batch-Datei mit, die diese automatisch für Sie installieren sollte. Öffnen Sie einfach ein Terminalfenster in dem Verzeichnis, in dem es sich befindet, und geben Sie ein:
sudo bash INSTALL.bash
..warten (es kann lange dauern), und Sie sollten in der Lage sein, UBERSCAN auszuführen (versuchen Sie perl uberscan.pl, wenn Sie wirklich nicht weiterkommen)
Falls das Installationsprogramm nicht funktioniert, sind die erforderlichen Bibliotheken:
WWW::Curl::Easy HTTP::Request Net::SSH::Expect Net::Telnet Net::FTP Net::POP3 IO::Socket::INET Scalar::Util Fcntl utf8 Encode
Scalar::Util, Fcntl, utf8 und Encode sollten alle in Ihrer Perl-Distribution enthalten sein, die mit Linux kommt. Die anderen müssen wahrscheinlich separat installiert werden ... leider hat Curl::Easy selbst eine Abhängigkeit, die schwer zu finden sein kann. Wenn die Datei INSTALL.bash Ihnen keinen Computer hinterlässt, auf dem UBERSCAN läuft, versuchen Sie, einen oder alle dieser Befehle auszuführen und dann die Installationsdatei erneut auszuführen:
sudo apt-get install libcurl4-doc
sudo apt-get install libcurl3-dbg
sudo apt-get install libgnutls-dev
sudo apt-get install libidn11-dev
sudo apt-get install libkrb5-dev
sudo apt-get install libldap2-dev
sudo apt-get install librtmp-dev
sudo apt-get install zlib1g-dev
Außerdem benötigt die Datei INSTALL.bash cpan, das mit Linux kommen sollte – falls nicht, geben Sie ein:
sudo apt-get install cpan
im Terminal, bevor Sie es ausführen.
Noch eine sehr wichtige Sache:
Das Modul Net::SSH::Expect erfordert, dass Sie einige Änderungen an einer Ihrer Systemdateien vornehmen. Es ist:
/etc/ssh/ssh_config
Sie benötigen Superuser-Berechtigungen, um das anzupassen. Laden Sie es also in Ihrem bevorzugten Editor und fügen Sie die folgenden Zeilen hinzu:
Host *
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
(Die Zeile "Host *" könnte bereits vorhanden sein; wenn ja, fügen Sie keine neue hinzu)
Wenn Sie dies nicht tun können, funktioniert uberscan trotzdem – Sie können nur nicht die Option -scantype:ssh verwenden.
2.1 Einleitung
UBERSCAN wurde auf einer Ubuntu-Linux-Plattform entwickelt, daher kann ich nicht garantieren, dass es auf etwas anderem läuft, obwohl ich ziemlich zuversichtlich bin, dass es auf jedem Linux-PC funktioniert. Windows und Macs weniger, aber Sie können sich gerne bedienen.
UBERSCAN kann ein TCP/IP-Netzwerk auf schlecht gesicherte Geräte (einschließlich Router und IoT-Boxen) und SMTP-Mailserver, die für Spammer anfällig sind, scannen. Seine Hauptfunktion ist das Brute-Force-Knacken von passwortgeschützten Servern (natürlich nur für ethische Zwecke!)
Es kann nach den folgenden Diensten / Schwachstellen suchen:
UBERSCAN ist mit den Standard-Ports programmiert, aber Sie können dies mit der Option -port: überschreiben.
2.2 Eine Anmerkung zum Wortlistenmodus:
Der Wortlistenmodus (-passlist:textfile.txt und -userlist:textfile:txt) durchläuft Wortlisten und versucht, die ausgewählten IPs mit ihnen per Brute-Force zu knacken.
Der Wortlistenmodus unterscheidet sich bei verschiedenen Scans. Wenn Sie einen IP-Block, IP-Bereich oder eine Liste von IPs auswählen, durchläuft UBERSCAN die Ziele und versucht denselben Benutzernamen / dasselbe Passwort auf jeder IP, dann geht es zurück und versucht den nächsten Benutzernamen und/oder das nächste Passwort in der Liste, bis die Wortliste(n) erschöpft ist/sind. Dies ist ein ziemlich einfacher Versuch, die alte "Drei-Schlag-und-du-bist-raus"-Passwortsicherheit zu umgehen – wenn die Liste lang genug ist, haben Sie, wenn dieselbe IP wieder an der Reihe ist, einen neuen "Versuch".
Der Modus für zufällige IP-Generierung (-random_ip) funktioniert anders. Da IPs zufällig ausgewählt werden und die Suche unbegrenzt weitergehen kann, gibt es keine Liste von IPs, die durchlaufen werden, daher muss die gesamte Wortliste auf einmal auf das Ziel angewendet werden.
2.3 Der SSH-Scanner:
Die Programmierung des SSH-Scanners hat mir viel Ärger bereitet. Ich habe ihn so programmiert, dass er nach den Eingabeaufforderungen "~", ">" und "#" sowie nach einer "Welcome to"-Nachricht, einer großen Anzahl von "bad password"-Ausgaben sucht und auch eine dritte Option erstellt hat: Wenn er keines findet, erstellt er eine Datei "SSH-MAYBES.txt". Es sollte keine falsch negativen oder falsch positiven Ergebnisse geben, aber falls doch, senden Sie mir bitte alle generierten Dateien (natürlich entsprechend bearbeitet), damit ich das Problem beheben kann.
2.4 Ostereier:
Es gibt ein paar lustige kulturelle Anspielungen in ein oder zwei Status- und Fehlermeldungen des Programms. Diese verleihen UBERSCAN ein wenig Persönlichkeit. Wenn dies Verwirrung stiftet oder zu albern erscheint, freue ich mich immer über Feedback.
2.5 Verabschiedung und weinerliches Betteln:
Zugegeben, UBERSCAN ist etwas grob, aber das muss nicht so bleiben. Ich füge eine Bitcoin-Adresse bei, und wenn die Resonanz gut genug ist, werde ich daran arbeiten, seine Grobheit zu verfeinern, und es wird UBERSCAN 1.1, 1.2, vielleicht sogar UBERSCAN 2.0 geben. Es hängt alles von Ihnen ab! Senden Sie Ihr Geld an die Bitcoin-Adresse:
1PEDKUiUTxGNJ3XTPfXCTAjpzVzX1VZAme
-Denken Sie daran: Wenn Sie dieses Programm im Rahmen Ihrer Arbeit verwenden, sollten Sie wirklich bezahlen! (Als zusätzlicher Anreiz – wenn ich genug Geld bekomme und Leute mich darum bitten, könnte ich sogar den Bettelbildschirm entfernen!)
Obwohl es auch ohne funktioniert, wird dringend empfohlen, UBERSCAN Superuser-Rechte zu gewähren.
UBERSCAN ist ein Kommandozeilenprogramm und erwartet daher, dass mindestens eine Option übergeben wird.
Diese Optionen im Detail:
ARTEN DES SCANS:
-scantype:xxx Legt den Scan-Typ fest. "xxx" kann SSH, FTP, POP3, SMTP, HTTP, Telnet oder Banner sein. Siehe -ftpanon und -smtpbug
-port:nn Setzt den Port auf etwas anderes als den Standard für diesen Dienst. ("-scantype:banner" sucht auf Port 1433, dem SQL-Port).
-ftpanon Suche nach anonymen FTP-Servern. Wird anstelle von -scantype und -user -pass verwendet
-smtpbug Testet auf den SMTP-Bug. Wird anstelle der Optionen -scantype und -user -pass verwendet
-spamcheck Funktioniert nur unter "-scantype:smtp"-Scans. Jedes Mal, wenn eine Verbindung zu einem Server hergestellt wird, wird überprüft, ob er für Missbrauch durch Spammer anfällig ist. Standardmäßig deaktiviert.
-novrfy Stoppt bei einem SMTP-Scan die Ausgabe von VRFY-Befehlen durch UBERSCAN. Impliziert -spamcheck.
BENUTZERNAME- UND PASSWORTSCANNING:
-user:xxx -pass:xxx Setzt den auszuprobierenden Benutzernamen / das Passwort. Wenn Sie mit der Option -random_ip im Internet nach zufälligen Servern unterwegs sind, sind dies und -userblank / -passblank die einzigen Benutzername-/Passwort-Optionen, die UBERSCAN akzeptiert. Normalerweise werden beide verwendet, aber sie sind mit den Optionen -userfile und -passfile (Wortliste) austauschbar, wo diese erlaubt sind, sowie mit den Optionen -userblank und -passblank. Bitte beachten Sie: Diese haben keine Wirkung, wenn -scantype auf SMTP gesetzt ist oder die Optionen -ftpanon oder -smtpbug gesetzt wurden.
-userblank -passblank -userblank richtet es so ein, dass ein leerer Benutzername versucht wird, -passblank setzt ein leeres Passwort. Dies kann bei einigen HTTP-Challenges nützlich sein, bei denen eine oder beide standardmäßig leer gelassen werden.
-userfile:wordlist.txt -passfile:wordlist.txt Versucht jeden Namen und jedes Passwort in der angegebenen Wortliste. Ich kann deren Funktion nur mit regulären, durch Leerzeichen getrennten Wörtern garantieren – die Verwendung von Wortlisten mit Akzenten, nicht-lateinischen Zeichen und Symbolen erfolgt auf eigenes Risiko (obwohl das "@"-Symbol funktionieren sollte).
PROTOKOLLIERUNG, WIEDERHOLUNGEN, ZEITÜBERSCHREITUNGEN, PORT-SCANNING und PAUSE:
-debug Protokolliert fehlgeschlagene Anmeldeversuche sowie alle außer den alltäglichsten Fehlern. Fehler, die im Debug-Modus protokolliert werden, sind plötzliche Trennungen während der Verbindung mit Servern; zusammen mit den fehlgeschlagenen Anmeldeversuchen kann dies auch verwendet werden, um unerwartete Antworten zu diagnostizieren. Speichert auch im -scantype:html-Modus gesammelte Webseiten.
-logall Wie -debug, protokolliert aber auch sehr alltägliche Fehler, die sonst die interessanteren überlagern würden (diese werden als "Banaler Fehler" markiert). Impliziert -debug (d.h., Sie müssen die Option "-debug" nicht eingeben, wenn Sie "-logall" verwenden).
-csv ALLE Ausgabedateien, mit Ausnahme von Webseiten, die im HTML-Scan-Modus gespeichert werden, werden im CSV-Format gespeichert. Gespeicherte Daten in der Reihenfolge des Speicherns: Prozess-ID, Scan-Typ, IP-Adresse, Portnummer, Benutzername, Passwort und "minutesup" – die Anzahl der Minuten, die UBERSCAN läuft.
-whois Führt eine WHOIS-Abfrage auf dem Server durch, wenn ein Passwort gefunden wird, und protokolliert das Ergebnis in einer Textdatei (whoisreport.txt). Standardmäßig deaktiviert.
-max_retries:nn Dies ist standardmäßig auf 5 gesetzt. Wenn Sie einer dieser armen paranoiden Socken sind, die hinter ihren Proxys und schlechten WLAN-Verbindungen arbeiten, können Sie es gerne auf 15 oder 20 hochdrehen – ich habe es getan! Eine normale Person möchte es vielleicht sogar nach unten anpassen, andererseits, wenn Sie wirklich sicherstellen wollen, dass Sie jedes Passwort auf jeder einzelnen IP versuchen, könnten Sie es lächerlich hoch einstellen, wie auf -max_retries:999 (obwohl ich das nicht empfehle!)
-timeout:nn wobei nn eine Zahl ist. Setzt die Zeitüberschreitungsvariable in Sekunden. Standardwert ist 60. Wenn Sie hinter einem Proxy sind, sollten Sie ihn ziemlich hoch einstellen, im Bereich von Hunderten (ich habe dieses Programm hinter einem Proxy geschrieben). Wenn Sie den SSH-Scan häufig verwenden, möchten Sie ihn möglicherweise niedriger einstellen, da SSH::Expect so funktioniert – es gibt keine Daten zurück, bis die Zeitüberschreitungsperiode abgelaufen ist. Wenn Sie es nur in Ihrem LAN und nie mit dem Internet verbinden, vielleicht noch niedriger. Persönlich würde ich ihn nicht unter 60 Sekunden einstellen.
-portscan_timeout: Auch dies ist eine Anzahl von Sekunden. Es ist niedrig eingestellt, aber gelegentlich, wenn Sie ganz sicher sein wollen, möchten Sie es vielleicht auf 5 oder sogar 10 erhöhen. Es ist Ihre Wahl.
-noportscan Schaltet den Port-Scan aus. Diese Funktion ist nützlich, wenn Sie hinter proxychains oder einem proxychains-ähnlichen Proxy-Programm sind oder wenn Sie ziemlich sicher sind, dass Sie eine gültige IP-Adresse / Port zum Hacken haben, und nicht riskieren möchten, diese versehentlich zu überspringen. Besonders bei einer schlechten Verbindung.
-pause Hält UBERSCAN nach der Verarbeitung der Eingaben an, damit Sie überprüfen können, ob Sie alles richtig eingerichtet haben. Standardmäßig deaktiviert.
MULTITASKING:
-forktimes:nn Verwendet parallele Verarbeitung, um mehrere Verbindungen gleichzeitig herzustellen – bitte beachten Sie: Die Option -forktimes funktioniert nur, wenn die Option -random_ip oder -random_ipblock gesetzt ist. Ich persönlich wähle einen Wert zwischen 5 und 15, aber Ihre Erfahrung kann je nach verfügbarer Bandbreite variieren. In diesem Modus ist es bekanntlich schon abgestürzt – als Alternative finden Sie es vielleicht einfacher, einfach eine Batch-Datei mit vielen solcher Befehle zu erstellen, die Sie hineinkopieren und einfügen:
perl uberscan.pl -user:admin -pass:password -random_ip -scantype:telnet &
und dann mit bash ausführen.
IP-OPTIONEN:
Standardmäßig sucht UBERSCAN nach IP-Adressen aus einer Datei namens ipnumbers.txt. Wenn das unpraktisch ist, gibt es eine Reihe von Befehlszeilenoptionen, mit denen Sie IPs aus Ihrer eigenen Datei auswählen, zufällig auswählen oder (grob) aus IP-Bereichen oder IP-Blöcken generieren können. Sie können sogar eine einzelne IP-Adresse auswählen und diese scannen – sehr gut für intensive Wörterbuchangriffe!
-ipfile:filename.txt Holt IP-Adressen aus der Datei filename.txt. Dies kann jede Datei sein. Es durchsucht die angegebene Datei nach allem, was einer IP-Adresse entspricht, und setzt es in eine Liste, die dann gescannt wird. Das bedeutet, dass es in der Lage sein sollte, seine eigene Ausgabe zu parsen, sodass Sie einen -random_ip-Scan mit den Optionen -debug oder -logall ausführen, die daraus resultierende errors.txt-Datei umbenennen und diese in einen neuen Scan einlesen können, ohne all diese lästige Bearbeitung durchführen zu müssen.
-ipblock:nnn.nnn.0.0/16 -ipblock:nnn.nnn.nnn.0/24 -ipblock:192.168.0/16 - Alles von 192.168.0.0 - 192.168.255.255 durchsuchen -ipblock:192.168.1/24 - Alles von 192.168.1.0 - 192.168.1.255 durchsuchen Scannt den ausgewählten IP-Block (/16 oder /24) anstelle der Verwendung von ipnumbers.txt. Es ist nicht sehr clever – es zählt nur ab Null, wenn Sie also 192.168.1.0/16 eingeben, wird trotzdem von 192.168.0.0 bis 192.168.255.255 gesucht. Keine Sorge, es gibt immer -iprange!
-iprange:nnn.nnn.nnn.nnn - nnn.nnn.nnn.nnn -iprange:192.168.0.0 - 192.168.0.3 -iprange:192.168.5.0 - 192.168.7.2 Scannt den angegebenen Bereich von IP-Nummern. Es kann jedoch nur die letzten beiden Oktette verarbeiten.
-ipsingle:nnn.nnn.nnn.nnn -ipsingle:192.168.0.1 Scannt eine einzelne IP – sehr leistungsstark in Verbindung mit den Optionen -userfile: und -passfile:!
-random_ip Durchläuft eine Routine, die zufällige IP-Nummern erstellt, damit Sie im wilden Internet nach etwas Heißem suchen können. NICHT FÜR FINSTERE ZWECKE VERWENDEN!
-random_ipblock:nnn -random_ipblock:nnn.nnn Wie -random_ip, sucht aber nur im angegebenen IP-Block. Beachten Sie, dass NACHSTELLENDE NULLEN und SLASH-NOTATION BEI DIESER OPTION NICHT VERWENDET WERDEN! (im Gegensatz zur Option -ipblock) Beispiel:
perl uberscan.pl -scantype:banner -random_ipblock:192.168 perl uberscan.pl -scantype:banner -random_ipblock:192
RECHTLER / STANDARDKLAUSELN:
Die aufregende Welt der rechtlichen Standardklauseln steht Ihnen nun zur Verfügung. Rufen Sie einfach UBERSCAN mit der Option -gpl auf, um die Lizenz, unter der es vertrieben wird, über Ihren Bildschirm laufen zu sehen. Im Ernst, jeder, der daran denkt, dieses Programm zu bearbeiten und/oder weiterzuverbreiten, sollte es lesen – Sie dürfen das tun, aber Sie müssen weiterhin meinen Namen anzeigen und mich als Autor des Originalprogramms nennen.