mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-22 11:03:24 +00:00
550 lines
37 KiB
Markdown
550 lines
37 KiB
Markdown
# 53 - Pentesting DNS
|
|
|
|
<details>
|
|
|
|
<summary><strong>Lernen Sie AWS-Hacking von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Andere Möglichkeiten, HackTricks zu unterstützen:
|
|
|
|
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
|
|
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
|
|
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **GitHub-Repositories** senden.
|
|
|
|
</details>
|
|
|
|
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
**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:
|
|
```bash
|
|
dig version.bind CHAOS TXT @DNS
|
|
```
|
|
Darüber hinaus kann das Tool [`fpdns`](https://github.com/kirei/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**.
|
|
```bash
|
|
dig any victim.com @<DNS_IP>
|
|
```
|
|
### **Zone Transfer**
|
|
|
|
Dieses Verfahren wird als `Asynchronous Full Transfer Zone` (`AXFR`) abgekürzt.
|
|
```bash
|
|
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
|
|
```bash
|
|
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.
|
|
```bash
|
|
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.
|
|
```bash
|
|
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.
|
|
```bash
|
|
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.
|
|
```bash
|
|
#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.
|
|
```bash
|
|
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](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](https://bgp.he.net/net/205.166.76.0/24#\_dns) (dieses Tool ist auch hilfreich bei BGP).
|
|
|
|
### DNS - Subdomains BF
|
|
```bash
|
|
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.
|
|
```bash
|
|
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.
|
|
```bash
|
|
#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.
|
|
```bash
|
|
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.
|
|
```bash
|
|
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:
|
|
```bash
|
|
dig google.com A @<IP>
|
|
```
|
|
**Nicht verfügbar**:
|
|
|
|
![](<../.gitbook/assets/image (275).png>)
|
|
|
|
**Verfügbar**:
|
|
|
|
![](<../.gitbook/assets/image (276).png>)
|
|
|
|
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
**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.
|
|
```markdown
|
|
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
|
|
* [https://www.myrasecurity.com/en/knowledge-hub/dns/](https://www.myrasecurity.com/en/knowledge-hub/dns/)
|
|
* Buch: **Network Security Assessment 3rd edition**
|
|
|
|
## 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'
|
|
```
|
|
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
**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/" %}
|
|
|
|
<details>
|
|
|
|
<summary><strong>Lernen Sie AWS-Hacking von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Andere Möglichkeiten, HackTricks zu unterstützen:
|
|
|
|
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
|
|
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
|
|
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
|
|
|
|
</details>
|