Portscanning von 0.0.0.0/0 mit SHODAN

Vor einiger Zeit erzählte mir ein Freund, er würde gerne mal den kompletten IPv4-Bereich scannen, um zu sehen, welche IPs in Benutzung, welche Ports häufig offen und welche Service-Banner anzutreffen sind.
Doch wie das so häufig im Leben der Fall ist: Wenn man eine Idee hat, gibt es bestimmt schon jemanden, der eine ähnliche Eingebung hatte und diese in die Tat umgesetzt hat.

An dieser Stelle kommt der Dienst SHODAN ins Spiel. Hier wird in regelmäßigen Abständen das ganze Internet nach offenen Ports durchkämmt und diese Ergebnise für alle zur Verfügung gestellt. SHODAN kann somit als eine Suchmaschine benutzt werden, doch interessieren hier nicht Inhalte von Webseiten, sondern die offenen Ports und entsprechenden Banner von erreichbaren Rechnern.

Die Suchmaske ist realitv selbsterklärend. Filter wie „port“ oder „country“ können die Suchresultate entsprechend eingrenzen. Sollte man also nach SSH-Servern auf Debian-Squeeze-Basis in Deutschland suchen, ergäbe sich die folgende Anfrage:

debian squeeze country:DE port:22

Ebenso sind Zeichenketten wie „default password“ oder „Axis“ interessant, wenn man entweder nach Diensten mit voreingestellten Passwörtern oder Webcams suchen möchte.

Die Suchmaske lässt genügend Spielraum und es lässt sich nach allem suchen, was man sich in Bannern vorstellen kann. Die Seite mit den am meisten benutzten Suchanfragen gibt einen sehr guten Einblick in die Möglichkeiten dieser Suchmaschine.

Über den Nutzen und die moralischen Bedenken bezüglich dieses Angebots lässt sich natürlich trefflich streiten, doch gerade für Penetrationstester ist dieser Dienst in der Vorbereitungsphase sehr hilfreich, da hier bereits erhobene Daten benutzt werden können, ohne mit einem Portscan selbst aktiv werden zu müssen. Die Ergebnisse von SHODAN können schon ein wenig älter sein, doch hat man einmal einen Einstieg gefunden, lohnt es sich an dieser Stelle weiter zu forschen.

Um den Penetrationstester zu unterstützen, gibt es natürlich auch für das große Framework Metasploit ein Modul (auxiliary/gather/shodan_search), welches die Suchergebnisse direkt in Metasploit importiert. Um dieses Modul nutzen zu können, muss man sich jedoch bei SHODAN registrieren, um einen API-Key zu erhalten. Die Registrierung und der API-Key sind kostenfrei, doch wie bei vielen anderen Diensten auch, gibt es hier ebenso eine kostenpflichtige Variante, bei der einige weitere Features enthalten sind.

In Metasploit gestaltet sich die SHODAN-Suche nun folgendermaßen:

msf > use auxiliary/gather/shodan_search
msf auxiliary(shodan_search) > info

       Name: Shodan Search
     Module: auxiliary/gather/shodan_search
    License: Metasploit Framework License (BSD)
       Rank: Normal

Provided by:
  John Sawyer <johnhsawyer@gmail.com>
  sinn3r <sinn3r@metasploit.com>

Basic options:
  Name           Current Setting   Required  Description
  ----           ---------------   --------  -----------
  DATABASE       false             no        Add search results to the database
  FILTER                           no        Search for a specific IP/City/Country/Hostname
  MAXPAGE        1                 yes       Max amount of pages to collect
  OUTFILE                          no        A filename to store the list of IPs
  Proxies                          no        Use a proxy chain
  QUERY                            yes       Keywords you want to search for
  SHODAN_APIKEY                    yes       The SHODAN API key
  VHOST          www.shodanhq.com  yes       The virtual host name to use in requests

Description:
  This module uses the SHODAN API to query the database and returns
  the first 50 IPs. SHODAN accounts are free & output can be sent to a
  file for use by another program. Results can also populated into the
  services table in the database. NOTE: SHODAN filters (port,
  hostname, os, geo, city) can be used in queries, but the free API
  does not allow net, country, before, and after filters. An unlimited
  API key can be purchased from the Shodan site to use those queries.
  The 50 result limit can also be raised to 10,000 for a small fee.
  API: http://www.shodanhq.com/api_doc FILTERS:
  http://www.shodanhq.com/help/filters

msf auxiliary(shodan_search) > set SHODAN_APIKEY "AAABBBCCCDDD"
SHODAN_APIKEY => AAABBBCCCDDD
msf auxiliary(shodan_search) > set QUERY "debian squeeze port:22"
QUERY => debian squeeze port:22
msf auxiliary(shodan_search) > run

[*] Total: 666295 on 13326 pages. Showing: 1
[*] Country Statistics:
[*] 	United States (US): 186243
[*] 	Germany (DE): 112743
[*] 	Russian Federation (RU): 64901
[*] 	France (FR): 41558
[*] 	Argentina (AR): 33487
[*] Collecting data, please wait...

IP Results
==========

 IP                  City               Country             Hostname
 --                  ----               -------             --------
 103.11.XXX.YYY:22   N/A                New Zealand
 109.205.XXX.YYY:22  N/A                Poland              somehostname.com
 128.30.XXX.YYY:22   N/A                United States       anotherhostname.com
 [...]

[*] Auxiliary module execution completed
msf auxiliary(shodan_search) >

Wie man in der Info-Ausgabe des Moduls sehen kann, stellt die freie API nur einige Filter zur Verfügung. Möchte man den Dienst voll nutzen, kommt man nicht umher, die API-Gebühr zu bezahlen.

Abschließend lässt sich sagen, dass SHODAN für den Penetrationstester eine sinnvolle Ergänzung zu anderen Informationsbeschaffungswerkzeugen darstellt, ohne aktiv die ausgesuchten Ziele ansprechen zu müssen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.