Im Zuge der Digitalisierung werden immer mehr Geräte an das Internet angebunden. Im Folgenden möchte ich eine Suchmaschine hierfür vorstellen. Mein Anspruch ist es hierbei nicht, genauer auf einzelne Funktionen einzugehen und alle abzudecken. Vielmehr möchte ich die grundsätzliche Funktionsweise und Bedienung erläutern.
Um Webseiten zu finden ist oftmals Google die erste Wahl .
Möchte man Geräte finden, die eine bestimmte Software laufen haben bietet sich Shodan.io an.
Wie funktioniert Shodan ?
Hauptsächlich werden die Daten durch Banner grabbing gesammelt.
Ein Banner ist eine textuelle Beschreibung eines Services auf einem Gerät. Der Inhalt dieser Banner ist von der Art des Services abhängig. Ein typischer HTTP Banner sieht etwa so aus:
Hier kann man also erkennen, dass ein nginx Server der Version 1.1.19 läuft.
Hier noch ein Beispiel für ein industrielles Kontrollsystem (Siemens S7)
Dieser unterscheidet sich offensichtlich stark vom HTTP Banner.
Die Shodan crawler scannen keine Netzwerkbereiche sondern agieren rein zufällig. Dafür wird also eine zufällige IP sowie ein zufälliger Port gewählt, von dem sich der Banner geholt wird.
Neben den Bannern werden Metadaten wie Hostnamen, Betriebssystem, geographischer Standort etc. gespeichert.
Das Web Interface
Die wohl einfachste Möglichkeit Daten von Shodan zu erhalten ist das Web Interface.
Mithilfe der Filter lässt sich die Suche gut eingrenzen.
Ein paar einfache Filter sind Beispielsweise:
country
- Geräte innerhalb eines Landes findenhostname
- Geräte mit einem bestimmten Hostnamen findengeo
- Angabe von Koordinatenos
- Angabe des Betriebssystemsport
- Angabe des Ports
Suchen wir beispielsweise nach Apache Servern der Version 2.2.3 in Deutschland können diese mit apache 2.2.3 country:"DE"
einfach gefunden werden.
Man kann unter dem Punkt "explore" des Webinterfaces auch einfach etwas rumspielen und findet so beispielsweise Windturbinen:
Schauen wir uns diese mal beispielsweise an können wir Daten wie diese einsehen:
Unter dem Punkt "Maps" können die Suchergebnisse zusätzlich auf einer Karte veranschaulicht werden.
Command-Line Interface
Um den Dienst produktiv nutzen zu können möchte man in der Regel nicht an dem Web Interface arbeiten sondern über das CLI.
Über das Python module easy_install lässt sich Shodan leicht installieren:
easy_install shodan
Anschließend muss shodan initialisiert werden:
shodan init <API Key>
Den API key könnt ihr in eurem Account (https://account.shodan.io) einsehen.
Nun lassen sich die Funktionalitäten bequem über die Konsole nutzen.
Beispiel:
Viele der Funktionalitäten lassen sich nur mit einem Account nutzen. Des weiteren sind manche Funktionen kostenpflichtig.
Disclaimer
Das Nutzen der Dienste und auch das Besuchen der entsprechenden Seiten ist legal. Wird eine Authentifizierung erwartet ist nicht erlaubt beispielsweise Standart Logins einzugeben (auch wenn dies wohl oft funktionieren würde)
Vielen Dank fürs Lesen !
Hammer was ich vor ein paar Jahren alles an offenen Geräten damit schon gefunden habe ;)
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Super Blog! Genau nach meinem Geschmack! Werde hier öfters mal reinlesen, hoffe, du schreibst regelmäßig über Dinge aus dem Security und Data Saftey Bereich!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Kannte Shodan schon! Aber danke für die sehr ausführliche Erklärung. Vorallem die Bedienung über CLI habe ich mir noch nie davor angeschaut.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Meiner IOToaster-Zombie-Armee steht nichts mehr im Wege!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
great contribution
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit