mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-22 19:13:39 +00:00
449 lines
33 KiB
Markdown
449 lines
33 KiB
Markdown
# 53 - Pentesting DNS
|
|
|
|
<details>
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
|
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|
|
|
|
<figure><img src="../.gitbook/assets/image (1) (1) (2) (4).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
[**DragonJAR Security Conference é um evento internacional de cibersegurança**](https://www.dragonjarcon.org/) com mais de uma década que será realizado nos dias 7 e 8 de setembro de 2023 em Bogotá, Colômbia. É um evento de alto conteúdo técnico onde são apresentadas as últimas pesquisas em espanhol que atraem hackers e pesquisadores de todo o mundo.\
|
|
Registre-se agora no link abaixo e não perca esta grande conferência!:
|
|
|
|
{% embed url="https://www.dragonjarcon.org/" %}
|
|
|
|
## **Informações básicas**
|
|
|
|
O Sistema de Nomes de Domínio (DNS) é a lista telefônica da Internet. Os seres humanos acessam informações online por meio de nomes de domínio, como nytimes.com ou espn.com. Os navegadores da web interagem por meio de endereços de Protocolo de Internet (IP). O DNS traduz nomes de domínio em [endereços IP](https://www.cloudflare.com/learning/dns/glossary/what-is-my-ip-address/) para que os navegadores possam carregar recursos da Internet.\
|
|
De [aqui](https://www.cloudflare.com/learning/dns/what-is-dns/).
|
|
|
|
**Porta padrão:** 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)
|
|
```
|
|
### Diferentes Servidores DNS
|
|
|
|
Informações de [https://academy.hackthebox.com/module/112/section/1069](https://academy.hackthebox.com/module/112/section/1069)
|
|
|
|
| **Tipo de Servidor** | **Descrição** |
|
|
| ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| `Servidor Raiz DNS` | Os servidores raiz do DNS são responsáveis pelos domínios de nível superior (`TLD`). Como última instância, eles só são solicitados se o servidor de nomes não responder. Assim, um servidor raiz é uma interface central entre os usuários e o conteúdo na Internet, pois ele vincula domínio e endereço IP. A [Corporação da Internet para Atribuição de Nomes e Números](https://www.icann.org/) (`ICANN`) coordena o trabalho dos servidores de nomes raiz. Existem `13` desses servidores raiz ao redor do mundo. |
|
|
| `Servidor de Nomes Autoritativo`| Servidores de nomes autoritativos possuem autoridade sobre uma zona específica. Eles respondem apenas a consultas de sua área de responsabilidade, e suas informações são vinculativas. Se um servidor de nomes autoritativo não puder responder a uma consulta do cliente, o servidor de nomes raiz assume nesse ponto. |
|
|
| `Servidor de Nomes Não Autoritativo` | Servidores de nomes não autoritativos não são responsáveis por uma zona DNS específica. Em vez disso, eles coletam informações sobre zonas DNS específicas por conta própria, o que é feito usando consultas DNS recursivas ou iterativas. |
|
|
| `Servidor DNS em Cache` | Servidores DNS em cache armazenam em cache informações de outros servidores de nomes por um período especificado. O servidor de nomes autoritativo determina a duração desse armazenamento. |
|
|
| `Servidor de Encaminhamento` | Servidores de encaminhamento executam apenas uma função: eles encaminham consultas DNS para outro servidor DNS. |
|
|
| `Resolvedor` | Resolvedores não são servidores DNS autoritativos, mas realizam a resolução de nomes localmente no computador ou roteador. |
|
|
|
|
## Enumeração
|
|
|
|
### **Banner Grabbing**
|
|
|
|
O DNS não possui um "banner" para ser obtido. O equivalente mais próximo é uma consulta mágica para `version.bind. CHAOS TXT`, que funcionará na maioria dos servidores BIND.\
|
|
Você pode realizar essa consulta usando o `dig`:
|
|
```bash
|
|
dig version.bind CHAOS TXT @DNS
|
|
```
|
|
Se isso não funcionar, você pode usar técnicas de fingerprinting para determinar a versão do servidor remoto - a ferramenta [`fpdns`](https://github.com/kirei/fpdns) é uma opção para isso, mas existem outras.
|
|
|
|
Você também pode obter o banner com um script do **nmap**:
|
|
```
|
|
--script dns-nsid
|
|
```
|
|
### **Qualquer registro**
|
|
|
|
O registro **ANY** solicitará ao servidor DNS que **retorne** todas as **entradas** disponíveis que **ele está disposto a divulgar**.
|
|
```bash
|
|
dig any victim.com @<DNS_IP>
|
|
```
|
|
### **Transferência de Zona**
|
|
|
|
Este procedimento é abreviado como `Transferência de Zona Completa Assíncrona` (`AXFR`).
|
|
```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
|
|
```
|
|
### Mais informações
|
|
```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)
|
|
```
|
|
#### Automação
|
|
|
|
Automating tasks is a crucial aspect of DNS pentesting. It allows you to efficiently perform repetitive tasks and save time. There are various tools and scripts available that can help you automate different aspects of DNS pentesting.
|
|
|
|
##### Enumeration
|
|
|
|
Enumeration is an important phase in DNS pentesting, and automating this process can greatly speed up your testing. Tools like `dnsrecon`, `dnsenum`, and `fierce` can be used to automate DNS enumeration. These tools can help you discover subdomains, gather information about DNS servers, and perform zone transfers.
|
|
|
|
##### Brute-Forcing
|
|
|
|
Brute-forcing is another common technique used in DNS pentesting. It involves guessing subdomains or hostnames by trying different combinations. Tools like `dnsrecon`, `dnsenum`, and `fierce` can also be used for brute-forcing. These tools have built-in wordlists and can perform dictionary attacks to guess subdomains.
|
|
|
|
##### Zone Transfers
|
|
|
|
Automating zone transfers can help you quickly gather information about a target's DNS infrastructure. Tools like `dnsrecon`, `dnsenum`, and `fierce` can be used to automate zone transfers. These tools can attempt zone transfers and retrieve valuable information such as subdomains, IP addresses, and DNS records.
|
|
|
|
##### DNS Cache Poisoning
|
|
|
|
DNS cache poisoning is a technique used to manipulate DNS cache data. Automating DNS cache poisoning can help you test the vulnerability of a target's DNS infrastructure. Tools like `dnsspooq` and `mitm6` can be used to automate DNS cache poisoning attacks.
|
|
|
|
##### DNS Tunneling
|
|
|
|
DNS tunneling is a technique used to bypass network security measures by encapsulating non-DNS traffic within DNS packets. Automating DNS tunneling can help you establish covert communication channels. Tools like `iodine` and `dnscat2` can be used to automate DNS tunneling.
|
|
|
|
##### DNS Rebinding
|
|
|
|
DNS rebinding is a technique used to bypass the same-origin policy of web browsers. Automating DNS rebinding can help you exploit vulnerabilities in web applications. Tools like `singularity` and `rebind` can be used to automate DNS rebinding attacks.
|
|
|
|
Automating these tasks can significantly enhance your efficiency and effectiveness in DNS pentesting. However, it is important to use these tools responsibly and with proper authorization.
|
|
```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>
|
|
```
|
|
#### Usando 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 services pentesting to gather information about a target's DNS configuration.
|
|
|
|
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.
|
|
|
|
Here is an example of using `nslookup` to query the IP address of a domain name:
|
|
|
|
```
|
|
$ nslookup example.com
|
|
```
|
|
|
|
This will return the IP address associated with the domain name `example.com`.
|
|
|
|
You can also use `nslookup` to perform reverse DNS lookups by querying an IP address to obtain the corresponding domain name. To do this, simply type the IP address instead of the domain name:
|
|
|
|
```
|
|
$ nslookup 192.168.1.1
|
|
```
|
|
|
|
This will return the domain name associated with the IP address `192.168.1.1`.
|
|
|
|
In addition to querying DNS servers, `nslookup` can also be used to set the DNS server to be used for subsequent queries. This can be useful when testing different DNS configurations. To set the DNS server, use the `server` command followed by the IP address of the DNS server:
|
|
|
|
```
|
|
$ nslookup
|
|
> server 8.8.8.8
|
|
```
|
|
|
|
This will set the DNS server to `8.8.8.8` for all subsequent queries.
|
|
|
|
`nslookup` is a versatile tool that can provide valuable information during network services pentesting. By understanding how to use it effectively, you can gather important details about a target's DNS infrastructure.
|
|
```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...
|
|
```
|
|
### Módulos úteis do metasploit
|
|
|
|
Metasploit é uma poderosa ferramenta de teste de penetração que oferece uma ampla gama de módulos para explorar vulnerabilidades em sistemas de rede. Aqui estão alguns módulos úteis do Metasploit que podem ser usados durante um teste de penetração em serviços DNS:
|
|
|
|
- **auxiliary/scanner/dns/dns_cache_snoop**: Este módulo permite verificar o cache DNS de um servidor para obter informações sobre os registros armazenados em cache. Isso pode ser útil para identificar informações sensíveis que podem ser exploradas posteriormente.
|
|
|
|
- **auxiliary/scanner/dns/dns_enum**: Este módulo realiza uma enumeração de DNS para descobrir informações sobre um domínio, como registros de host, registros MX e registros NS. Isso pode ajudar a identificar possíveis pontos de entrada para ataques.
|
|
|
|
- **auxiliary/scanner/dns/dns_forward_lookup**: Este módulo realiza uma pesquisa de DNS para obter informações sobre um domínio ou um conjunto de domínios. Ele pode ser usado para verificar a existência de registros DNS específicos.
|
|
|
|
- **auxiliary/scanner/dns/dns_reverse_lookup**: Este módulo realiza uma pesquisa de DNS reversa para obter informações sobre um endereço IP. Isso pode ser útil para identificar os domínios associados a um determinado endereço IP.
|
|
|
|
- **auxiliary/scanner/dns/dns_srv_enum**: Este módulo realiza uma enumeração de DNS para descobrir informações sobre serviços específicos oferecidos por um domínio. Isso pode ajudar a identificar serviços expostos que podem ser alvos de ataques.
|
|
|
|
Esses módulos do Metasploit podem ser usados para identificar vulnerabilidades e explorar serviços DNS durante um teste de penetração. No entanto, é importante lembrar que o uso dessas ferramentas deve ser feito de forma ética e legal, com a devida autorização do proprietário do sistema-alvo.
|
|
```bash
|
|
auxiliary/gather/enum_dns #Perform enumeration actions
|
|
```
|
|
### Scripts nmap úteis
|
|
|
|
Nmap é uma ferramenta de varredura de rede amplamente utilizada para descobrir hosts e serviços em uma rede. Ele possui uma ampla variedade de scripts embutidos que podem ser usados para testar a segurança de serviços específicos. Aqui estão alguns scripts nmap úteis para testes de penetração em serviços DNS:
|
|
|
|
- **dns-brute.nse**: Este script realiza uma busca de subdomínios usando uma lista de palavras-chave comuns. É útil para identificar subdomínios ocultos ou mal configurados que podem ser explorados.
|
|
- **dns-cache-snoop.nse**: Este script verifica se um servidor DNS está vulnerável a ataques de cache snooping. Ele pode revelar informações confidenciais, como registros DNS armazenados em cache.
|
|
- **dns-zone-transfer.nse**: Este script verifica se um servidor DNS permite transferências de zona não autorizadas. Isso pode levar à divulgação de informações sensíveis sobre a infraestrutura de rede.
|
|
- **dns-update.nse**: Este script verifica se um servidor DNS permite atualizações dinâmicas não autorizadas. Isso pode ser explorado para modificar registros DNS ou realizar ataques de envenenamento de cache.
|
|
- **dns-recursion.nse**: Este script verifica se um servidor DNS está configurado para permitir consultas recursivas de qualquer host. Isso pode ser explorado para realizar ataques de amplificação de DNS.
|
|
|
|
Esses scripts podem ser executados usando o comando `nmap` seguido do alvo e do script desejado. Por exemplo:
|
|
|
|
```
|
|
nmap -p 53 --script dns-brute.nse example.com
|
|
```
|
|
|
|
Lembre-se de que o uso desses scripts em um ambiente de produção sem permissão adequada pode ser ilegal e antiético. Sempre obtenha permissão por escrito antes de realizar testes de penetração em qualquer sistema.
|
|
```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
|
|
|
|
O DNS (Domain Name System) é um serviço fundamental na infraestrutura da Internet que traduz nomes de domínio legíveis por humanos em endereços IP. No entanto, o DNS também pode ser explorado por hackers para obter informações valiosas sobre uma rede.
|
|
|
|
Uma técnica comum usada em testes de penetração é o Reverse BF (Brute Force), que envolve a enumeração de registros DNS reversos para descobrir informações sobre os sistemas e serviços em uma rede. Essa técnica é particularmente útil quando se deseja identificar hosts ocultos ou serviços mal configurados.
|
|
|
|
O processo de Reverse BF começa com a identificação do intervalo de endereços IP a serem testados. Em seguida, o hacker usa uma ferramenta de enumeração DNS para consultar os registros PTR (Pointer) do DNS reverso para cada endereço IP no intervalo. Esses registros PTR fornecem informações sobre o nome do host associado a um determinado endereço IP.
|
|
|
|
Ao analisar os registros PTR, o hacker pode descobrir hosts que não estão listados publicamente e, assim, identificar possíveis alvos para ataques. Além disso, a análise dos registros PTR pode revelar informações sobre serviços mal configurados ou vulnerabilidades que podem ser exploradas.
|
|
|
|
É importante ressaltar que o Reverse BF é uma técnica invasiva e deve ser realizada apenas em sistemas e redes autorizados. O uso indevido dessa técnica pode resultar em violações de privacidade e até mesmo em ações legais.
|
|
|
|
Em resumo, o Reverse BF é uma técnica de teste de penetração que envolve a enumeração de registros DNS reversos para descobrir informações sobre sistemas e serviços em uma rede. Essa técnica pode ser útil para identificar hosts ocultos e serviços mal configurados, mas deve ser usada com responsabilidade e dentro dos limites legais.
|
|
```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" %}
|
|
Se você conseguir encontrar subdomínios que resolvem para endereços IP internos, você deve tentar realizar um reverse dns BF para os NSs do domínio solicitando essa faixa de IP.
|
|
{% endhint %}
|
|
|
|
Outra ferramenta para fazer isso: [https://github.com/amine7536/reverse-scan](https://github.com/amine7536/reverse-scan)
|
|
|
|
Você pode consultar faixas de IP reversas em [https://bgp.he.net/net/205.166.76.0/24#\_dns](https://bgp.he.net/net/205.166.76.0/24#\_dns) (essa ferramenta também é útil com 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
|
|
```
|
|
### Servidores do Active Directory
|
|
|
|
Active Directory (AD) é um serviço de diretório desenvolvido pela Microsoft que armazena informações sobre objetos de rede, como usuários, grupos, computadores e recursos compartilhados. Durante um teste de penetração, é importante identificar e avaliar os servidores do Active Directory para encontrar possíveis vulnerabilidades e explorá-las.
|
|
|
|
#### Enumeração do Active Directory
|
|
|
|
A enumeração do Active Directory envolve a coleta de informações sobre o domínio, como nomes de usuários, grupos, políticas de segurança e configurações. Isso pode ser feito usando várias técnicas, como consultas DNS, consultas LDAP e varreduras de porta.
|
|
|
|
#### Ataques ao Active Directory
|
|
|
|
Uma vez que as informações sobre o Active Directory tenham sido coletadas, é possível realizar ataques direcionados para comprometer o sistema. Alguns exemplos de ataques incluem:
|
|
|
|
- Ataques de força bruta: tentativas repetidas de adivinhar senhas de usuários ou contas de serviço.
|
|
- Ataques de pass-the-hash: uso de hashes de senha roubados para autenticar-se como um usuário legítimo.
|
|
- Ataques de pass-the-ticket: uso de tickets Kerberos roubados para obter acesso não autorizado.
|
|
- Ataques de injeção de DLL: exploração de vulnerabilidades para injetar código malicioso em processos do sistema.
|
|
|
|
#### Proteção do Active Directory
|
|
|
|
Para proteger o Active Directory contra ataques, é importante implementar boas práticas de segurança, como:
|
|
|
|
- Fortes políticas de senha: exigir senhas complexas e alterá-las regularmente.
|
|
- Restrições de acesso: limitar o acesso aos servidores do Active Directory apenas a usuários autorizados.
|
|
- Monitoramento de eventos: registrar e analisar eventos de segurança para detectar atividades suspeitas.
|
|
- Patches e atualizações: manter os servidores do Active Directory atualizados com os últimos patches de segurança.
|
|
|
|
#### Conclusão
|
|
|
|
Os servidores do Active Directory são um alvo comum para hackers, pois contêm informações valiosas sobre uma rede. Ao realizar um teste de penetração, é essencial identificar e avaliar esses servidores para garantir a segurança do sistema.
|
|
```
|
|
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
|
|
nmap --script dns-srv-enum --script-args "dns-srv-enum.domain='domain.com'"
|
|
```
|
|
### DNSSec
|
|
|
|
DNSSec (Domain Name System Security Extensions) é uma extensão de segurança para o DNS que visa proteger as consultas DNS contra ataques de envenenamento de cache e falsificação de resposta. Ele adiciona uma camada adicional de autenticação e integridade aos registros DNS, garantindo que os dados recebidos sejam autênticos e não tenham sido modificados durante a transmissão.
|
|
|
|
DNSSec utiliza criptografia de chave pública para assinar digitalmente os registros DNS. Isso permite que os clientes verifiquem a autenticidade dos registros DNS recebidos, garantindo que eles não tenham sido adulterados por um atacante.
|
|
|
|
Ao realizar um teste de penetração em um serviço DNS, é importante verificar se o DNSSec está implementado corretamente. Isso pode ser feito verificando se os registros DNS estão assinados digitalmente e se as chaves públicas correspondentes estão disponíveis para verificação.
|
|
|
|
Se o DNSSec estiver implementado incorretamente ou não estiver presente, um atacante pode explorar vulnerabilidades no serviço DNS para realizar ataques de envenenamento de cache, falsificação de resposta ou ataques de negação de serviço. Portanto, é essencial garantir que o DNSSec esteja configurado corretamente para proteger o serviço DNS contra esses tipos de ataques.
|
|
```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
|
|
|
|
Força bruta usando solicitações "AAAA" para obter os endereços IPv6 dos subdomínios.
|
|
```bash
|
|
dnsdict6 -s -t <domain>
|
|
```
|
|
# Pentesting DNS
|
|
|
|
## Bruteforce reverse DNS using IPv6 addresses
|
|
|
|
Reverse DNS is a technique used to map an IP address to a domain name. In the case of IPv6 addresses, the reverse DNS lookup is done using the special domain `ip6.arpa`.
|
|
|
|
To perform a bruteforce reverse DNS attack on IPv6 addresses, follow these steps:
|
|
|
|
1. Generate a list of possible domain names based on the target IPv6 address. This can be done by converting the IPv6 address to hexadecimal format and appending it to the `ip6.arpa` domain. For example, if the target IPv6 address is `2001:0db8:85a3:0000:0000:8a2e:0370:7334`, the corresponding domain name would be `4.3.3.7.0.3.e.2.a.8.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.2.ip6.arpa`.
|
|
|
|
2. Use a DNS enumeration tool, such as `dnsrecon` or `dnsenum`, to perform the reverse DNS lookup for each domain name in the generated list. These tools automate the process of querying DNS servers for reverse DNS records.
|
|
|
|
3. Analyze the results of the reverse DNS lookup. Look for any domain names that are associated with the target IPv6 address. This information can be useful for identifying potential targets for further exploitation.
|
|
|
|
It is important to note that bruteforcing reverse DNS can be a time-consuming process, especially for large IPv6 address ranges. Additionally, some DNS servers may have rate limiting or other security measures in place to prevent such attacks. Therefore, it is recommended to use this technique responsibly and with proper authorization.
|
|
```bash
|
|
dnsrevenum6 pri.authdns.ripe.net 2001:67c:2e8::/48 #Will use the dns pri.authdns.ripe.net
|
|
```
|
|
### DNS Recursion DDoS
|
|
|
|
Se **a recursão DNS estiver habilitada**, um atacante pode **falsificar** a **origem** no pacote UDP para fazer com que o **DNS envie a resposta para o servidor da vítima**. Um atacante pode abusar dos tipos de registro **ANY** ou **DNSSEC**, pois eles costumam ter respostas maiores.\
|
|
A maneira de **verificar** se um DNS suporta **recursão** é consultar um nome de domínio e **verificar** se a **flag "ra"** (_recursion available_) está na resposta:
|
|
```bash
|
|
dig google.com A @<IP>
|
|
```
|
|
**Não disponível**:
|
|
|
|
![](<../.gitbook/assets/image (275).png>)
|
|
|
|
**Disponível**:
|
|
|
|
![](<../.gitbook/assets/image (276).png>)
|
|
|
|
<figure><img src="../.gitbook/assets/image (1) (1) (2) (4).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
[**A Conferência de Segurança DragonJAR é um evento internacional de cibersegurança**](https://www.dragonjarcon.org/) com mais de uma década que será realizada nos dias 7 e 8 de setembro de 2023 em Bogotá, Colômbia. É um evento de alto conteúdo técnico onde são apresentadas as últimas pesquisas em espanhol que atraem hackers e pesquisadores de todo o mundo.\
|
|
Registre-se agora no seguinte link e não perca esta grande conferência!:
|
|
|
|
{% embed url="https://www.dragonjarcon.org/" %}
|
|
|
|
### Envio de e-mail para uma conta inexistente
|
|
|
|
Do livro: Avaliação de Segurança de Rede (3ª edição)
|
|
|
|
Simplesmente enviar uma mensagem de e-mail para um endereço inexistente em um domínio-alvo muitas vezes revela informações úteis sobre a rede interna por meio de uma _notificação de não entrega_ (NDN).
|
|
```
|
|
Generating server: noa.nintendo.com
|
|
|
|
blah@nintendo.com
|
|
#550 5.1.1 RESOLVER.ADR.RecipNotFound; not found ##
|
|
|
|
Original message headers:
|
|
|
|
Received: from ONERDEDGE02.one.nintendo.com (10.13.20.35) by
|
|
onerdexch08.one.nintendo.com (10.13.30.39) with Microsoft SMTP Server (TLS)
|
|
id 14.3.174.1; Sat, 26 Apr 2014 16:52:22 -0700
|
|
Received: from barracuda.noa.nintendo.com (205.166.76.35) by
|
|
ONERDEDGE02.one.nintendo.com (10.13.20.35) with Microsoft SMTP Server (TLS)
|
|
id 14.3.174.1; Sat, 26 Apr 2014 16:51:22 -0700
|
|
X-ASG-Debug-ID: 1398556333-0614671716199b0d0001-zOQ9WJ
|
|
Received: from gateway05.websitewelcome.com (gateway05.websitewelcome.com [69.93.154.37]) by
|
|
barracuda.noa.nintendo.com with ESMTP id xVNPkwaqGgdyH5Ag for <blah@nintendo.com>; Sat,
|
|
26 Apr 2014 16:52:13 -0700 (PDT)
|
|
X-Barracuda-Envelope-From: chris@example.org
|
|
X-Barracuda-Apparent-Source-IP: 69.93.154.37
|
|
```
|
|
Os seguintes dados neste transcript são úteis:
|
|
|
|
* Nomes de host internos, endereços IP e layout de subdomínio
|
|
* O servidor de e-mail está executando o Microsoft Exchange Server 2010 SP3
|
|
* Um dispositivo da Barracuda Networks é usado para realizar filtragem de conteúdo
|
|
|
|
## Arquivos de configuração
|
|
```
|
|
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/*
|
|
```
|
|
Configurações perigosas ao configurar um servidor Bind:
|
|
|
|
| **Opção** | **Descrição** |
|
|
| ----------------- | ------------------------------------------------------------------------------ |
|
|
| `allow-query` | Define quais hosts têm permissão para enviar solicitações ao servidor DNS. |
|
|
| `allow-recursion` | Define quais hosts têm permissão para enviar solicitações recursivas ao servidor DNS. |
|
|
| `allow-transfer` | Define quais hosts têm permissão para receber transferências de zona do servidor DNS. |
|
|
| `zone-statistics` | Coleta dados estatísticos das zonas. |
|
|
|
|
## Comandos Automáticos 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'
|
|
```
|
|
<figure><img src="../.gitbook/assets/image (1) (1) (2) (4).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
[**A Conferência de Segurança DragonJAR é um evento internacional de cibersegurança**](https://www.dragonjarcon.org/) com mais de uma década que será realizada nos dias 7 e 8 de setembro de 2023 em Bogotá, Colômbia. É um evento de alto conteúdo técnico onde são apresentadas as últimas pesquisas em espanhol que atraem hackers e pesquisadores de todo o mundo.\
|
|
Registre-se agora no seguinte link e não perca esta grande conferência!:
|
|
|
|
{% embed url="https://www.dragonjarcon.org/" %}
|
|
|
|
<details>
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
|
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|