
Öffnet 1K+ IPs oder Shodan-Suchergebnisse und versucht, sich anzumelden
Öffnet gleichzeitig entweder Shodan-Suchergebnisse, eine bestimmte IP, einen IP-Bereich, eine Domain oder eine Liste von IPs aus einer Textdatei und gibt den Status und den Titel der Seite aus, sofern zutreffend. Fügen Sie die Optionen -u und -p hinzu, um zuerst zu versuchen, sich über ein Formular-Login an der Seite anzumelden und, falls das fehlschlägt, HTTP Basic Auth zu versuchen.
Verwenden Sie -f SEARCHSTRING, um in der HTML-Antwort nach einer bestimmten Zeichenfolge zu suchen und so zu testen, ob die Authentifizierung erfolgreich war. Protokolliert alle Geräte, die antworten, unter Verwendung des Shodan-Suchbegriffs bzw. der Ziel-IPs/-Domain + _results.txt. Eine Einschränkung bei der Suche in der HTML der Antwortseite besteht darin, dass einige Formular-Loginseiten nach einer Authentifizierungsanfrage eine JSON-Objekt-Antwort zurückgeben und nicht den HTML-Quelltext der Seite nach dem Login. In solchen Fällen können Sie oft allein durch die Verwendung von -f "success" feststellen, ob Sie erfolgreich waren oder nicht.
Der Standard-Timeout für die Anfragen beträgt 15 Sekunden. Sendet Stapel von 1000 Anfragen gleichzeitig aus; diese Anzahl kann mit der Option -c angepasst werden. Beachten Sie, dass Shodan bei Verwendung des kostenlosen API-Schlüssels nur die erste Ergebnisseite (100 Hosts) zulässt. Wenn Sie den professionellen API-Schlüssel besitzen, können Sie mit dem Argument -n NUMBER_OF_PAGES die Anzahl der zu testenden Suchergebnisseiten angeben. Standardmäßig wird nur Seite 1 geprüft.
Python 2.7
Modernes Linux
Shodan-API-Schlüssel (nur wenn Sie das Argument -s SEARCHTERM angeben)
Einfachste Verwendung:
python device-pharmer.py -s 'dir-300' -a Wutc4c3T78gRIKeuLZesI8Mx2ddOiP4
Durchsucht Shodan mit dem API-Schlüssel Wutc4c3T78gRIKeuLZesI8Mx2ddOiP4 nach "dir-300". Gibt die IP und den Titel der Antwortseite aus, sofern diese existiert.
python device-pharmer.py -s 'dd-wrt' -a Wutc4c3T78gRIKeuLZesI8Mx2ddOiP4 -u admin -p password -n 5 -f ">Advanced Routing<" --proxy 123.12.12.123:8080 --timeout 30
Durchsucht Shodan mit dem angegebenen API-Schlüssel nach "dd-wrt" und versucht, sich mit dem Benutzernamen "admin" und dem Passwort "password" bei den Ergebnissen anzumelden. Sammelt nur die ersten 5 Seiten (500 Hosts) der Shodan-Ergebnisse und prüft, ob das HTML der Landingpage die Zeichenfolge ">Advanced Routing<" enthält. Gibt "* MATCH *" zusammen mit der IP und dem Titel der Seite in der Ausgabe aus und protokolliert, falls die Zeichenfolge gefunden wird. Verwenden Sie schließlich für alle Anfragen einen HTTP-Proxy unter 123.12.12.123:8080 und setzen Sie den Timeout auf 30 s.
python device-pharmer.py -t 192.168.0-2.1-100 -c 100
Das Ziel 192.168.0-2.1-100 weist das Skript an, 192.168.0.1-101, 192.168.1.1-101 und 192.168.2.1-101 gleichzeitig zu öffnen und den Status sowie den Titel der Antwortseiten zu erfassen. Mit -c 100 wird die Parallelität auf 100 Seiten pro Durchgang begrenzt, sodass das Skript 3 Gruppen mit je 100 IPs durchläuft. Da der Standard-Timeout im Skript 15 Sekunden beträgt, dauert dies etwa ~45 Sekunden.
python device-pharmer.py -t www.reddit.com/login -ssl -u sirsmit418 -p whoopwhoop -f 'tattoos'
Versucht, sich unter www.reddit.com/login speziell über HTTPS mit dem Benutzernamen sirsmit418 und dem Passwort whoopwhoop anzumelden. Sucht in der Antwort-HTML nach dem Text "tattoos", der mit einem abonnierten Subreddit korreliert, um den Authentifizierungserfolg zu prüfen.
python device-pharmer.py --ipfile list_of_ips.txt
Testet jede IP aus einer Textdatei mit zeilenweise getrennten IPs
-a APIKEY: diesen API-Schlüssel bei der Shodan-Suche verwenden (nur in Verbindung mit -s erforderlich)
-c CONCURRENT: eine bestimmte Anzahl von Anfragen gleichzeitig senden; Standard=1000
-f FINDTERMS: in der HTML jeder Antwort nach der Argumentzeichenfolge suchen; bei einer Übereinstimmung diese ausgeben und protokollieren
--ipfile IPTEXTFILE: jede IP in einer Liste von zeilenweise getrennten IPs aus der angegebenen Textdatei testen
-n NUMPAGES: die angegebene Anzahl von Shodan-Suchergebnisseiten durchlaufen und IPs sammeln; 100 Ergebnisse pro Seite
-p PASSWORD: versuchen, sich mit diesem Passwort anzumelden
--proxy PROXY: diesen Proxy für die Anfragen verwenden; für die Anmeldung am Proxy mit HTTP Basic etwas wie user:[email protected]:8080 verwenden
-s SEARCHTERMS: Shodan nach Begriff(en) durchsuchen und jede IP-Adresse ausgeben, ob die Seite eine Antwort zurückgegeben hat, und falls ja, den Titel der zurückgegebenen Seite (folgt Weiterleitungen)
-ssl: speziell HTTPS-Anfragen an alle Ziele senden
-t IPADDRESS/DOMAIN/IPRANGE: versuchen, diese Domain, IP oder diesen IP-Bereich anzusteuern, anstatt Shodan zum Füllen der Zielliste zu verwenden, und Antwortinformationen zurückgeben
--timeout TIMEOUT: den Timeout für jede URI in Sekunden festlegen; Standard ist 15
-u USERNAME: versuchen, sich mit diesem Benutzernamen anzumelden
Copyright (c) 2014, Dan McInerney Alle Rechte vorbehalten.
Die Weiterverbreitung und Verwendung in Quell- und Binärform, mit oder ohne Änderung, ist unter den folgenden Bedingungen gestattet:
DIESE SOFTWARE WIRD VON DEN URHEBERRECHTSINHABERN UND MITWIRKENDEN "OHNE JEDE GEWÄHRLEISTUNG" BEREITGESTELLT, UND ALLE AUSDRÜCKLICHEN ODER STILLSCHWEIGENDEN GARANTIEN, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE STILLSCHWEIGENDEN GARANTIEN DER MARKTGÄNGIGKEIT UND DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK, WERDEN ABGELEHNT. IN KEINEM FALL IST HAFTBAR FÜR DIREKTE, INDIREKTE, ZUFÄLLIGE, BESONDERE, BEISPIELHAFTE ODER FOLGESCHÄDEN (EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE BESCHAFFUNG VON ERSATZGÜTERN ODER -DIENSTLEISTUNGEN; NUTZUNGSAUSFALL, DATEN- ODER GEWINNVERLUSTE; ODER GESCHÄFTSUNTERBRECHUNGEN), WIE AUCH IMMER VERURSACHT UND AUF JEDER HAFTUNGSTHEORIE, OB DURCH VERTRAG, STRIKTE HAFTUNG ODER UNERLAUBTE HANDLUNG (EINSCHLIESSLICH FAHRLÄSSIGKEIT ODER ANDERWEITIG), DIE IN IRGENDEINER WEISE AUS DER NUTZUNG DIESER SOFTWARE ENTSTEHEN, SELBST WENN AUF DIE MÖGLICHKEIT SOLCHER SCHÄDEN HINGEWIESEN WURDE.