# 53 - Pentesting DNS
Impara l'hacking di AWS da zero a eroe conhtARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
* Se vuoi vedere la tua **azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
**Configurazione immediatamente disponibile per la valutazione delle vulnerabilità e il penetration testing**. Esegui un pentest completo da qualsiasi luogo con oltre 20 strumenti e funzionalità che vanno dalla ricognizione alla generazione di report. Non sostituiamo i pentester - sviluppiamo strumenti personalizzati, moduli di rilevamento ed exploit per restituire loro del tempo per approfondire, ottenere shell e divertirsi.
{% embed url="https://pentest-tools.com/" %}
## **Informazioni di base**
Il **Domain Name System (DNS)** funge da directory di Internet, consentendo agli utenti di accedere ai siti web tramite **nomi di dominio facili da ricordare** come google.com o facebook.com, invece degli indirizzi numerici del Protocollo Internet (IP). Traducendo i nomi di dominio in indirizzi IP, il DNS garantisce che i browser web possano caricare rapidamente le risorse di Internet, semplificando la navigazione nel mondo online.
**Porta predefinita:** 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)
```
### Diversi server DNS
- **Server DNS radice**: Questi si trovano in cima alla gerarchia DNS, gestendo i domini di primo livello e intervenendo solo se i server di livello inferiore non rispondono. L'Internet Corporation for Assigned Names and Numbers (**ICANN**) sovraintende alla loro operatività, con un conteggio globale di 13.
- **Server di nomi autoritativi**: Questi server hanno l'ultima parola per le query nelle loro zone designate, offrendo risposte definitive. Se non possono fornire una risposta, la query viene inoltrata ai server radice.
- **Server di nomi non autoritativi**: Privi di proprietà sulle zone DNS, questi server raccolgono informazioni di dominio tramite query ad altri server.
- **Server DNS in cache**: Questo tipo di server memorizza le risposte alle query precedenti per un determinato periodo di tempo al fine di velocizzare i tempi di risposta per le richieste future, con la durata della cache dettata dal server autoritativo.
- **Server di inoltro**: Svolgendo un ruolo semplice, i server di inoltro semplicemente inoltrano le query a un altro server.
- **Resolver**: Integrati nei computer o nei router, i resolver eseguono la risoluzione dei nomi localmente e non sono considerati autoritativi.
## Enumerazione
### **Banner Grabbing**
Non ci sono banner nel DNS, ma è possibile ottenere il messaggio di versione utilizzando la query `version.bind. CHAOS TXT`, che funzionerà sulla maggior parte dei server BIND.\
È possibile eseguire questa query utilizzando `dig`:
```bash
dig version.bind CHAOS TXT @DNS
```
Inoltre, lo strumento [`fpdns`](https://github.com/kirei/fpdns) può anche identificare il server.
È anche possibile ottenere il banner anche con uno script di **nmap**:
```
--script dns-nsid
```
### **Qualsiasi record**
Il record **ANY** chiederà al server DNS di **restituire** tutte le **voci disponibili** che **è disposto a divulgare**.
```bash
dig any victim.com @
```
### **Trasferimento di zona**
Questa procedura è abbreviata come `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
```
### Ulteriori informazioni
```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)
```
#### Automazione
```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
```
#### Utilizzo di 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.
Il comando `nslookup` è uno strumento potente per interrogare i server DNS (Domain Name System) al fine di ottenere informazioni sui nomi di dominio e gli indirizzi IP. Viene comunemente utilizzato per risolvere problemi di rete e per il penetration testing.
To use `nslookup`, open a command prompt and type `nslookup` followed by the domain name or IP address you want to query. By default, `nslookup` will display the IP address of the queried domain name and the name of the DNS server that provided the response.
Per utilizzare `nslookup`, apri un prompt dei comandi e digita `nslookup` seguito dal nome di dominio o dall'indirizzo IP che desideri interrogare. Per impostazione predefinita, `nslookup` visualizzerà l'indirizzo IP del nome di dominio interrogato e il nome del server DNS che ha fornito la risposta.
You can also specify a specific DNS server to query by typing `nslookup` followed by the domain name or IP address, followed by the IP address of the DNS server you want to use. For example, `nslookup example.com 8.8.8.8` will query the DNS server at IP address 8.8.8.8 for information about the domain name example.com.
È anche possibile specificare un server DNS specifico da interrogare digitando `nslookup` seguito dal nome di dominio o dall'indirizzo IP, seguito dall'indirizzo IP del server DNS che si desidera utilizzare. Ad esempio, `nslookup example.com 8.8.8.8` interrogherà il server DNS all'indirizzo IP 8.8.8.8 per ottenere informazioni sul nome di dominio example.com.
In addition to querying DNS servers, `nslookup` can also perform reverse lookups by specifying an IP address instead of a domain name. For example, `nslookup 8.8.8.8` will display the domain name associated with the IP address 8.8.8.8.
Oltre all'interrogazione dei server DNS, `nslookup` può anche eseguire ricerche inverse specificando un indirizzo IP anziché un nome di dominio. Ad esempio, `nslookup 8.8.8.8` visualizzerà il nome di dominio associato all'indirizzo IP 8.8.8.8.
`nslookup` also supports various options and commands that can be used to customize its behavior. To view a list of available options and commands, type `nslookup` followed by `help`.
`nslookup` supporta anche diverse opzioni e comandi che possono essere utilizzati per personalizzare il suo comportamento. Per visualizzare un elenco delle opzioni e dei comandi disponibili, digita `nslookup` seguito da `help`.
```bash
nslookup
> SERVER #Select dns server
> 127.0.0.1 #Reverse lookup of 127.0.0.1, maybe...
> #Reverse lookup of a machine, maybe...
```
### Moduli utili di Metasploit
Metasploit è un framework di test di penetrazione ampiamente utilizzato che offre una vasta gamma di moduli per eseguire varie attività di hacking. Di seguito sono elencati alcuni dei moduli più utili di Metasploit:
- **exploit/multi/handler**: Questo modulo consente di creare un gestore per gli exploit multipli. È utile per intercettare le connessioni in arrivo dai payload generati da altri moduli di exploit.
- **exploit/multi/script/web_delivery**: Questo modulo consente di generare un payload personalizzato per l'iniezione in un sito web. Può essere utilizzato per eseguire codice arbitrario sul server di destinazione.
- **auxiliary/scanner/portscan/tcp**: Questo modulo consente di eseguire una scansione delle porte TCP su un host di destinazione. È utile per identificare le porte aperte e potenziali vulnerabilità.
- **auxiliary/scanner/http/dir_scanner**: Questo modulo consente di eseguire una scansione dei directory su un server web. Può essere utilizzato per individuare file e directory nascosti o vulnerabili.
- **post/multi/gather/enum_dns**: Questo modulo consente di raccogliere informazioni sul server DNS di destinazione. Può essere utilizzato per identificare record DNS, zone e altre informazioni utili.
- **post/multi/gather/dns_enum**: Questo modulo consente di eseguire una scansione dei record DNS su un server di destinazione. È utile per identificare sottodomini e altre informazioni relative al DNS.
- **post/multi/gather/dns_bruteforce**: Questo modulo consente di eseguire un attacco di forza bruta sui record DNS di un server di destinazione. Può essere utilizzato per individuare nomi di host nascosti o vulnerabili.
- **post/multi/gather/dns_recon**: Questo modulo consente di eseguire una ricognizione completa del server DNS di destinazione. Può essere utilizzato per identificare informazioni dettagliate sul DNS, come i server autoritativi e le zone.
Questi sono solo alcuni dei moduli disponibili in Metasploit. Il framework offre molte altre funzionalità e moduli che possono essere utilizzati per eseguire test di penetrazione su vari servizi di rete.
```bash
auxiliary/gather/enum_dns #Perform enumeration actions
```
### Script nmap utili
Here are some useful nmap scripts that can be used during network services pentesting:
- **dns-brute**: Questo script esegue un attacco di forza bruta sui nomi di dominio utilizzando un elenco di parole chiave specificato dall'utente.
- **dns-cache-snoop**: Questo script sfrutta le vulnerabilità di cache dei server DNS per ottenere informazioni sulle query DNS effettuate di recente.
- **dns-zone-transfer**: Questo script tenta di eseguire una trasferimento di zona DNS per ottenere informazioni sulle risorse di un dominio.
- **dns-update**: Questo script esegue un attacco di aggiornamento DNS per cercare di modificare le informazioni di un record DNS.
- **dns-recursion**: Questo script verifica se un server DNS supporta la ricorsione, consentendo di effettuare query DNS a cascata.
- **dns-service-discovery**: Questo script identifica i server DNS attivi su una rete e ne rileva le informazioni di configurazione.
- **dns-random-txid**: Questo script invia query DNS con ID di transazione casuali per evitare la rilevazione da parte dei sistemi di sicurezza.
- **dns-nsid**: Questo script invia query DNS con ID di sessione casuali per ottenere informazioni sul server DNS.
- **dns-blacklist**: Questo script verifica se un server DNS è presente in una blacklist pubblica.
- **dns-random-srcport**: Questo script invia query DNS con porte di origine casuali per evitare la rilevazione da parte dei sistemi di sicurezza.
Questi script possono essere utili per identificare vulnerabilità e debolezze nei server DNS durante un test di penetrazione dei servizi di rete.
```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 - Reverse BF
Il DNS (Domain Name System) è un sistema utilizzato per tradurre gli indirizzi IP in nomi di dominio e viceversa. Durante un test di penetrazione, è possibile utilizzare una tecnica chiamata Reverse BF (Brute Force) per scoprire i nomi di dominio associati a un determinato indirizzo IP.
La tecnica Reverse BF coinvolge l'utilizzo di un elenco di nomi di dominio comuni e l'invio di richieste DNS per verificare se uno di questi nomi di dominio è associato all'indirizzo IP in esame. Questo può essere utile per identificare potenziali risorse o servizi nascosti all'interno di un sistema.
Per eseguire un attacco di Reverse BF, è possibile utilizzare strumenti come `dnsrecon` o `dnsenum`. Questi strumenti consentono di automatizzare il processo di invio di richieste DNS per una lista di nomi di dominio e di visualizzare i risultati.
È importante notare che l'utilizzo di questa tecnica potrebbe essere considerato un comportamento sospetto e potrebbe attirare l'attenzione degli amministratori di sistema o dei sistemi di sicurezza. Pertanto, è consigliabile utilizzare questa tecnica con cautela e solo durante un test di penetrazione autorizzato.
```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" %}
Se riesci a trovare sottodomini che risolvono a indirizzi IP interni, dovresti provare a eseguire un reverse dns BF sui NSs del dominio chiedendo quel range di IP.
{% endhint %}
Un altro strumento per farlo: [https://github.com/amine7536/reverse-scan](https://github.com/amine7536/reverse-scan)
Puoi interrogare i range IP inversi su [https://bgp.he.net/net/205.166.76.0/24#\_dns](https://bgp.he.net/net/205.166.76.0/24#\_dns) (questo strumento è anche utile con BGP).
### DNS - Subdomains BF
```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
```
### Server Active Directory
Gli Active Directory (AD) sono un servizio di directory sviluppato da Microsoft che fornisce servizi di autenticazione, autorizzazione e gestione delle risorse di rete in un ambiente Windows. Gli AD sono costituiti da uno o più server che contengono informazioni sugli utenti, i gruppi e le risorse di rete.
#### Enumerazione degli utenti
Per enumerare gli utenti di un server Active Directory, è possibile utilizzare il comando `enum4linux` o lo strumento `ldapsearch`. Entrambi gli strumenti consentono di ottenere informazioni sugli utenti, inclusi i loro nomi, i gruppi di appartenenza e altre informazioni pertinenti.
Esempio di utilizzo di `enum4linux`:
```
enum4linux -U
```
Esempio di utilizzo di `ldapsearch`:
```
ldapsearch -x -h -b "dc=,dc="
```
#### Enumerazione dei gruppi
Per enumerare i gruppi di un server Active Directory, è possibile utilizzare il comando `enum4linux` o lo strumento `ldapsearch`. Entrambi gli strumenti consentono di ottenere informazioni sui gruppi, inclusi i loro nomi, i membri e altre informazioni pertinenti.
Esempio di utilizzo di `enum4linux`:
```
enum4linux -G
```
Esempio di utilizzo di `ldapsearch`:
```
ldapsearch -x -h -b "dc=,dc="
```
#### Enumerazione delle risorse di rete
Per enumerare le risorse di rete di un server Active Directory, è possibile utilizzare il comando `enum4linux` o lo strumento `ldapsearch`. Entrambi gli strumenti consentono di ottenere informazioni sulle risorse di rete, inclusi i nomi dei computer, i servizi disponibili e altre informazioni pertinenti.
Esempio di utilizzo di `enum4linux`:
```
enum4linux -R
```
Esempio di utilizzo di `ldapsearch`:
```
ldapsearch -x -h -b "dc=,dc="
```
#### Esecuzione di attacchi di password
Per eseguire attacchi di password su un server Active Directory, è possibile utilizzare strumenti come `hydra` o `crackmapexec`. Questi strumenti consentono di eseguire attacchi di forza bruta o attacchi di dizionario per cercare di ottenere le password degli utenti.
Esempio di utilizzo di `hydra`:
```
hydra -l -P smb
```
Esempio di utilizzo di `crackmapexec`:
```
crackmapexec smb -u -p
```
#### Esecuzione di attacchi di pass-the-hash
Per eseguire attacchi di pass-the-hash su un server Active Directory, è possibile utilizzare strumenti come `mimikatz` o `pth-winexe`. Questi strumenti consentono di sfruttare le hash delle password degli utenti per ottenere l'accesso al server senza conoscere le password effettive.
Esempio di utilizzo di `mimikatz`:
```
mimikatz "sekurlsa::pth /user: /domain: /ntlm: /run:"
```
Esempio di utilizzo di `pth-winexe`:
```
pth-winexe -U % //
```
#### Esecuzione di attacchi di Kerberoasting
Per eseguire attacchi di Kerberoasting su un server Active Directory, è possibile utilizzare lo strumento `GetUserSPNs` di `impacket`. Questo strumento consente di ottenere i Service Principal Names (SPN) degli utenti e generare richieste di ticket Kerberos per ottenere i relativi hash delle password.
Esempio di utilizzo di `GetUserSPNs`:
```
GetUserSPNs.py /:@
```
#### Esecuzione di attacchi di Golden Ticket
Per eseguire attacchi di Golden Ticket su un server Active Directory, è possibile utilizzare lo strumento `mimikatz`. Questo strumento consente di generare un ticket Kerberos dorato (Golden Ticket) utilizzando la chiave di crittografia del dominio e ottenere l'accesso completo al dominio.
Esempio di utilizzo di `mimikatz`:
```
mimikatz "kerberos::golden /user: /domain: /sid: /krbtgt: /id: /groups: /ptt"
```
#### Esecuzione di attacchi di Silver Ticket
Per eseguire attacchi di Silver Ticket su un server Active Directory, è possibile utilizzare lo strumento `mimikatz`. Questo strumento consente di generare un ticket Kerberos argentato (Silver Ticket) utilizzando la chiave di crittografia di un servizio e ottenere l'accesso a quel servizio senza conoscere le credenziali effettive.
Esempio di utilizzo di `mimikatz`:
```
mimikatz "kerberos::golden /user: /domain: /sid: /target: /id: /groups: /ptt"
```
#### Esecuzione di attacchi di DCSync
Per eseguire attacchi di DCSync su un server Active Directory, è possibile utilizzare lo strumento `mimikatz`. Questo strumento consente di ottenere le informazioni sulle password degli account di dominio senza privilegi di amministratore.
Esempio di utilizzo di `mimikatz`:
```
mimikatz "lsadump::dcsync /user:"
```
#### Esecuzione di attacchi di DCShadow
Per eseguire attacchi di DCShadow su un server Active Directory, è possibile utilizzare lo strumento `mimikatz`. Questo strumento consente di creare un oggetto fittizio nel database di Active Directory e ottenere il controllo completo su di esso.
Esempio di utilizzo di `mimikatz`:
```
mimikatz "lsadump::dcshadow /object: /attribute: /value: /server:"
```
#### Esecuzione di attacchi di DNS poisoning
Per eseguire attacchi di DNS poisoning su un server Active Directory, è possibile utilizzare strumenti come `dnsmasq` o `mitm6`. Questi strumenti consentono di iniettare record DNS falsi nel server DNS per indirizzare il traffico verso indirizzi IP controllati dall'attaccante.
Esempio di utilizzo di `dnsmasq`:
```
dnsmasq --no-daemon --no-resolv --no-hosts --address=/example.com/
```
Esempio di utilizzo di `mitm6`:
```
mitm6 -d -i
```
#### Esecuzione di attacchi di DNS tunneling
Per eseguire attacchi di DNS tunneling su un server Active Directory, è possibile utilizzare strumenti come `iodine` o `dnscat2`. Questi strumenti consentono di creare un tunnel di comunicazione attraverso il traffico DNS per bypassare le restrizioni di rete e trasferire dati in modo nascosto.
Esempio di utilizzo di `iodine`:
```
iodine -f -P .
```
Esempio di utilizzo di `dnscat2`:
```
dnscat2 -dns .
```
#### Esecuzione di attacchi di zone transfer
Per eseguire attacchi di zone transfer su un server Active Directory, è possibile utilizzare strumenti come `dig` o `nslookup`. Questi strumenti consentono di ottenere una copia completa della zona DNS del server, inclusi i record degli utenti, i record dei gruppi e altre informazioni pertinenti.
Esempio di utilizzo di `dig`:
```
dig axfr @
```
Esempio di utilizzo di `nslookup`:
```
nslookup
> server
> ls -d
```
#### Esecuzione di attacchi di subdomain takeover
Per eseguire attacchi di subdomain takeover su un server Active Directory, è possibile utilizzare strumenti come `subjack` o `subover`. Questi strumenti consentono di individuare sottodomini non utilizzati o scaduti e prendere il controllo su di essi per eseguire attacchi di phishing o di spoofing.
Esempio di utilizzo di `subjack`:
```
subjack -w -t -timeout -ssl
```
Esempio di utilizzo di `subover`:
```
subover -l -t
```
```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
DNSSec (Domain Name System Security Extensions) è un insieme di estensioni di sicurezza per il protocollo DNS. L'obiettivo principale di DNSSec è garantire l'integrità e l'autenticità dei dati DNS, prevenendo così attacchi come il DNS spoofing e il DNS cache poisoning.
DNSSec utilizza una struttura a chiave pubblica per firmare digitalmente le risposte DNS, consentendo ai client di verificare l'autenticità dei dati ricevuti. Inoltre, DNSSec introduce anche la firma delle zone, che consente ai server DNS di firmare digitalmente l'intera zona DNS, garantendo l'integrità dei dati.
Per verificare l'autenticità dei dati DNS, i client devono disporre delle chiavi pubbliche dei server DNS autoritativi. Queste chiavi pubbliche possono essere ottenute tramite il processo di delega delle zone DNS.
DNSSec non fornisce confidenzialità dei dati, quindi i dati DNS firmati possono ancora essere letti da un attaccante. Tuttavia, DNSSec fornisce un meccanismo per rilevare eventuali modifiche non autorizzate ai dati DNS, consentendo agli utenti di prendere provvedimenti appropriati.
Per sfruttare DNSSec durante un test di penetrazione, è possibile utilizzare strumenti come `dnssec-verify` per verificare l'autenticità dei dati DNS e identificare eventuali vulnerabilità nel sistema DNS.
```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
Forzatura tramite richieste "AAAA" per raccogliere gli indirizzi IPv6 dei sottodomini.
```bash
dnsdict6 -s -t
```
# 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. **Enumerate IPv6 addresses**: Use tools like `nmap` or `masscan` to scan the target network and identify active IPv6 addresses.
2. **Generate possible reverse DNS names**: Create a list of possible reverse DNS names based on the target's domain name or any other relevant information. For example, if the target's domain name is `example.com`, possible reverse DNS names could be `com.example.`, `com.example.www.`, etc.
3. **Perform reverse DNS lookup**: Use a tool like `dig` to perform reverse DNS lookup for each IPv6 address and check if any of the generated reverse DNS names match the actual reverse DNS record.
4. **Automate the process**: To speed up the bruteforce process, you can write a script or use existing tools to automate the reverse DNS lookup for all the IPv6 addresses and compare the results with the generated reverse DNS names.
## Conclusion
Bruteforcing reverse DNS records for IPv6 addresses can provide valuable information during a penetration test. By automating the process and generating possible reverse DNS names, you can efficiently identify potential vulnerabilities in the target network.
```bash
dnsrevenum6 pri.authdns.ripe.net 2001:67c:2e8::/48 #Will use the dns pri.authdns.ripe.net
```
### DNS Recursion DDoS
Se **la ricorsione DNS è abilitata**, un attaccante potrebbe **falsificare** l'**origine** del pacchetto UDP al fine di far inviare la risposta DNS al server vittima. Un attaccante potrebbe sfruttare **qualsiasi** tipo di record o **DNSSEC**, in quanto tendono a generare risposte più grandi.\
Il modo per **verificare** se un DNS supporta la **ricorsione** è interrogare un nome di dominio e **verificare** se il flag "ra" (_ricorsione disponibile_) è presente nella risposta:
```bash
dig google.com A @
```
**Non disponibile**:
![](<../.gitbook/assets/image (275).png>)
**Disponibile**:
![](<../.gitbook/assets/image (276).png>)
**Configurazione immediatamente disponibile per la valutazione delle vulnerabilità e il penetration testing**. Esegui un pentest completo da qualsiasi luogo con oltre 20 strumenti e funzionalità che vanno dalla ricognizione alla generazione di report. Non sostituiamo i pentester - sviluppiamo strumenti personalizzati, moduli di rilevamento ed exploit per permettere loro di dedicarsi a scavare più a fondo, ottenere accesso ai sistemi e divertirsi.
{% embed url="https://pentest-tools.com/" %}
### Invio di una mail a un account inesistente
Attraverso l'esame di una notifica di mancata consegna (NDN) scatenata da una mail inviata a un indirizzo non valido all'interno di un dominio target, spesso vengono rivelati preziosi dettagli sulla rete interna.
La notifica di mancata consegna fornita include informazioni come:
- Il server generatore è stato identificato come `server.example.com`.
- È stata restituita una notifica di errore per `user@example.com` con il codice di errore `#550 5.1.1 RESOLVER.ADR.RecipNotFound; non trovato`.
- Gli indirizzi IP interni e i nomi host sono stati rivelati negli header del messaggio originale.
```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
```
## File di configurazione
Config files are files that contain settings and parameters for various applications and services. These files are often used to customize the behavior of the application or service according to the user's preferences.
I file di configurazione sono file che contengono impostazioni e parametri per varie applicazioni e servizi. Questi file vengono spesso utilizzati per personalizzare il comportamento dell'applicazione o del servizio in base alle preferenze dell'utente.
Config files can be found in different locations depending on the operating system and the application or service being used. Some common locations for config files include:
I file di configurazione possono essere trovati in posizioni diverse a seconda del sistema operativo e dell'applicazione o del servizio utilizzato. Alcune posizioni comuni per i file di configurazione includono:
- `/etc`: This directory is commonly used for system-wide configuration files in Unix-like operating systems.
- `/etc`: Questa directory è comunemente utilizzata per i file di configurazione a livello di sistema nei sistemi operativi di tipo Unix.
- `/usr/local/etc`: This directory is often used for configuration files specific to a particular application or service.
- `/usr/local/etc`: Questa directory viene spesso utilizzata per i file di configurazione specifici di un'applicazione o di un servizio particolare.
- `~/.config`: This directory is used for user-specific configuration files in Unix-like operating systems.
- `~/.config`: Questa directory viene utilizzata per i file di configurazione specifici dell'utente nei sistemi operativi di tipo Unix.
- `C:\Program Files`: This directory is commonly used for system-wide configuration files in Windows operating systems.
- `C:\Program Files`: Questa directory è comunemente utilizzata per i file di configurazione a livello di sistema nei sistemi operativi Windows.
It is important to note that config files may contain sensitive information such as passwords, API keys, and database credentials. Therefore, it is crucial to ensure that these files are properly secured and access to them is restricted to authorized users only.
È importante notare che i file di configurazione possono contenere informazioni sensibili come password, chiavi API e credenziali del database. Pertanto, è fondamentale assicurarsi che questi file siano adeguatamente protetti e che l'accesso ad essi sia limitato solo agli utenti autorizzati.
```
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/*
```
Impostazioni pericolose durante la configurazione di un server Bind:
| **Opzione** | **Descrizione** |
| ----------------- | ------------------------------------------------------------------------------ |
| `allow-query` | Definisce quali host sono autorizzati a inviare richieste al server DNS. |
| `allow-recursion` | Definisce quali host sono autorizzati a inviare richieste ricorsive al server DNS. |
| `allow-transfer` | Definisce quali host sono autorizzati a ricevere trasferimenti di zona dal server DNS. |
| `zone-statistics` | Raccoglie dati statistici delle zone. |
## Riferimenti
* [https://www.myrasecurity.com/en/knowledge-hub/dns/](https://www.myrasecurity.com/en/knowledge-hub/dns/)
* Libro: **Network Security Assessment 3rd edition**
## Comandi automatici di HackTricks
```
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'
```
**Configurazione immediatamente disponibile per la valutazione delle vulnerabilità e il penetration testing**. Esegui un pentest completo da qualsiasi luogo con oltre 20 strumenti e funzionalità che vanno dalla ricognizione alla generazione di report. Non sostituiamo i pentester, sviluppiamo invece strumenti personalizzati, moduli di rilevamento ed exploit per permettere loro di dedicarsi a scavare più a fondo, ottenere accesso shell e divertirsi.
{% embed url="https://pentest-tools.com/" %}
Impara l'hacking di AWS da zero a eroe conhtARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
* Se vuoi vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF**, controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR ai repository github di** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).