hacktricks/network-services-pentesting/pentesting-dns.md
2024-02-10 15:36:32 +00:00

37 KiB

53 - Pentesting DNS

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Sofort verfügbare Einrichtung für Schwachstellenbewertung und Penetrationstests. Führen Sie einen vollständigen Pentest von überall aus mit über 20 Tools und Funktionen durch, die von der Aufklärung bis zum Bericht reichen. Wir ersetzen keine Pentester - wir entwickeln benutzerdefinierte Tools, Erkennungs- und Exploit-Module, um ihnen etwas Zeit zu geben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.

{% embed url="https://pentest-tools.com/" %}

Grundlegende Informationen

Das Domain Name System (DNS) dient als Verzeichnis des Internets und ermöglicht es Benutzern, auf Websites über leicht zu merkende Domainnamen wie google.com oder facebook.com zuzugreifen, anstatt über numerische Internetprotokoll (IP)-Adressen. Durch die Übersetzung von Domainnamen in IP-Adressen stellt das DNS sicher, dass Webbrowser Internetressourcen schnell laden können und vereinfacht so die Navigation in der Online-Welt.

Standardport: 53

PORT     STATE SERVICE  REASON
53/tcp   open  domain  Microsoft DNS 6.1.7601 (1DB15D39) (Windows Server 2008 R2 SP1)
5353/udp open  zeroconf udp-response
53/udp   open  domain  Microsoft DNS 6.1.7601 (1DB15D39) (Windows Server 2008 R2 SP1)

Unterschiedliche DNS-Server

  • DNS-Root-Server: Diese befinden sich an der Spitze der DNS-Hierarchie und verwalten die Top-Level-Domains. Sie greifen nur ein, wenn Server auf niedrigerer Ebene nicht antworten. Die Internet Corporation for Assigned Names and Numbers (ICANN) überwacht ihren Betrieb mit insgesamt 13 globalen Servern.

  • Autoritative Nameserver: Diese Server haben das letzte Wort für Anfragen in ihren zugewiesenen Zonen und bieten definitive Antworten. Wenn sie keine Antwort liefern können, wird die Anfrage an die Root-Server eskaliert.

  • Nicht-autoritative Nameserver: Diese Server besitzen keine eigenen DNS-Zonen und sammeln Informationen über Domains durch Anfragen an andere Server.

  • Caching-DNS-Server: Diese Art von Server speichert vorherige Anfrageantworten für eine festgelegte Zeit, um die Antwortzeiten für zukünftige Anfragen zu beschleunigen. Die Dauer des Caches wird vom autoritativen Server festgelegt.

  • Weiterleitender Server: Weiterleitende Server leiten Anfragen einfach an einen anderen Server weiter.

  • Resolver: Resolver sind in Computern oder Routern integriert und führen die Namensauflösung lokal aus. Sie gelten nicht als autoritativ.

Enumeration

Banner Grabbing

Im DNS gibt es keine Banner, aber Sie können die magische Abfrage für version.bind. CHAOS TXT verwenden, die bei den meisten BIND-Nameservern funktioniert.
Sie können diese Abfrage mit dig durchführen:

dig version.bind CHAOS TXT @DNS

Darüber hinaus kann das Tool fpdns den Server ebenfalls identifizieren.

Es ist auch möglich, das Banner mit einem nmap-Skript abzurufen:

--script dns-nsid

Jeder Eintrag

Der Eintrag ANY fordert den DNS-Server auf, alle verfügbaren Einträge zurückzugeben, die er bereit ist offenzulegen.

dig any victim.com @<DNS_IP>

Zone Transfer

Dieses Verfahren wird als Asynchronous Full Transfer Zone (AXFR) abgekürzt.

dig axfr @<DNS_IP> #Try zone transfer without domain
dig axfr @<DNS_IP> <DOMAIN> #Try zone transfer guessing the domain
fierce --domain <DOMAIN> --dns-servers <DNS_IP> #Will try toperform a zone transfer against every authoritative name server and if this doesn'twork, will launch a dictionary attack

Weitere Informationen

dig ANY @<DNS_IP> <DOMAIN>     #Any information
dig A @<DNS_IP> <DOMAIN>       #Regular DNS request
dig AAAA @<DNS_IP> <DOMAIN>    #IPv6 DNS request
dig TXT @<DNS_IP> <DOMAIN>     #Information
dig MX @<DNS_IP> <DOMAIN>      #Emails related
dig NS @<DNS_IP> <DOMAIN>      #DNS that resolves that name
dig -x 192.168.0.2 @<DNS_IP>   #Reverse lookup
dig -x 2a00:1450:400c:c06::93 @<DNS_IP> #reverse IPv6 lookup

#Use [-p PORT]  or  -6 (to use ivp6 address of dns)

Automatisierung

Automatisierung ist ein wesentlicher Bestandteil des Pentesting-Prozesses. Durch die Automatisierung von Aufgaben können Zeit und Ressourcen gespart werden. Es gibt verschiedene Tools und Techniken, die verwendet werden können, um den Pentesting-Prozess zu automatisieren.

DNS-Rekordabfrage

Die DNS-Rekordabfrage ist ein häufig verwendetes Tool, um Informationen über eine Domain zu sammeln. Es kann verwendet werden, um die IP-Adresse einer Domain zu ermitteln, MX- und NS-Einträge abzurufen und andere DNS-Informationen zu erhalten.

Ein Beispiel für die Verwendung der DNS-Rekordabfrage ist die Ermittlung der IP-Adresse einer Domain. Dies kann mit dem Befehl nslookup in der Befehlszeile durchgeführt werden. Geben Sie einfach den Befehl nslookup <domain> ein und Sie erhalten die IP-Adresse der Domain.

Zone Transfer

Die Zone Transfer ist ein weiteres nützliches Tool für die Pentests. Es ermöglicht das Abrufen aller DNS-Einträge einer Domain, einschließlich der versteckten Subdomains. Dies kann verwendet werden, um potenzielle Angriffsvektoren zu identifizieren.

Um eine Zone Transfer durchzuführen, können verschiedene Tools wie dig oder nslookup verwendet werden. Geben Sie einfach den Befehl dig axfr <domain> oder nslookup -type=any <domain> ein und Sie erhalten alle DNS-Einträge der Domain.

DNS-Rekordmanipulation

Die Manipulation von DNS-Einträgen kann verwendet werden, um Angriffe wie DNS-Spoofing oder DNS-Cache-Poisoning durchzuführen. Durch die Änderung von DNS-Einträgen können Angreifer den Datenverkehr umleiten und Benutzer auf gefälschte Websites umleiten.

Es gibt verschiedene Tools wie dnsspoof oder dnschef, die für die DNS-Rekordmanipulation verwendet werden können. Diese Tools ermöglichen es Ihnen, DNS-Einträge zu ändern und den Datenverkehr umzuleiten.

DNS-Brute-Force

DNS-Brute-Force ist eine Technik, bei der alle möglichen Subdomains einer Domain durchprobiert werden, um versteckte Subdomains zu identifizieren. Dies kann verwendet werden, um potenzielle Angriffsvektoren zu finden oder Informationen über die Infrastruktur einer Domain zu sammeln.

Es gibt verschiedene Tools wie dnsrecon oder fierce, die für DNS-Brute-Force-Angriffe verwendet werden können. Diese Tools durchsuchen automatisch alle möglichen Subdomains einer Domain und geben eine Liste der gefundenen Subdomains zurück.

DNS-Leaks

DNS-Leaks können auftreten, wenn der DNS-Verkehr nicht ordnungsgemäß abgesichert ist und Informationen über die besuchten Websites oder die interne Infrastruktur preisgibt. Dies kann verwendet werden, um sensible Informationen zu sammeln oder Angriffe wie DNS-Spoofing durchzuführen.

Um DNS-Leaks zu vermeiden, sollten Sie sicherstellen, dass der DNS-Verkehr verschlüsselt ist und dass keine Informationen über die interne Infrastruktur preisgegeben werden. Verwenden Sie Tools wie dnsleaktest oder dnsleak.com, um DNS-Leaks zu überprüfen.

for sub in $(cat <WORDLIST>);do dig $sub.<DOMAIN> @<DNS_IP> | grep -v ';\|SOA' | sed -r '/^\s*$/d' | grep $sub | tee -a subdomains.txt;done

dnsenum --dnsserver <DNS_IP> --enum -p 0 -s 0 -o subdomains.txt -f <WORDLIST> <DOMAIN>

Verwendung von nslookup

The nslookup command is a powerful tool for querying DNS (Domain Name System) servers to obtain information about domain names and IP addresses. It is commonly used in network troubleshooting and penetration testing.

Die nslookup-Befehl ist ein leistungsstarkes Werkzeug zum Abfragen von DNS (Domain Name System)-Servern, um Informationen über Domänennamen und IP-Adressen zu erhalten. Es wird häufig bei der Netzwerkfehlerbehebung und Penetrationstests verwendet.

To use nslookup, open a command prompt or terminal and type nslookup followed by the domain name or IP address you want to query. By default, nslookup will display the IP address associated with the domain name.

Um nslookup zu verwenden, öffnen Sie ein Eingabeaufforderungsfenster oder ein Terminal und geben Sie nslookup gefolgt von dem Domänennamen oder der IP-Adresse ein, die Sie abfragen möchten. Standardmäßig zeigt nslookup die mit dem Domänennamen verknüpfte IP-Adresse an.

You can also use nslookup to perform reverse DNS lookups by entering an IP address instead of a domain name. This will return the domain name associated with the IP address.

Sie können nslookup auch verwenden, um Reverse-DNS-Lookups durchzuführen, indem Sie anstelle eines Domänennamens eine IP-Adresse eingeben. Dadurch wird der mit der IP-Adresse verknüpfte Domänenname zurückgegeben.

nslookup also provides additional options and commands that can be used to customize the query and obtain more detailed information. Some of these options include setting the DNS server to use, specifying the query type (such as A, MX, NS, etc.), and enabling debug mode for troubleshooting purposes.

nslookup bietet auch zusätzliche Optionen und Befehle, die verwendet werden können, um die Abfrage anzupassen und detailliertere Informationen zu erhalten. Einige dieser Optionen umfassen das Festlegen des zu verwendenden DNS-Servers, das Angeben des Abfragetyps (wie A, MX, NS usw.) und das Aktivieren des Debug-Modus für Fehlerbehebungszwecke.

Overall, nslookup is a versatile tool that can be used to gather information about domain names and IP addresses, making it an essential tool for network administrators and penetration testers.

Insgesamt ist nslookup ein vielseitiges Werkzeug, das verwendet werden kann, um Informationen über Domänennamen und IP-Adressen zu sammeln. Dadurch wird es zu einem unverzichtbaren Werkzeug für Netzwerkadministratoren und Penetrationstester.

nslookup
> SERVER <IP_DNS> #Select dns server
> 127.0.0.1 #Reverse lookup of 127.0.0.1, maybe...
> <IP_MACHINE> #Reverse lookup of a machine, maybe...

Nützliche Metasploit-Module

Metasploit ist ein leistungsstolles Framework für Penetrationstests, das eine Vielzahl von Modulen bietet, um verschiedene Schwachstellen in Netzwerkdiensten auszunutzen. Hier sind einige nützliche Metasploit-Module, die bei der Durchführung von Penetrationstests auf DNS-Diensten hilfreich sein können:

  • auxiliary/scanner/dns/dns_cache_snoop: Dieses Modul ermöglicht das Durchsuchen des DNS-Caches eines Ziels, um Informationen über bereits aufgelöste DNS-Anfragen zu erhalten.

  • auxiliary/scanner/dns/dns_enum: Mit diesem Modul können Sie DNS-Server nach gültigen DNS-Einträgen durchsuchen, um Informationen über die Zielinfrastruktur zu sammeln.

  • auxiliary/scanner/dns/dns_forward: Dieses Modul ermöglicht das Weiterleiten von DNS-Anfragen an einen anderen DNS-Server, um mögliche Schwachstellen oder Angriffspunkte zu identifizieren.

  • auxiliary/scanner/dns/dns_reverser: Mit diesem Modul können Sie die Reverse-DNS-Auflösung durchführen, um Informationen über die IP-Adressen im Zielnetzwerk zu erhalten.

  • auxiliary/scanner/dns/dns_srv_enum: Dieses Modul ermöglicht das Durchsuchen von DNS-Servern nach SRV-Einträgen, um Informationen über die verfügbaren Dienste im Zielnetzwerk zu sammeln.

  • auxiliary/scanner/dns/dns_tcp_enum: Mit diesem Modul können Sie DNS-Server nach gültigen DNS-Einträgen durchsuchen, indem Sie TCP-Verbindungen verwenden.

  • auxiliary/scanner/dns/dns_update: Dieses Modul ermöglicht das Senden von DNS-Update-Anfragen an einen DNS-Server, um mögliche Schwachstellen oder Angriffspunkte zu identifizieren.

Diese Module bieten verschiedene Funktionen, um DNS-Dienste zu erkunden und Schwachstellen zu identifizieren. Sie können sie in Ihren Penetrationstests verwenden, um die Sicherheit von DNS-Infrastrukturen zu bewerten.

auxiliary/gather/enum_dns #Perform enumeration actions

Nützliche nmap-Skripte

Nmap ist ein leistungsstolles Tool zur Netzwerkscannung, das eine Vielzahl von Skripten bietet, um verschiedene Aspekte eines Ziels zu untersuchen. Hier sind einige nützliche nmap-Skripte, die bei der Pentest-Prüfung von DNS-Diensten hilfreich sein können:

  • dns-brute: Dieses Skript führt eine brute-force-ähnliche Suche nach DNS-Namen durch und kann dabei helfen, versteckte Subdomains zu entdecken.
  • dns-cache-snoop: Mit diesem Skript können Sie den DNS-Cache eines Ziels überprüfen und mögliche Informationen über bereits abgefragte Domains erhalten.
  • dns-zone-transfer: Dieses Skript versucht, eine Zone-Transfer-Anfrage an den DNS-Server zu senden, um eine vollständige Liste der DNS-Einträge zu erhalten. Dies kann bei der Identifizierung von Schwachstellen in der DNS-Konfiguration hilfreich sein.
  • dns-update: Mit diesem Skript können Sie den DNS-Update-Mechanismus eines Ziels überprüfen und mögliche Schwachstellen in der Konfiguration identifizieren.
  • dns-recursion: Dieses Skript testet, ob der DNS-Server rekursive Anfragen zulässt, was ein potenzielles Sicherheitsrisiko darstellen kann.

Diese Skripte können Ihnen helfen, Schwachstellen in DNS-Diensten zu identifizieren und potenzielle Angriffsvektoren zu erkennen. Es ist wichtig, sie mit Vorsicht und im Rahmen einer rechtmäßigen Pentest-Prüfung einzusetzen.

#Perform enumeration actions
nmap -n --script "(default and *dns*) or fcrdns or dns-srv-enum or dns-random-txid or dns-random-srcport" <IP>

DNS - Reverse BF

Beschreibung

Der Reverse Brute-Force-Angriff (Reverse BF) ist eine Technik, bei der ein Angreifer versucht, gültige DNS-Namen zu erraten, indem er eine große Anzahl von Anfragen an den DNS-Server sendet. Dieser Angriff basiert auf der Annahme, dass viele Organisationen ihre DNS-Namen basierend auf bestimmten Mustern oder Konventionen erstellen.

Ausführung

Um einen Reverse BF-Angriff durchzuführen, kann ein Angreifer verschiedene Tools verwenden, um eine große Anzahl von DNS-Anfragen zu generieren. Diese Anfragen können auf bestimmten Mustern basieren, wie z. B. häufig verwendeten Namen, Abkürzungen oder Kombinationen von Wörtern.

Der Angreifer kann auch spezifische Informationen über das Ziel sammeln, um die Wahrscheinlichkeit einer erfolgreichen Namenserratung zu erhöhen. Dies kann durch die Überwachung von öffentlichen Informationen, sozialen Medien oder anderen Quellen erfolgen.

Es ist wichtig zu beachten, dass dieser Angriff Zeit und Ressourcen erfordert, da eine große Anzahl von Anfragen an den DNS-Server gesendet werden muss. Darüber hinaus kann der Angreifer durch die Verwendung von Techniken wie IP-Spoofing oder die Verwendung von verteilten Angriffssystemen die Erkennung erschweren.

Gegenmaßnahmen

Um sich vor Reverse BF-Angriffen zu schützen, können Organisationen verschiedene Maßnahmen ergreifen:

  • Implementierung von Intrusion Detection/Prevention-Systemen (IDS/IPS), um verdächtigen Datenverkehr zu erkennen und zu blockieren.
  • Überwachung des Netzwerkverkehrs, um ungewöhnliche Aktivitäten zu erkennen.
  • Verwendung von Firewalls und Filtern, um den Zugriff auf DNS-Server zu beschränken.
  • Aktualisierung und Patching von DNS-Servern, um bekannte Schwachstellen zu beheben.
  • Verwendung von sicheren Passwörtern und Authentifizierungsmethoden für DNS-Server.
  • Sensibilisierung der Mitarbeiter für Phishing-Angriffe und Social Engineering, um die Offenlegung sensibler Informationen zu verhindern.

Durch die Implementierung dieser Gegenmaßnahmen können Organisationen ihre DNS-Infrastruktur besser schützen und das Risiko von Reverse BF-Angriffen verringern.

dnsrecon -r 127.0.0.0/24 -n <IP_DNS>  #DNS reverse of all of the addresses
dnsrecon -r 127.0.1.0/24 -n <IP_DNS>  #DNS reverse of all of the addresses
dnsrecon -r <IP_DNS>/24 -n <IP_DNS>   #DNS reverse of all of the addresses
dnsrecon -d active.htb -a -n <IP_DNS> #Zone transfer

{% hint style="info" %} Wenn Sie in der Lage sind, Subdomains zu finden, die zu internen IP-Adressen auflösen, sollten Sie versuchen, einen Reverse-DNS-BF an den NSs der Domain durchzuführen und nach diesem IP-Bereich zu fragen. {% endhint %}

Ein weiteres Tool, um dies zu tun: https://github.com/amine7536/reverse-scan

Sie können Reverse-IP-Bereiche abfragen unter https://bgp.he.net/net/205.166.76.0/24#_dns (dieses Tool ist auch hilfreich bei BGP).

DNS - Subdomains BF

dnsenum --dnsserver <IP_DNS> --enum -p 0 -s 0 -o subdomains.txt -f subdomains-1000.txt <DOMAIN>
dnsrecon -D subdomains-1000.txt -d <DOMAIN> -n <IP_DNS>
dnscan -d <domain> -r -w subdomains-1000.txt #Bruteforce subdomains in recursive way, https://github.com/rbsec/dnscan

Active Directory-Server

Active Directory (AD) ist ein Verzeichnisdienst, der von Microsoft entwickelt wurde und in Windows-basierten Netzwerken weit verbreitet ist. AD-Server sind die zentralen Komponenten, die die Verwaltung von Benutzern, Gruppen, Computern und anderen Ressourcen in einer Windows-Domäne ermöglichen.

DNS-Server

Der DNS-Server (Domain Name System) ist ein wichtiger Bestandteil eines AD-Servers. Er ist verantwortlich für die Auflösung von Hostnamen in IP-Adressen und umgekehrt. Ein guter Ansatz für die Pentest-Phase ist es, den DNS-Server auf Schwachstellen zu überprüfen, die möglicherweise zu einer Kompromittierung des AD-Servers führen könnten.

LDAP-Server

Der LDAP-Server (Lightweight Directory Access Protocol) ermöglicht den Zugriff auf das Active Directory und die Durchführung von Abfragen und Änderungen an den darin enthaltenen Informationen. Bei einem Pentest kann es hilfreich sein, den LDAP-Server auf Sicherheitslücken zu überprüfen, die es einem Angreifer ermöglichen könnten, unautorisierten Zugriff auf das Active Directory zu erlangen.

Kerberos-Server

Der Kerberos-Server ist für die Authentifizierung von Benutzern in einer Windows-Domäne verantwortlich. Er verwendet das Kerberos-Protokoll, um sicherzustellen, dass nur autorisierte Benutzer auf Ressourcen zugreifen können. Bei einem Pentest kann es wichtig sein, den Kerberos-Server auf Schwachstellen zu überprüfen, die es einem Angreifer ermöglichen könnten, die Authentifizierung zu umgehen oder zu kompromittieren.

NTP-Server

Der NTP-Server (Network Time Protocol) ist für die Synchronisierung der Uhrzeit in einem Netzwerk verantwortlich. Eine genaue Zeitsynchronisierung ist für die ordnungsgemäße Funktion des Active Directory von entscheidender Bedeutung. Bei einem Pentest kann es sinnvoll sein, den NTP-Server auf Schwachstellen zu überprüfen, die zu einer Kompromittierung des AD-Servers führen könnten.

DHCP-Server

Der DHCP-Server (Dynamic Host Configuration Protocol) ist für die automatische Zuweisung von IP-Adressen an Clients in einem Netzwerk verantwortlich. Ein Angreifer könnte versuchen, den DHCP-Server zu kompromittieren, um eine Man-in-the-Middle-Position einzunehmen oder Clients mit schädlichen Konfigurationen zu versorgen. Daher ist es wichtig, den DHCP-Server während eines Pentests auf Schwachstellen zu überprüfen.

dig -t _gc._tcp.lab.domain.com
dig -t _ldap._tcp.lab.domain.com
dig -t _kerberos._tcp.lab.domain.com
dig -t _kpasswd._tcp.lab.domain.com

nslookup -type=srv _kerberos._tcp.<CLIENT_DOMAIN>
nslookup -type=srv _kerberos._tcp.domain.com

nmap --script dns-srv-enum --script-args "dns-srv-enum.domain='domain.com'"

DNSSec

DNSSec (Domain Name System Security Extensions) ist eine Erweiterung des DNS-Protokolls, die entwickelt wurde, um die Sicherheit und Integrität von DNS-Daten zu verbessern. DNSSec verwendet digitale Signaturen, um sicherzustellen, dass die empfangenen DNS-Daten authentisch sind und nicht manipuliert wurden.

DNSSec bietet Schutz vor verschiedenen Angriffen, wie z.B. DNS-Spoofing, bei dem ein Angreifer gefälschte DNS-Antworten sendet, um den Datenverkehr umzuleiten oder Benutzer auf bösartige Websites umzuleiten. Durch die Verwendung von digitalen Signaturen kann DNSSec die Authentizität der DNS-Antworten überprüfen und sicherstellen, dass sie von autorisierten DNS-Servern stammen.

Um DNSSec zu implementieren, müssen DNS-Zonen digital signiert werden. Dies erfolgt durch die Generierung eines öffentlichen/privaten Schlüsselpaares für jede Zone und das Hinzufügen von digitalen Signaturen zu den DNS-Datensätzen. Die öffentlichen Schlüssel werden dann in einem speziellen DNS-Datensatz, dem DNSKEY-Record, veröffentlicht.

Bei der Überprüfung der DNS-Antworten verwendet der Client den öffentlichen Schlüssel des DNS-Servers, um die digitalen Signaturen zu überprüfen. Wenn die Signaturen gültig sind, kann der Client sicher sein, dass die DNS-Daten authentisch sind.

DNSSec bietet eine zusätzliche Sicherheitsebene für das DNS und hilft dabei, Angriffe auf die DNS-Infrastruktur zu verhindern. Es ist jedoch wichtig zu beachten, dass DNSSec nicht alle Arten von Angriffen abwehren kann und dass die Implementierung und Verwaltung von DNSSec komplex sein kann.

#Query paypal subdomains to ns3.isc-sns.info
nmap -sSU -p53 --script dns-nsec-enum --script-args dns-nsec-enum.domains=paypal.com ns3.isc-sns.info

IPv6

Brute-Force-Angriff mit "AAAA"-Anfragen, um die IPv6-Adressen der Subdomains zu sammeln.

dnsdict6 -s -t <domain>

Bruteforce reverse DNS in using IPv6 addresses

Introduction

In some cases, during a penetration test, it may be necessary to bruteforce reverse DNS records for IPv6 addresses. This can be useful for gathering information about the target network and identifying potential vulnerabilities.

Methodology

To bruteforce reverse DNS records for IPv6 addresses, follow these steps:

  1. Generate a list of possible domain names based on the target's domain name or any known information about the target.
  2. Use a tool like dnsrecon or dnsenum to perform the bruteforce attack. These tools can be used to query DNS servers and check if a reverse DNS record exists for a given IPv6 address.
  3. Iterate through the list of possible domain names and query the DNS server for each one. If a reverse DNS record exists, it will be returned in the response.
  4. Analyze the results and identify any potential vulnerabilities or misconfigurations in the target network.

Example

Let's say the target's domain name is example.com. We can generate a list of possible domain names by appending different subdomains or variations of the domain name, such as mail.example.com, admin.example.com, etc.

Using a tool like dnsrecon, we can perform the bruteforce attack by running the following command:

dnsrecon -d example.com -t rlookup

This command will query the DNS server for reverse DNS records for IPv6 addresses associated with the domain example.com. If any reverse DNS records exist, they will be displayed in the output.

Conclusion

Bruteforcing reverse DNS records for IPv6 addresses can be a useful technique during a penetration test. By gathering information about the target network, you can identify potential vulnerabilities and misconfigurations that can be exploited. However, it's important to note that bruteforcing reverse DNS records should only be performed with proper authorization and in a controlled environment.

dnsrevenum6 pri.authdns.ripe.net 2001:67c:2e8::/48 #Will use the dns pri.authdns.ripe.net

DNS-Rekursion DDoS

Wenn die DNS-Rekursion aktiviert ist, kann ein Angreifer den Ursprung im UDP-Paket fälschen, um die DNS-Antwort an den Opferserver zu senden. Ein Angreifer könnte ANY oder DNSSEC-Datensatztypen missbrauchen, da sie dazu neigen, größere Antworten zu haben.
Die Möglichkeit, zu überprüfen, ob ein DNS die Rekursion unterstützt, besteht darin, einen Domainnamen abzufragen und zu überprüfen, ob die Flagge "ra" (Rekursion verfügbar) in der Antwort enthalten ist:

dig google.com A @<IP>

Nicht verfügbar:

Verfügbar:

Sofort verfügbare Einrichtung für Schwachstellenbewertung und Penetrationstests. Führen Sie einen vollständigen Penetrationstest von überall aus mit mehr als 20 Tools und Funktionen durch, die von der Aufklärung bis zum Bericht reichen. Wir ersetzen keine Penetrationstester - wir entwickeln benutzerdefinierte Tools, Erkennungs- und Ausnutzungsmodule, um ihnen etwas Zeit zu geben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.

{% embed url="https://pentest-tools.com/" %}

E-Mail an nicht vorhandenes Konto

Durch die Untersuchung einer Nichtzustellungsbenachrichtigung (NDN), die durch eine E-Mail an eine ungültige Adresse innerhalb einer Ziel-Domain ausgelöst wird, werden häufig wertvolle interne Netzwerkdetails offengelegt.

Der bereitgestellte Nichtzustellungsbericht enthält Informationen wie:

  • Der generierende Server wurde als server.example.com identifiziert.
  • Eine Fehlermeldung für user@example.com mit dem Fehlercode #550 5.1.1 RESOLVER.ADR.RecipNotFound; not found wurde zurückgegeben.
  • Interne IP-Adressen und Hostnamen wurden in den ursprünglichen Nachrichtenheadern offengelegt.
The original message headers were modified for anonymity and now present randomized data:

Generating server: server.example.com

user@example.com
#550 5.1.1 RESOLVER.ADR.RecipNotFound; not found ##

Original message headers:

Received: from MAILSERVER01.domain.example.com (192.168.1.1) by
mailserver02.domain.example.com (192.168.2.2) with Microsoft SMTP Server (TLS)
id 14.3.174.1; Mon, 25 May 2015 14:52:22 -0700
Received: from filter.example.com (203.0.113.1) by
MAILSERVER01.domain.example.com (192.168.1.1) with Microsoft SMTP Server (TLS)
id 14.3.174.1; Mon, 25 May 2015 14:51:22 -0700
X-ASG-Debug-ID: 1432576343-0614671716190e0d0001-zOQ9WJ
Received: from gateway.domainhost.com (gateway.domainhost.com [198.51.100.37]) by
filter.example.com with ESMTP id xVNPkwaqGgdyH5Ag for user@example.com; Mon,
25 May 2015 14:52:13 -0700 (PDT)
X-Envelope-From: sender@anotherdomain.org
X-Apparent-Source-IP: 198.51.100.37

Konfigurationsdateien

Config files are files that contain settings and parameters for various applications and services. In the context of DNS (Domain Name System) pentesting, config files are important because they often contain sensitive information that can be exploited by attackers.

Konfigurationsdateien sind Dateien, die Einstellungen und Parameter für verschiedene Anwendungen und Dienste enthalten. Im Zusammenhang mit DNS (Domain Name System) Pentesting sind Konfigurationsdateien wichtig, da sie oft sensible Informationen enthalten, die von Angreifern ausgenutzt werden können.

Common DNS Config Files

Häufige DNS-Konfigurationsdateien

Here are some common DNS config files that you may encounter during DNS pentesting:

Hier sind einige häufige DNS-Konfigurationsdateien, die Ihnen während des DNS-Pentestens begegnen können:

  • named.conf: This is the main configuration file for the BIND (Berkeley Internet Name Domain) DNS server. It contains global options and settings for the DNS server.

  • named.conf: Dies ist die Hauptkonfigurationsdatei für den BIND (Berkeley Internet Name Domain) DNS-Server. Sie enthält globale Optionen und Einstellungen für den DNS-Server.

  • named.conf.local: This file is used to define local zones and zone options. It is included in the named.conf file.

  • named.conf.local: Diese Datei wird verwendet, um lokale Zonen und Zonenoptionen zu definieren. Sie wird in der named.conf-Datei eingebunden.

  • named.conf.options: This file contains global options and settings for the BIND DNS server. It is also included in the named.conf file.

  • named.conf.options: Diese Datei enthält globale Optionen und Einstellungen für den BIND DNS-Server. Sie wird ebenfalls in der named.conf-Datei eingebunden.

  • resolv.conf: This file is used by the DNS resolver library to configure DNS resolution on the system. It specifies the IP addresses of DNS servers that the system should use.

  • resolv.conf: Diese Datei wird von der DNS-Resolver-Bibliothek verwendet, um die DNS-Auflösung auf dem System zu konfigurieren. Sie gibt die IP-Adressen der DNS-Server an, die das System verwenden soll.

Location of Config Files

Speicherort der Konfigurationsdateien

The location of DNS config files may vary depending on the operating system and DNS server software being used. Here are some common locations:

Der Speicherort der DNS-Konfigurationsdateien kann je nach verwendetem Betriebssystem und DNS-Server-Software variieren. Hier sind einige häufige Speicherorte:

  • BIND: The config files are typically located in the /etc/bind/ directory.

  • BIND: Die Konfigurationsdateien befinden sich normalerweise im Verzeichnis /etc/bind/.

  • dnsmasq: The config file is usually located at /etc/dnsmasq.conf.

  • dnsmasq: Die Konfigurationsdatei befindet sich normalerweise unter /etc/dnsmasq.conf.

  • PowerDNS: The config file is typically located at /etc/powerdns/pdns.conf.

  • PowerDNS: Die Konfigurationsdatei befindet sich normalerweise unter /etc/powerdns/pdns.conf.

  • Windows DNS Server: The config files are located in the %SystemRoot%\System32\dns\ directory.

  • Windows DNS Server: Die Konfigurationsdateien befinden sich im Verzeichnis %SystemRoot%\System32\dns\.

Exploiting Misconfigured Config Files

Ausnutzen fehlerhaft konfigurierter Konfigurationsdateien

During DNS pentesting, misconfigured config files can be exploited to gain unauthorized access or perform other malicious activities. Here are some common vulnerabilities that can be exploited:

Während des DNS-Pentestens können fehlerhaft konfigurierte Konfigurationsdateien ausgenutzt werden, um unbefugten Zugriff zu erlangen oder andere bösartige Aktivitäten durchzuführen. Hier sind einige häufige Schwachstellen, die ausgenutzt werden können:

  • Zone Transfers: If zone transfers are enabled and misconfigured, an attacker can retrieve the entire DNS zone data, including sensitive information such as IP addresses and hostnames.

  • Zonentransfers: Wenn Zonentransfers aktiviert und fehlerhaft konfiguriert sind, kann ein Angreifer alle DNS-Zonendaten abrufen, einschließlich sensibler Informationen wie IP-Adressen und Hostnamen.

  • Open Recursion: If open recursion is enabled and misconfigured, an attacker can use the DNS server as an amplifier in a DNS amplification attack, leading to a denial-of-service (DoS) condition.

  • Offene Rekursion: Wenn die offene Rekursion aktiviert und fehlerhaft konfiguriert ist, kann ein Angreifer den DNS-Server als Verstärker in einem DNS-Amplifikationsangriff verwenden, was zu einem Denial-of-Service (DoS)-Zustand führt.

  • Zone Transfer ACLs: If the access control lists (ACLs) for zone transfers are misconfigured, an attacker can bypass the intended restrictions and perform unauthorized zone transfers.

  • Zonentransfer-ACLs: Wenn die Zugriffssteuerungslisten (ACLs) für Zonentransfers fehlerhaft konfiguriert sind, kann ein Angreifer die beabsichtigten Beschränkungen umgehen und nicht autorisierte Zonentransfers durchführen.

It is important to thoroughly review and secure DNS config files to prevent these vulnerabilities from being exploited.

Es ist wichtig, DNS-Konfigurationsdateien gründlich zu überprüfen und abzusichern, um zu verhindern, dass diese Schwachstellen ausgenutzt werden.

host.conf
/etc/resolv.conf
/etc/bind/named.conf
/etc/bind/named.conf.local
/etc/bind/named.conf.options
/etc/bind/named.conf.log
/etc/bind/*

Gefährliche Einstellungen bei der Konfiguration eines Bind-Servers:

Option Beschreibung
allow-query Definiert, welche Hosts berechtigt sind, Anfragen an den DNS-Server zu senden.
allow-recursion Definiert, welche Hosts berechtigt sind, rekursive Anfragen an den DNS-Server zu senden.
allow-transfer Definiert, welche Hosts berechtigt sind, Zonentransfers vom DNS-Server zu empfangen.
zone-statistics Sammelt statistische Daten von Zonen.

Referenzen

HackTricks Automatische Befehle

Protocol_Name: DNS    #Protocol Abbreviation if there is one.
Port_Number:  53     #Comma separated if there is more than one.
Protocol_Description: Domain Name Service        #Protocol Abbreviation Spelled out

Entry_1:
Name: Notes
Description: Notes for DNS
Note: |
#These are the commands I run every time I see an open DNS port

dnsrecon -r 127.0.0.0/24 -n {IP} -d {Domain_Name}
dnsrecon -r 127.0.1.0/24 -n {IP} -d {Domain_Name}
dnsrecon -r {Network}{CIDR} -n {IP} -d {Domain_Name}
dig axfr @{IP}
dig axfr {Domain_Name} @{IP}
nslookup
SERVER {IP}
127.0.0.1
{IP}
Domain_Name
exit

https://book.hacktricks.xyz/pentesting/pentesting-dns

Entry_2:
Name: Banner Grab
Description: Grab DNS Banner
Command: dig version.bind CHAOS TXT @DNS

Entry_3:
Name: Nmap Vuln Scan
Description: Scan for Vulnerabilities with Nmap
Command: nmap -n --script "(default and *dns*) or fcrdns or dns-srv-enum or dns-random-txid or dns-random-srcport" {IP}

Entry_4:
Name: Zone Transfer
Description: Three attempts at forcing a zone transfer
Command: dig axfr @{IP} && dix axfr @{IP} {Domain_Name} && fierce --dns-servers {IP} --domain {Domain_Name}


Entry_5:
Name: Active Directory
Description: Eunuerate a DC via DNS
Command: dig -t _gc._{Domain_Name} && dig -t _ldap._{Domain_Name} && dig -t _kerberos._{Domain_Name} && dig -t _kpasswd._{Domain_Name} && nmap --script dns-srv-enum --script-args "dns-srv-enum.domain={Domain_Name}"

Entry_6:
Name: consolesless mfs enumeration
Description: DNS enumeration without the need to run msfconsole
Note: sourced from https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/dns/dns_amp; set RHOSTS {IP}; set RPORT 53; run; exit' && msfconsole -q -x 'use auxiliary/gather/enum_dns; set RHOSTS {IP}; set RPORT 53; run; exit'

Sofort verfügbare Einrichtung für Schwachstellenbewertung und Penetrationstests. Führen Sie einen vollständigen Pentest von überall aus mit über 20 Tools und Funktionen durch, die von der Aufklärung bis zum Bericht reichen. Wir ersetzen keine Pentester - wir entwickeln benutzerdefinierte Tools, Erkennungs- und Ausnutzungsmodule, um ihnen etwas Zeit zu geben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.

{% embed url="https://pentest-tools.com/" %}

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen: