hacktricks/generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md

130 lines
7.4 KiB
Markdown
Raw Normal View History

{% hint style="success" %}
Aprenda e pratique AWS Hacking: <img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Treinamento AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Treinamento GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Apoie o HackTricks</summary>
2022-04-28 16:01:33 +00:00
* Verifique os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}
2022-04-28 16:01:33 +00:00
# Teoria Básica do IPv6
2023-06-06 18:56:34 +00:00
## Redes
Os endereços IPv6 são estruturados para melhorar a organização de redes e a interação de dispositivos. Um endereço IPv6 é dividido em:
1. **Prefixo de Rede**: Os primeiros 48 bits, determinando o segmento de rede.
2. **ID de Sub-rede**: Seguintes 16 bits, usados para definir sub-redes específicas dentro da rede.
3. **Identificador de Interface**: Os últimos 64 bits, identificando de forma única um dispositivo dentro da sub-rede.
Enquanto o IPv6 omite o protocolo ARP encontrado no IPv4, ele introduz o **ICMPv6** com duas mensagens principais:
- **Solicitação de Vizinhança (NS)**: Mensagens de multicast para resolução de endereços.
- **Anúncio de Vizinhança (NA)**: Respostas unicast para NS ou anúncios espontâneos.
O IPv6 também incorpora tipos de endereços especiais:
- **Endereço de Loopback (`::1`)**: Equivalente ao `127.0.0.1` do IPv4, para comunicação interna dentro do host.
- **Endereços Link-Local (`FE80::/10`)**: Para atividades de rede local, não para roteamento na internet. Dispositivos na mesma rede local podem se descobrir usando este intervalo.
### Uso Prático do IPv6 em Comandos de Rede
Para interagir com redes IPv6, você pode usar vários comandos:
- **Ping em Endereços Link-Local**: Verifique a presença de dispositivos locais usando `ping6`.
- **Descoberta de Vizinhança**: Use `ip neigh` para visualizar dispositivos descobertos na camada de link.
- **alive6**: Uma ferramenta alternativa para descobrir dispositivos na mesma rede.
Abaixo estão alguns exemplos de comandos:
```bash
ping6 I eth0 -c 5 ff02::1 > /dev/null 2>&1
ip neigh | grep ^fe80
# Alternatively, use alive6 for neighbor discovery
alive6 eth0
```
## **Derivando o Link-local IPv6 a partir do Endereço MAC**
Dado um endereço MAC **`12:34:56:78:9a:bc`**, você pode construir o endereço IPv6 Link-local da seguinte forma:
1. Converter o MAC para o formato IPv6: **`1234:5678:9abc`**
2. Adicionar `fe80::` e inserir `fffe` no meio: **`fe80::1234:56ff:fe78:9abc`**
3. Inverter o sétimo bit da esquerda, alterando `1234` para `1034`: **`fe80::1034:56ff:fe78:9abc`**
## **Tipos de Endereços IPv6**
- **Endereço Único Local (ULA)**: Para comunicações locais, não destinado ao roteamento público na internet. Prefixo: **`FEC00::/7`**
- **Endereço de Multicast**: Para comunicação de um para muitos. Entregue a todas as interfaces no grupo de multicast. Prefixo: **`FF00::/8`**
- **Endereço de Anycast**: Para comunicação de um para o mais próximo. Enviado para a interface mais próxima de acordo com o protocolo de roteamento. Parte do intervalo unicast global **`2000::/3`**.
## **Prefixos de Endereço**
- **fe80::/10**: Endereços Link-Local (semelhante a 169.254.x.x)
- **fc00::/7**: Único Local-Unicast (semelhante aos intervalos IPv4 privados como 10.x.x.x, 172.16.x.x, 192.168.x.x)
- **2000::/3**: Unicast Global
- **ff02::1**: Multicast Todos os Nós
- **ff02::2**: Multicast Nós Roteadores
## **Descobrindo Endereços IPv6 dentro de uma Rede**
### Forma 1: Usando Endereços Link-local
1. Obter o endereço MAC de um dispositivo dentro da rede.
2. Derivar o endereço IPv6 Link-local a partir do endereço MAC.
### Forma 2: Usando Multicast
1. Enviar um ping para o endereço de multicast `ff02::1` para descobrir endereços IPv6 na rede local.
```bash
service ufw stop # Stop the firewall
ping6 -I <IFACE> ff02::1 # Send a ping to multicast address
ip -6 neigh # Display the neighbor table
```
## Ataques de Man-in-the-Middle (MitM) em IPv6
Existem várias técnicas para executar ataques MitM em redes IPv6, tais como:
- Falsificação de anúncios de vizinho ou roteador ICMPv6.
- Utilização de mensagens de redirecionamento ICMPv6 ou "Packet Too Big" para manipular o roteamento.
- Atacar o IPv6 móvel (geralmente requer que o IPSec esteja desativado).
- Configurar um servidor DHCPv6 falso.
# Identificação de Endereços IPv6 na rede
## Explorando Subdomínios
Um método para encontrar subdomínios potencialmente vinculados a endereços IPv6 envolve o uso de mecanismos de busca. Por exemplo, empregar um padrão de consulta como `ipv6.*` pode ser eficaz. Especificamente, o seguinte comando de pesquisa pode ser usado no Google:
```bash
site:ipv6./
```
## Utilizando Consultas DNS
Para identificar endereços IPv6, certos tipos de registros DNS podem ser consultados:
- **AXFR**: Solicita uma transferência completa de zona, potencialmente revelando uma ampla gama de registros DNS.
- **AAAA**: Busca diretamente por endereços IPv6.
- **ANY**: Uma consulta ampla que retorna todos os registros DNS disponíveis.
## Sondagem com Ping6
Após identificar os endereços IPv6 associados a uma organização, a utilidade `ping6` pode ser usada para sondagem. Essa ferramenta ajuda a avaliar a responsividade dos endereços IPv6 identificados e também pode auxiliar na descoberta de dispositivos IPv6 adjacentes.
## Referências
* [http://www.firewall.cx/networking-topics/protocols/877-ipv6-subnetting-how-to-subnet-ipv6.html](http://www.firewall.cx/networking-topics/protocols/877-ipv6-subnetting-how-to-subnet-ipv6.html)
* [https://www.sans.org/reading-room/whitepapers/detection/complete-guide-ipv6-attack-defense-33904](https://www.sans.org/reading-room/whitepapers/detection/complete-guide-ipv6-attack-defense-33904)
2022-04-28 16:01:33 +00:00
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**Treinamento HackTricks AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**Treinamento HackTricks GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Suporte ao HackTricks</summary>
2022-04-28 16:01:33 +00:00
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}