# 53 - Testowanie penetracyjne DNS
Zacznij od zera i stań się ekspertem od hakowania AWS dzięki htARTE (HackTricks AWS Red Team Expert)! Inne sposoby wsparcia HackTricks: * Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)! * Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com) * Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family) * **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) na GitHubie.
**Natychmiastowe dostępne środowisko do oceny podatności i testowania penetracyjnego**. Uruchom pełne testy penetracyjne z dowolnego miejsca za pomocą ponad 20 narzędzi i funkcji, które obejmują rozpoznanie, raportowanie. Nie zastępujemy testerów penetracyjnych - rozwijamy niestandardowe narzędzia, moduły wykrywania i eksploatacji, aby umożliwić im zagłębianie się głębiej, przejmowanie powłok i dobrą zabawę. {% embed url="https://pentest-tools.com/" %} ## **Podstawowe informacje** **System nazw domenowych (DNS)** pełni rolę katalogu internetu, umożliwiając użytkownikom dostęp do witryn za pomocą **łatwych do zapamiętania nazw domenowych** takich jak google.com lub facebook.com, zamiast numerycznych adresów protokołu internetowego (IP). Poprzez tłumaczenie nazw domenowych na adresy IP, DNS zapewnia, że przeglądarki internetowe mogą szybko ładować zasoby internetowe, upraszczając sposób, w jaki poruszamy się po świecie online. **Domyślny port:** 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) ``` ### Różne serwery DNS * **Serwery korzeniowe DNS**: Znajdują się na szczycie hierarchii DNS, zarządzając domenami najwyższego poziomu i interweniując tylko wtedy, gdy serwery niższego poziomu nie odpowiadają. Internet Corporation for Assigned Names and Numbers (**ICANN**) nadzoruje ich działanie, a globalnie istnieje 13 takich serwerów. * **Serwery autorytatywne**: Te serwery mają ostateczne zdanie w kwestii zapytań w swoich strefach, oferując jednoznaczne odpowiedzi. Jeśli nie są w stanie udzielić odpowiedzi, zapytanie jest eskalowane do serwerów korzeniowych. * **Serwery nieautorytatywne**: Nieposiadające własności nad strefami DNS, te serwery zbierają informacje o domenach poprzez zapytania do innych serwerów. * **Serwer DNS buforujący**: Ten rodzaj serwera zapamiętuje poprzednie odpowiedzi na zapytania przez określony czas, aby przyspieszyć czasy odpowiedzi na przyszłe żądania, przy czym czas buforowania jest dyktowany przez serwer autorytatywny. * **Serwer przekierowujący**: Pełniąc prostą rolę, serwery przekierowujące po prostu przekazują zapytania do innego serwera. * **Resolver**: Zintegrowany w komputerach lub routerach, resolwery wykonują lokalne rozwiązywanie nazw i nie są uważane za autorytatywne. ## Wyliczanie ### **Pobieranie banerów** W DNS nie ma banerów, ale możesz pobrać magiczne zapytanie dla `version.bind. CHAOS TXT`, które zadziała na większości serwerów nazw BIND.\ Możesz wykonać to zapytanie za pomocą `dig`: ```bash dig version.bind CHAOS TXT @DNS ``` Ponadto narzędzie [`fpdns`](https://github.com/kirei/fpdns) może również zidentyfikować serwer. Możliwe jest również pobranie banera za pomocą skryptu **nmap**: ``` --script dns-nsid ``` ### **Dowolny rekord** Rekord **ANY** poprosi serwer DNS o **zwrócenie** wszystkich dostępnych **wpisów**, które **jest skłonny ujawnić**. ```bash dig any victim.com @ ``` ### **Transfer Strefy** Ten proceder jest skrótem `Asynchronous Full Transfer Zone` (`AXFR`). ```bash dig axfr @ #Try zone transfer without domain dig axfr @ #Try zone transfer guessing the domain fierce --domain --dns-servers #Will try toperform a zone transfer against every authoritative name server and if this doesn'twork, will launch a dictionary attack ``` ### Więcej informacji ```bash dig ANY @ #Any information dig A @ #Regular DNS request dig AAAA @ #IPv6 DNS request dig TXT @ #Information dig MX @ #Emails related dig NS @ #DNS that resolves that name dig -x 192.168.0.2 @ #Reverse lookup dig -x 2a00:1450:400c:c06::93 @ #reverse IPv6 lookup #Use [-p PORT] or -6 (to use ivp6 address of dns) ``` #### Automatyzacja ```bash for sub in $(cat );do dig $sub. @ | grep -v ';\|SOA' | sed -r '/^\s*$/d' | grep $sub | tee -a subdomains.txt;done dnsenum --dnsserver --enum -p 0 -s 0 -o subdomains.txt -f ``` #### Korzystanie z nslookup ```bash nslookup > SERVER #Select dns server > 127.0.0.1 #Reverse lookup of 127.0.0.1, maybe... > #Reverse lookup of a machine, maybe... ``` ### Przydatne moduły Metasploita ```bash auxiliary/gather/enum_dns #Perform enumeration actions ``` ### Przydatne skrypty nmap ```bash #Perform enumeration actions nmap -n --script "(default and *dns*) or fcrdns or dns-srv-enum or dns-random-txid or dns-random-srcport" ``` ### DNS - Odwrócony atak siłowy ```bash dnsrecon -r 127.0.0.0/24 -n #DNS reverse of all of the addresses dnsrecon -r 127.0.1.0/24 -n #DNS reverse of all of the addresses dnsrecon -r /24 -n #DNS reverse of all of the addresses dnsrecon -d active.htb -a -n #Zone transfer ``` {% hint style="info" %} Jeśli jesteś w stanie znaleźć subdomeny rozwiązujące się na adresy IP wewnętrzne, powinieneś spróbować przeprowadzić odwrócony atak siłowy DNS do serwerów nazw domeny, pytając o ten zakres IP. {% endhint %} Inne narzędzie do tego celu: [https://github.com/amine7536/reverse-scan](https://github.com/amine7536/reverse-scan) Możesz zapytać o odwrotne zakresy IP na [https://bgp.he.net/net/205.166.76.0/24#\_dns](https://bgp.he.net/net/205.166.76.0/24#\_dns) (to narzędzie jest również pomocne przy BGP). ### DNS - Atak siłowy na subdomeny ```bash dnsenum --dnsserver --enum -p 0 -s 0 -o subdomains.txt -f subdomains-1000.txt dnsrecon -D subdomains-1000.txt -d -n dnscan -d -r -w subdomains-1000.txt #Bruteforce subdomains in recursive way, https://github.com/rbsec/dnscan ``` ### Serwery Active Directory ```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. nslookup -type=srv _kerberos._tcp.domain.com nmap --script dns-srv-enum --script-args "dns-srv-enum.domain='domain.com'" ``` ### DNSSec ```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 Atak brutalny za pomocą żądań "AAAA" w celu zebrania adresów IPv6 subdomen. ```bash dnsdict6 -s -t ``` ## Bruteforce reverse DNS in using IPv6 addresses ### Introduction In IPv6, reverse DNS lookups are done using the special domain `ip6.arpa`. To bruteforce reverse DNS in IPv6, you can use tools like `dnsrecon` or `dnsenum`. ### Steps to bruteforce reverse DNS in IPv6 1. **Generate a list of IPv6 addresses**: Use tools like `ipv6gen` to generate a list of IPv6 addresses to bruteforce. 2. **Perform reverse DNS lookup**: Use `dnsrecon` or `dnsenum` to perform reverse DNS lookups on the generated IPv6 addresses list. 3. **Analyze the results**: Analyze the results to identify any misconfigurations or potential security issues in the reverse DNS setup. ### Conclusion Bruteforcing reverse DNS in IPv6 can help identify misconfigured or vulnerable DNS setups that could be exploited by attackers. It is important for organizations to properly configure their reverse DNS to prevent potential security risks. ```bash dnsrevenum6 pri.authdns.ripe.net 2001:67c:2e8::/48 #Will use the dns pri.authdns.ripe.net ``` ### Atak DDoS na Rekursję DNS Jeśli **rekursja DNS jest włączona**, atakujący może **podrobić** pochodzenie w pakiecie UDP, aby sprawić, że **DNS wyśle odpowiedź do serwera ofiary**. Atakujący mógłby nadużyć rekordów **ANY** lub **DNSSEC**, ponieważ generują one większe odpowiedzi.\ Sposób **sprawdzenia**, czy DNS obsługuje **rekursję**, polega na zapytaniu o nazwę domeny i **sprawdzeniu**, czy flaga "ra" (_rekursja dostępna_) znajduje się w odpowiedzi: ```bash dig google.com A @ ``` **Niedostępne**: ![](<../.gitbook/assets/image (275).png>) **Dostępne**: ![](<../.gitbook/assets/image (276).png>)
**Natychmiastowe przygotowanie do oceny podatności i testów penetracyjnych**. Uruchom pełne testy penetracyjne z dowolnego miejsca za pomocą ponad 20 narzędzi i funkcji, które obejmują rozpoznanie i raportowanie. Nie zastępujemy testerów penetracyjnych - tworzymy niestandardowe narzędzia, moduły wykrywania i eksploatacji, aby umożliwić im zagłębienie się głębiej, przejęcie kontroli i dobrą zabawę. {% embed url="https://pentest-tools.com/" %} ### Mail do nieistniejącego konta Poprzez analizę powiadomienia o niemożności dostarczenia (NDN) wywołanego przez e-mail wysłany na nieprawidłowy adres w domenie docelowej, często ujawniane są cenne szczegóły dotyczące wewnętrznej sieci. Dostarczone powiadomienie o niemożności dostarczenia zawiera informacje takie jak: * Generujący serwer został zidentyfikowany jako `server.example.com`. * Powiadomienie o błędzie dla `user@example.com` z kodem błędu `#550 5.1.1 RESOLVER.ADR.RecipNotFound; not found` zostało zwrócone. * W oryginalnych nagłówkach wiadomości ujawnione zostały wewnętrzne adresy IP i nazwy hostów. ```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 ``` ## Pliki konfiguracyjne ``` 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/* ``` Niebezpieczne ustawienia podczas konfigurowania serwera Bind: | **Opcja** | **Opis** | | ----------------- | ------------------------------------------------------------------------------ | | `allow-query` | Określa, które hosty mają zezwolenie na wysyłanie żądań do serwera DNS. | | `allow-recursion` | Określa, które hosty mają zezwolenie na wysyłanie rekurencyjnych żądań do serwera DNS. | | `allow-transfer` | Określa, które hosty mają zezwolenie na odbieranie transferów stref z serwera DNS. | | `zone-statistics` | Zbiera dane statystyczne stref. | ## Referencje * [https://www.myrasecurity.com/en/knowledge-hub/dns/](https://www.myrasecurity.com/en/knowledge-hub/dns/) * Książka: **Network Security Assessment 3rd edition** ## HackTricks Automatyczne Komendy ``` 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' ```
**Natychmiastowe dostępne narzędzia do oceny podatności i testów penetracyjnych**. Uruchom pełny test penetracyjny z dowolnego miejsca za pomocą ponad 20 narzędzi i funkcji, które obejmują działania od rozpoznania po raportowanie. Nie zastępujemy pentesterów - tworzymy niestandardowe narzędzia, moduły wykrywania i eksploatacji, aby umożliwić im zagłębienie się głębiej, zdobycie powłok i dobrą zabawę. {% embed url="https://pentest-tools.com/" %}
Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)! Inne sposoby wsparcia HackTricks: * Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)! * Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com) * Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family) * **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.