Google Hacking: Verzeichnislisten und Intranets
Bei einem Penetration Test geht es vereinfacht darum, alle "Schwachstellen" eines bestimmten "Systems" zu finden. Das System kann eine einzelne Webanwendung sein, sämtliche Websites eines Unternehmens mit mehreren Webanwendungen, oder auch das Unternehmen oder allgemein eine Organisation an sich. Und je nach Ziel ändern sich auch die möglichen Schwachstellen bzw. Angriffspunkte. Bei einer Webanwendung kann man i.A. mit Social Engineering wenig anfangen, während man damit bei einem Unternehmen bzw. genauer den dort beschäftigten Menschen oft weiter kommt als mit "technischen" Angriffen auf die Website des Unternehmens. Und dann ist da noch Google, bzw. genauer das Google Hacking. Darüber erfährt man meist mehr über das Unternehmen, als das eigentlich im Web preis geben will.
Verzeichnislisten sind interessant
Verzeichnislisten bzw. genauer die darin aufgelisteten Dateien, enthalten eine Menge interessanter Informationen. Finden kann man sie z.B. mit den Suchanfragen
intitle:index.of name size
intitle:index.of "parent directory"
Und da i.A. nur eine bestimmte Website von Interesse ist, wird die in jeder Suchanfrage mit angegeben:
site:ziel.example
Um bestimmte Verzeichnisse zu finden, kann die Suche weiter eingegrenzt werden. Um z.B. nur nach Verzeichnislisten zu suchen, die das Wort backup im URL enthalten, wird
inurl:backup
zur Suchanfrage hinzugefügt. Interessant sich z.B. auch Verzeichnisse mit dem Worten assets oder data im URL. Vielleicht enthalten die ja nicht verlinkte Dateien, die eigentlich (noch) nicht zur Veröffentlichung vorgesehen sind? Eine komplette Suchanfrage könnte dann so aussehen:
site:ziel.example inurl:data intitle:index.of name size
Sind bestimmte Dateien von besonderem Interesse, kann deren Name gleich mit an die Suchanfrage angehängt werden, z.B. bericht:
site:ziel.example inurl:data intitle:index.of bericht
Server, wer bist Du?
Verzeichnislisten verraten nicht nur, welche Dateien sich im Verzeichnis befinden. In manchen Fällen, insbesondere bei Apache-Webservern und deren Abkömmlingen, verraten sie durch die Server-Tags in den Verzeichnislisten auch den Webserver. Um z.B. nach Apache-Servern der Version 2.4.1 zu suchen, verwendet man die Suchanfrage
intitle:index.of server.at "Apache/2.4.1"
Einmal durchzählen, bitte!
Hat man ein Verzeichnis gefunden, kann man von diesem ausgehend auf das übergeordnete Verzeichnis und die Unterverzeichnisse zugreifen. Enthält das übergeordneten Verzeichnis keine Verzeichnisliste, kann man oft mögliche weitere Verzeichnisnamen raten und an den URL des übergeordneten Verzeichnisses anhängen. Oder man nutzt Google:
site:ziel.example inurl:/Pfad/zum/übergeordneten/Verzeichnis/
Ansonsten kann man z.B. durch Substitution weitere Verzeichnisse finden. Wurde das Verzeichnis
/Pfad/zum/Verzeichnis/Berichte2011
gefunden, gibt es vielleicht auch die Verzeichnisse
/Pfad/zum/Verzeichnis/Berichte2010
/Pfad/zum/Verzeichnis/Berichte2012
etc., und entsprechend kann man auch bei Dateien vorgehen: Gibt es die Datei
/Pfad/zum/Verzeichnis/Projektbericht123-1.pdf
kann man es ja mal mit
/Pfad/zum/Verzeichnis/Projektbericht123-0.pdf
/Pfad/zum/Verzeichnis/Projektbericht123-2.pdf
/Pfad/zum/Verzeichnis/Projektbericht122-1.pdf
/Pfad/zum/Verzeichnis/Projektbericht124-1.pdf
versuchen. Auch Dateiextensions kann man variieren, um z.B. Backups zu
finden. Dazu wird dann z.B. .php
durch .bak
oder
.php.bak
ersetzt.
Gibt es im gefundenen Verzeichnis z.B. das Unterverzeichnis
Backup/
, in dem es keine Verzeichnisliste gibt, kann man
für alle im Verzeichnis vorhandenen Dateien nach möglichen
Entsprechungen suchen:
/Pfad/zum/Verzeichnis/Backup/[Dateiname1].ext
/Pfad/zum/Verzeichnis/Backup/[Dateiname1].bak
/Pfad/zum/Verzeichnis/Backup/[Dateiname1].ext.bak
/Pfad/zum/Verzeichnis/Backup/[Dateiname2].ext
/Pfad/zum/Verzeichnis/Backup/[Dateiname2].bak
/Pfad/zum/Verzeichnis/Backup/[Dateiname2].ext.bak
usw..
Vom Internet ins Intranet
Interessante Informationen über ein Unternehmen findet man nicht nur im Internet, sondern vor allem im lokalen Netz des Unternehmens, dessen Intranet. Aber vielleicht gibt es ja eine Verbindung zwischen Internet und Intranet? Suchen wir doch mal bei Google, erst mal ganz allgemein:
inurl:intranet intitle:intranet
Das ergibt ca. 2,8 Millionen Fundstellen. Einen Teil davon kann man
sofort ignorieren, da es Texte über Intranets sind, ganz oben steht
z.B. der Wikipedia-Eintrag zum Thema. Ein weiterer Teil besteht aus
absichtlich erreichbaren Startseiten, über die sich befugte Benutzer
im jeweiligen Intranet anmelden können. Aber auch eigentlich nicht
für die Öffentlichkeit bestimmte Informationen lassen sich
finden. Man muss sie in der Menge nur erst finden. Beim Penetration Test
ist das leicht, da die Suche auf site:ziel.example
eingeschränkt werden kann. Ansonsten hilft es, weitere Parameter zur
Suche hinzuzufügen. Wie wäre es mit der Suche nach der
Personalabteilung englischsprachiger Unternehmen? Der Suchbegriff lautet
dann "human resources", und der muss im Text vorkommen:
inurl:intranet intitle:intranet +intext:"human resources"
Evtl. findet man dort ja etwas, was man fürs Social Engineering nutzen kann. Technische Informationen findet man im Intranet evtl. über Suchbegriffe wie ""help.desk", "helpdesk", "research", "forschung", "entwicklung", ... .
In der nächsten Folge geht es mit der Nutzung des Google Hackings beim Penetration Test weiter.
Übersicht über alle Artikel zum Thema
- Google Hacking, ganz einfach
- Google Hacking - The Next Generation
- Google Hacking: Verzeichnislisten und Intranets
- Google Hacking: Webserver finden
- Google Hacking: Webanwendungen finden
- Google Hacking: Portale und Netzwerkhardware finden
- Google Hacking: Interessante Dateien finden
- Google Hacking verhindern: Verzeichnisse schützen
- Google Hacking verhindern, Teil 2
Trackbacks