Von Zeit zu Zeit muss ich beispielsweise Subdomains einer Site finden.

Beginnend mit example.com

  • sub1. example.com
  • other.example.com
  • another.example.com

Ich suche nach zusätzlichen Möglichkeiten, um diese Ziele zu überprüfen, und möchte eine Liste aller Subdomänen einer Domain erhalten.

Ich mache derzeit eine Reihe von Dingen, einschließlich

  • Verwenden von Maltego zum Crawlen nach Informationen
  • Verwenden von Suchmaschinen zum Suchen nach Subdomains
  • Crawlen von Site-Links
  • Untersuchen von DNS-Einträgen
  • Untersuchen falsch konfigurierter SSL-Zertifikate
  • Erraten von Dingen wie „vpn.example.com“

Ich denke, es gibt mehr als die diejenigen, die ich bisher gefunden habe, aber jetzt habe ich keine Ideen mehr.

Kommentare

  • Es gibt noch einen anderen Po st auf stackoverflow, dass ‚ ziemlich gut ist: [Liste der Subdomains] [1] [1]: stackoverflow.com/questions/ 131989 / …
  • Dann gibt es nur einen Weg – machen Sie es wie maltego: Machen Sie fundierte Vermutungen …
  • Ich würde es mit Klopfen versuchen ( code.google.com/p/knock ), aber Vorsicht: Es besteht die Gefahr, auf die schwarze Liste gesetzt zu werden.
  • Es gibt ‚ ein Python-Skript namens subdomainer.py, das Ihnen helfen kann … Suchen Sie auf Google
  • FYI, es kann gefunden werden auf der Website edge-security.com , aber der alte Link auf der Wiki-Seite SecurityTube ist tot (obwohl es ein Verwendungsbeispiel gibt, das natürlich sowieso in usage() definiert ist). Nach dem Quellcode zu urteilen, werden Daten von drei großen Suchmaschinen (Yahoo, MSN, Google) und für mich die obskure Website pgp.rediris.es, die ein E-Mail-Scrapper zu sein scheint, gesammelt.

Antwort

Als Pentester kommt es häufig vor, dass er die Subdomains für eine Site finden kann. Also habe ich ein Tool geschrieben, SubBrute , das dies recht gut macht, wenn ich es selbst sage. Kurz gesagt, dies ist insofern besser als bei anderen Tools (heftig2), als viel schneller, genauer und einfacher mit zu arbeiten ist . Dieses Tool enthält eine Liste der realen Subdomains, die beim Spinnen im Web erhalten wurden. Diese Subdomain-Liste ist mehr als 16-mal so groß wie wilde2 und Subbrute benötigt ungefähr 15 Minuten, um diese Liste bei einer Heimverbindung zu erschöpfen. Die Ausgabe ist eine saubere, durch Zeilenumbrüche getrennte Liste, die einfach als Eingabe für andere Tools wie nmap oder einen Schwachstellenscanner für Webanwendungen verwendet werden kann.

Kommentare

  • Super, ich ‚ werde es überprüfen. Jede Idee, wie gut es mit ‚ klopfen ‚?
  • @ D3C4FF klopfen ist Mist.
  • Alle Ehre sei Rook. Ich habe das Tool heute in einem Live-Test verwendet und es hat wie ein Zauber funktioniert. Es fehlte nur eine von zwei Dutzend Subdomains mit dem Namen mywebreading
  • @ D3C4FF Hölle ja, ich ‚ bin froh, dass es so war der Trick;)
  • @Rook nur eine kurze Idee bezüglich Subbrute, füge die Option hinzu, die IP-Adresse auch aus den gefundenen Hostnamen aufzulösen (und auszudrucken). Ich habe diese Änderung vorgenommen und sie hat bei einigen Tests geholfen, bei denen bestimmte Bereiche außerhalb des Geltungsbereichs lagen, obwohl es sich um Subdomänen handelte. Nochmals vielen Dank!

Antwort

1. Zonenübertragung

Einige Nameserver ermöglichen DNS-Zonenübertragungen an Personen im Internet, normalerweise unbeabsichtigt. In dieser Frage wird weiter erläutert: DNS-Zonenübertragungsangriff .

Tools für Zonenübertragungen

Die In der zweiten Antwort auf diese Frage wird erwähnt, wie dies sowohl für Windows als auch für Linux getestet werden kann:

Windows:

nslookup > server <DNS you are querying> > set type=any > ls -d <target> 

Unix (nslookup ist unter Unix veraltet):

dig -t axfr @<DNS you are querying> <target> 

(Ich habe die Unix-Version bearbeitet, da -axfr anscheinend nicht funktioniert. Ich musste -t axfr.)

2. DNSSEC-Zonenlauf

DNSSEC signiert DNS-Einträge, sodass Sie sicher sein können, dass Sie die richtige Antwort erhalten (angesichts einiger Vertrauenswurzeln und Vermittler). Aber wie beweisen Sie, dass etwas nicht existiert, z. Wie beweist der Nameserver von example.com bei der Suche nach nonexistentsub.example.com, dass keine Subdomain vorhanden ist? Der Signaturschlüssel ist nicht vorhanden (die Signierung erfolgt beim Aktualisieren der Zone durch Administratoren).

In ihrer Antwort auf Wie funktioniert DNSSec? Gibt es bekannte Einschränkungen oder Probleme?, / u / tylerl erklärt:

Diese Antwort ist offensichtlich erforderlich signiert werden, aber im Allgemeinen hat der DNS-Server selbst keinen Zugriff auf Ihren Signaturschlüssel und kann die Antwort nicht sofort signieren. Die Signaturen werden alle “ offline “ im Voraus erstellt. Dies verhindert, dass Ihr Schlüssel offengelegt wird, wenn Ihr DNS-Server kompromittiert wird.

Stattdessen alphabetisieren Sie Ihre Subdomains und sagen “ für jeden Namen zwischen mail.example. com und pop.example.com existieren keine anderen Subdomains “ und unterschreiben diese Behauptung. Wenn dann jemand nach nachos.example.com fragt, können Sie ihm einfach die Antwort geben (die bereits signiert wurde), und der Kunde weiß das, weil nachos.example.com alphabetisch zwischen mail.example.com und pop.example.com liegt. dann existiert die “ diese Domain nicht „“ Antwort gilt als korrekt signiert und kam tatsächlich von Ihnen.

Der Ort, an dem dies problematisch wird, besteht darin, dass Sie mit einer Reihe dieser negativen Antworten, die explizit angeben, dass “ keine Antworten zwischen X und Y existieren, auf einfache Weise genau zuordnen können, welche Domänen existieren für die gesamte Zone. Sie wissen, dass “ X “ existiert, und Sie wissen, dass “ Y “ ist vorhanden, und Sie wissen, dass sich zwischen ihnen nichts anderes befindet. Wenn Sie nur ein wenig mehr nach dem Zufallsprinzip stöbern, können Sie schnell eine Liste aller Datensätze erstellen das gibt es.

Der Datensatz, der “ angibt, bis pop.example.com nichts mehr gibt “ wird aufgerufen NSEC (Next SECure Record).

Hierfür wurde eine Problemumgehung entwickelt: NSEC3. Es werden Namen gehasht, sodass aus mail b83a88... und pop b21afc.... Stellen Sie sich vor, dies sind die beiden einzigen Subdomains. In der signierten Antwort wird “ zwischen b21afc... und „. Wieder funktioniert es alphabetisch und Sie können sie alle erhalten, aber dieses Mal müssen Sie jeden Hash knacken, bevor Sie die Subdomains kennen.

Nach meiner Erfahrung haben die meisten die NSEC3-Erweiterung aktiviert. P. >

Werkzeuge für das Gehen in Zonen

NSEC3Walker führt sowohl die Aufzählung als auch das Knacken durch. Ich kann nicht dafür bürgen, wie effizient das Cracken ist, aber es ist definitiv nur CPU-basiert. Da NSEC3 SHA1 verwendet (zumindest ursprünglich), gibt es wahrscheinlich bessere Cracking-Programme.

dnsrecon scheint auch dazu in der Lage zu sein: dnsrecon -z -d example.com. Ich weiß nicht, ob es eine offizielle Website mit Informationen gibt, aber in Debian Stretch, Buster und Bullseye Ich kann apt install dnsrecon.

3. Reverse-Lookups in einem Subnetz

Wenn Sie einige erraten, finden Sie häufig Antworten in einem ähnlichen Bereich. Wenn Sie wissen, dass www. vorhanden ist und mail. vorhanden ist und beide dort in 192.168.3.x aufgelöst werden könnte mehr sein. Versuchen Sie, alle Adressen im Bereich 192.168.3.0-255 (/24) in umgekehrter Reihenfolge zu suchen, und Sie werden wahrscheinlich weitere Subdomänen finden. Möglicherweise möchten Sie auch eine WHOIS-Abfrage für die IP-Adresse durchführen, um die Bereichsgrenzen zu ermitteln (sofern diese einen eigenen Block haben).

Tools für die umgekehrte Suche

dnsrecon kann dies tun:

dnsrecon -t rvl -r 192.168.1.0/24 

Wobei -t rvl “ Typ Reverse-Lookup “ und -r übergeben einen IP-Bereich in CIDR-Notation. Ich weiß es nicht Wenn es eine offizielle Website mit Informationen gibt, aber in Debian Stretch, Buster und Bullseye kann ich apt install dnsrecon.

4. DNS-Diensteinträge

Sie können SRV-Einträge (Diensteinträge) für die Diensterkennung festlegen, z. B. _sip._tcp.example.com könnte auf sipserver.example.com an Port 5060 verweisen. Seit den Dienstnamen (“ sip “ im Beispiel) sind normalerweise die bei IANA registrierten Standarddateien, die wir durchlaufen können.

Tools zum Abfragen von srv-Datensätzen

dnsrecon kann dies tun:

dnsrecon -t srv -d example.com 

Es wird eine Teilmenge der vorhandenen Dienstnamen verwendet, die von einem Unbekannten ausgewählt wurden Methode, wie in der Manpage erwähnt (man dnsrecon).

5. Andere Methoden

Einige davon haben Sie bereits erwähnt.Ich werde nicht ins Detail gehen, weil sie ziemlich selbsterklärend sind und entweder von einer Anwendung abhängen, die auf dem Ziel ausgeführt wird (wie z. B. FTP), von einem Dritten abhängt, oder es gibt wirklich nicht viel zu sagen

  • In den Suchergebnissen werden möglicherweise Subdomains angezeigt. Auch hier kann dnsrecon dies mit der Option -t goo tun (verwendet speziell Google).

  • Wenn Sie andere TLDs auf denselben Namen prüfen, werden möglicherweise andere Varianten oder IP-Adressen angezeigt. Z.B. Wenn example.com vorhanden ist, ist möglicherweise auch example.org vorhanden. dnsrecon kann dies auch mit dnsrecon -t tld -d example.com tun.

  • Crawlen einer Website oder Suchen von Referenzen anderswo könnte Hinweise geben. (Hilfe gesucht: Welches Tool soll verwendet werden?)

  • Das Betrachten von TLS-Zertifikaten führt häufig zu Ergebnissen. Überprüfen Sie die Ports auf HTTPS, SMTP (S), FTP (S) usw. und verwenden Sie STARTTLS.

  • Es gibt Tools von Drittanbietern, mit denen Subdomains in a aufgelistet werden können Domain. Ihre Methoden sind weniger klar, aber das Crawlen des Internets und historische Aufzeichnungen (vielleicht war eine Domainübertragung einmal möglich?) Sind oft Teil davon. (Hilfe gesucht: Empfehlungen? Ich kann mich nur daran erinnern, dass sie vorhanden sind.)

6. Erraten.

Die letzte Option ist nur das Erraten, entweder durch ein Wörterbuch (das würde ich empfehlen) oder durch rohe Gewalt. Dies wird durch Platzhalter erschwert, obwohl viele Tools versuchen, dies zu erkennen und zu lösen.

Tools zum Erraten / Brute-Forcen

Hierfür wurde Fierce entwickelt: https://github.com/mschwager/fierce
Es wird standardmäßig unter Kali Linux installiert.

Als / u / rook in einer anderen Antwort in diesem Thread erwähnt , haben sie Subbrute zu diesem Zweck geschrieben: https://github.com/TheRook/subbrute

dnsrecon kann dies mit dnsrecon -t brt -d example.com tun. Verwenden Sie -f bis “ Filtern Sie nach Brute Force Domain-Suchdatensätzen, die beim Speichern von Datensätzen in die vom Platzhalter definierte IP-Adresse aufgelöst werden. “ (unter Berufung) Manpage). Sie können -D für eine Wörterbuchdatei übergeben.

Anhang: dict ionaries

Ich suche immer noch nach guten Wörterbüchern (zum Erraten / Brute Forcing), aber hier sind einige, die mir bekannt sind. Bitte helfen Sie mir, diese Liste zu vervollständigen! Je größer desto besser, solange sie nach Wahrscheinlichkeit sortiert sind.

Antwort

Jason Haddix schrieb Mein Lieblings-Tool zur Erkennung von Subdomains / Hostnamen, das von einer aktuellen Version von Recon-ng abhängt – hier verfügbar –

https://github.com/jhaddix/domain

Subbrute ist anständig, fierce -dns <domain> funktioniert hervorragend, dnsmap <domain> -r file.txt ist ebenfalls gültig, und ich sehe keinen Grund, knock -wc <domain> nicht zu mögen (obwohl die anderen Merkmale des Klopfens sein können vermuten). Alle diese Tools verwenden jedoch Techniken, die ihr Alter anzeigen. Der Trick für einige dieser Angriffsverbesserungen besteht darin, eine angepasste Datei mit Hostnamen zu erstellen, die speziell auf das Ziel zugeschnitten sind.

Die Kettensäge für die DNS-Erkennung lautet jedoch dnsrecon. Es macht alles.

Sie könnten auch ein kommerzielles Angebot wie RiskIQ in Betracht ziehen, das viel mehr kann als alle diese Tools. Zu ihren Techniken gehört eine Menge Vermessung, an die die meisten von Ihnen nicht denken würden.

[UPDATE] Ein weiterer Favorit (für Hostnamen, nicht primär Subdomains – interessiert sich das OP für beides?) Ist – https://github.com/tomsteele/blacksheepwall

Antwort

Ich würde es mit klopfen versuchen, aber Vorsicht: Es besteht die Gefahr, auf die schwarze Liste gesetzt zu werden.

Leider führt kein Weg daran vorbei Bruteforcing, wenn eine Zonenübertragung nicht funktioniert.

Kommentare

  • Dieses Tool ist von geringer Qualität; SubBrute ist viel besser.

Antwort

Over on Stack Overflow , schlug Paul Melici vor Verwenden von WolframAlpha .(Screenshots von mir)

  1. Geben Sie die Domain in das Suchfeld ein und führen Sie die Suche aus. (ZB stackexchange.com )

    Wolfram - Homepage

  2. Im 3. Abschnitt von oben (mit dem Namen „Webstatistik für den gesamten Stapelaustausch“). com „) Klicken Sie auf Subdomains

    Wolfram - Schaltfläche

  3. Klicken Sie im Abschnitt „Subdomains“ auf

    Wolfram - Schaltfläche

Dort wird eine Liste der Subdomains angezeigt. Obwohl ich vermute, dass nicht ALLE Subdomains angezeigt werden.

Kommentare

  • wird dies erwähnt im ersten Kommentar

Antwort

Schauen Sie sich http://ha.ckers.org/fierce/ . Es kann sowohl eine Wörterbuchdatei als auch Brute Force erfordern. Es ist auch in Kali enthalten.

Antwort

Anfangs verwende ich häufig die passive DNS-Datenbank, um Subdomains für eine Site zu finden. Der Nachteil dieser Methode ist, dass Sie nur Websites finden können, die in der Datenbank aufgeführt sind. Der Vorteil ist jedoch, dass Sie Websites finden können, die in keiner Wortliste aufgeführt sind.

Einige Datenbanken als Referenz:

https://www.virustotal.com/en/domain/stackexchange.com/information/

http://www.nonexiste.net/?q=stackexchange.com

Antwort

Einfach. Schreiben Sie die Adresse der Website an wolframalpha. Klicken Sie auf die Schaltfläche „Subdomins“.

Ein Beispiel; https://www.wolframalpha.com/input/?i=www.imdb.com

Klicken Sie auf „Subdomains“, um Subdomains der Site anzuzeigen.

Wolfram Alpha verfügt außerdem über eine API, wenn Sie diese erreichen und verwenden möchten. Hoffe, es hilft …

Kommentare

  • Verloren – Wenn Sie dies erweitern können, indem Sie erklären, was Wolfram tut, kann diese Antwort positive Stimmen erhalten.
  • Der Link “ Subdomains “ scheint nur für einige Domains vorhanden zu sein?

Schreibe einen Kommentar

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