Mit dieser Methode lässt sich von jeder Domain theoretisch jede Subdomain finden. Dies kann nützlich sein, wenn man z.B. von einer Seite eine Subdomain vergessen hat und keinen Link mehr findet.

Dieses Tutorial wurde für Debian (bzw Ubuntu) geschrieben, an manchen Stellen kann es also bei auf RHEL basierenden Systemen zu Abweichungen kommen. 

Bei dieser Methode wird eine indirekte „Erkennung“ durchgeführt, indem der DNS Server dazu aufgefordert wird, Subdomains aufzulösen. Außerdem kann nur theoretisch jede Subdomain gefunden werden, da vor der eigentlichen Erkennung eine Wordlist generiert wird (bzw eine Dictionary genutzt wird, siehe unten) und nur Subdomains gefunden werden können, die sich aus einem Wort in der Wordlist, einem Punkt und der Domain zusammensetzen. 

Los geht’s:

1. Installation benötigter Pakete

Debian / Ubuntu:

apt-get update

apt-get upgrade

apt-get install wget build-essential

CentOS / RHEL:

yum update

yum install gcc gcc-c++ kernel-devel make wget

Dann:

cd /usr/src

wget http://dl.bitforce.io:11520/crunch-3.6.tgz

wget http://dl1.bitforce.io:11520/dnsmap-0.30.tar.gz

tar xfvz crunch-3.6.tgz

tar xfvz dnsmap-0.30.tar.gz

cd crunch-3.6

make

make install

cd ..

cd dnsmap-0.30

make

make install

cd

mkdir sd_bruteforce

cd sd_bruteforce

2. Generierung einer Wordlist

crunch 1 5 abcdefghijklmnopqrstuvwxyz > sub.lst

Sollte eine Meldung wie

Error: setlocale() failed

erscheinen, folgenden Spoiler ausführen und erneut versuchen.

Spoiler

locale-gen en_US en_US.UTF-8 de_DE de_DE.UTF-8

[collapse]

Dieser Befehl lässt crunch eine Datei (sub.lst) schreiben, in der alle Kombinationen, die mit den Buchstaben von a bis z von 1 bis 5 Zeichen Länge möglich sind.

Ist man wieder im Terminal Prompt, kann per

head sub.lst

überprüft werden, ob die 1. 10 Zeilen der Datei gültig aussehen. Der Output sollte folgender sein:

Spoiler

a
b
c
d
e
f
g
h
i
j

[collapse]

3. Nutzung von DNSMap

Jetzt, wo man eine Wordlist hat (wobei der crunch Befehl natürlich nur ein Beispiel ist, siehe „man crunch“ für alle Funk- & Optionen), kanns auch schon los gehen mit der „Entdeckung“!

dnsmap [Domain] -w ~/sd_bruteforce/sub.lst

Bei der Domain sollte KEIN www. davor stehen, sonst wird dnsmap versuchen, z.B. folgende Domains aufzulösen:

a.www.domain.com

b.www.domain.com

c.www.domain.com

Es macht auch keinen Unterschied, ob eine Subdomain nur über SSL erreichbar ist, wenn überhaupt per HTTP/S, da eben nur versucht wird, die zusammengesetzte Domain aufzulösen.

Wurden Subdomains gefunden, werden diese z.B. wie folgt dargestellt:

4. DNSMap im Hintergrund laufen lassen

Hat man eine große Wordlist, empfiehlt es sich, DNSMap im Hintergrund arbeiten zu lassen. Nicht nur, weil man sonst den Server nicht mehr nutzen kann (außer man öffnet eine neue SSH Verbindung), sondern auch, wenn die Verbindung z.B. abreißen sollte.

Debian / Ubuntu:

apt-get install screen

CentOS / RHEL:

yum install screen

Nutzung:

screen

screen1

[Strg + A, C]

Dies erstellt ein neues „Fenster“. In diesem kann man nun DNSM seine Aufgabe geben. Läuft der Vorgang, kann das Fenster per

[Strg + D]

in den Hintergrund geschoben werden und wird dort weiterlaufen – auch, wenn man die SSH Verbindung schließt. Um das Fenster wieder in den Vordergrund zu holen:

screen -r

Um das Fenster zu schließen, in einem Fenster:

exit

ausführen, bis

[screen is terminating]

erscheint. Dann sind alle Fenster geschlossen.


Dictionarys

Wer lieber ein Dictionary nutzt, kann eines per

wget http://dl.bitforce.io:11520/sub_dict.lst

herunterladen (dieses enthält 31298 Wörter).

Wer nur die häufigsten Subdomains ausprobieren möchtet, führt folgendes aus

wget http://dl.bitforce.io:11520/sub_dict_small.lst

und erhält eine kleinere Dictionary, welche 1896 Wörter enthält. Der DNSMap Befehl ändert sich daher dann natürlich zu

dnsmap [Domain] -w ~/sd_bruteforce/sub_dict.lst

bzw

dnsmap [Domain] -w ~/sd_bruteforce/sub_dict_small.lst

Diese Wordlists sind dem Tool „SubBrute“ entnommen.

Der Vollständigkeit halber hier noch die crunch Wordlist (wer crunch nicht extra kompilieren möchte)

wget http://dl.bitforce.io:11520/sub.lst.7z

Entpacken:

apt-get -y install p7zip-full && 7z e sub.lst.7z && rm sub.lst.7z


 

Referenzen

crunch: http://sourceforge.net/projects/crunch-wordlist/

dnsmap: https://code.google.com/p/dnsmap/

subbrute: https://github.com/TheRook/subbrute

[HowTo] Subdomains bruteforcen unter Linux
Markiert in:                                                                                                                                 

Schreibe einen Kommentar

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

*