mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/generic-methodologies-and-resources/pentesting-network/
This commit is contained in:
parent
c887b94092
commit
7c4f0642bf
@ -10,7 +10,7 @@ Os endereços IPv6 são estruturados para melhorar a organização da rede e a i
|
||||
|
||||
1. **Prefixo da Rede**: Os primeiros 48 bits, que determinam o segmento da rede.
|
||||
2. **ID da Sub-rede**: Os 16 bits seguintes, usados para definir sub-redes específicas dentro da rede.
|
||||
3. **Identificador de Interface**: Os 64 bits finais, que identificam exclusivamente um dispositivo dentro da sub-rede.
|
||||
3. **Identificador de Interface**: Os 64 bits finais, que identificam 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:
|
||||
|
||||
@ -52,12 +52,12 @@ Dado um endereço MAC **`12:34:56:78:9a:bc`**, você pode construir o endereço
|
||||
|
||||
- **Endereço Local Único (ULA)**: Para comunicações locais, não destinado ao roteamento na internet pública. Prefixo: **`FEC00::/7`**
|
||||
- **Endereço Multicast**: Para comunicação de um-para-muitos. Entregue a todas as interfaces no grupo multicast. Prefixo: **`FF00::/8`**
|
||||
- **Endereço Anycast**: Para comunicação de um-para-o-mais-perto. Enviado para a interface mais próxima conforme o protocolo de roteamento. Parte do intervalo de unicast global **`2000::/3`**.
|
||||
- **Endereço Anycast**: Para comunicação de um-para-o-mais-perto. Enviado para a interface mais próxima conforme o protocolo de roteamento. Parte do intervalo global unicast **`2000::/3`**.
|
||||
|
||||
### **Prefixos de Endereço**
|
||||
|
||||
- **fe80::/10**: Endereços Link-Local (semelhante a 169.254.x.x)
|
||||
- **fc00::/7**: Unicast Local Único (semelhante a intervalos privados de IPv4 como 10.x.x.x, 172.16.x.x, 192.168.x.x)
|
||||
- **fc00::/7**: Unicast Local Único (semelhante a intervalos privados IPv4 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
|
||||
@ -227,9 +227,36 @@ sudo sysctl -w net.ipv6.conf.all.forwarding=1
|
||||
sudo ip6tables -A FORWARD -i eth0 -j ACCEPT
|
||||
sudo ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
|
||||
```
|
||||
#### Flags de Anúncio de Roteador (M/O) & Preferência de Roteador Padrão (Prf)
|
||||
|
||||
| Flag | Significado | Efeito no Comportamento do Cliente |
|
||||
|------|-------------|------------------------------------|
|
||||
| **M (Configuração de Endereço Gerenciado)** | Quando definido como `1`, o host DEVE usar **DHCPv6** para obter seu endereço IPv6. | Todo o endereçamento vem do DHCPv6 – perfeito para envenenamento estilo *mitm6*. |
|
||||
| **O (Outra Configuração)** | Quando definido como `1`, o host deve usar **DHCPv6** apenas para obter *outras* informações (DNS, NTP, …). | Endereço ainda via SLAAC, mas o DNS pode ser sequestrado com DHCPv6. |
|
||||
| **M=0 / O=0** | Rede puramente SLAAC. | Apenas truques RA / RDNSS são possíveis – DHCPv6 não será enviado pelos clientes. |
|
||||
| **M=1 / O=1** | Ambiente misto. | Tanto DHCPv6 quanto SLAAC são usados; a superfície para spoofing é a maior. |
|
||||
|
||||
Durante um pentest, você pode simplesmente inspecionar o RA legítimo uma vez e decidir qual vetor é viável:
|
||||
```bash
|
||||
sudo tcpdump -vvv -i eth0 'icmp6 && ip6[40] == 134' # capture Router Advertisements
|
||||
```
|
||||
Procure o campo `flags [M,O]` no dump – sem necessidade de adivinhação.
|
||||
|
||||
O campo **Prf** (Preferência do Roteador) dentro do cabeçalho RA controla quão atraente seu roteador malicioso parece quando *múltiplos* gateways estão presentes:
|
||||
|
||||
| Valor do Prf | Binário | Significado |
|
||||
|--------------|---------|-------------|
|
||||
| **Alto** | `10` | Clientes preferem este roteador em relação a qualquer um *Médio*/*Baixo* |
|
||||
| Médio (padrão) | `01` | Usado pela quase totalidade dos dispositivos legítimos |
|
||||
| Baixo | `00` | Escolhido apenas quando não existe um roteador melhor |
|
||||
|
||||
Ao gerar o pacote com Scapy, você pode configurá-lo através do parâmetro `prf` como mostrado acima (`prf=0x1` → Alto). Combinar **Alto Prf**, um **intervalo curto** e uma **vida útil não zero** torna seu gateway malicioso notavelmente estável.
|
||||
|
||||
---
|
||||
|
||||
### Spoofing RDNSS (DNS) via RA
|
||||
|
||||
[RFC 8106](https://datatracker.ietf.org/doc/html/rfc8106) permite adicionar uma opção de **Servidor DNS Recursivo (RDNSS)** dentro de um RA. Sistemas operacionais modernos (Win 10 ≥1709, Win 11, macOS Big Sur, Linux systemd-resolved, …) confiam automaticamente nisso:
|
||||
[RFC 8106](https://datatracker.ietf.org/doc/html/rfc8106) permite adicionar uma opção **Servidor DNS Recursivo (RDNSS)** dentro de um RA. Sistemas operacionais modernos (Win 10 ≥1709, Win 11, macOS Big Sur, Linux systemd-resolved, …) confiam automaticamente nisso:
|
||||
```python
|
||||
#!/usr/bin/env python3
|
||||
from scapy.all import *
|
||||
@ -249,14 +276,14 @@ ICMPv6NDOptRDNSS(dns=[args.dns],lifetime=args.lifetime))
|
||||
|
||||
send(ra,iface=args.interface,loop=1,inter=args.interval)
|
||||
```
|
||||
Clientes irão **preparar** seu DNS na lista de resolvedores para o tempo de vida dado, concedendo total sequestro de DNS até que o valor expire ou você envie um `lifetime=0` para reverter.
|
||||
Os clientes irão **preparar** seu DNS na lista de resolutores para o tempo de vida dado, concedendo total sequestro de DNS até que o valor expire ou você envie um `lifetime=0` para reverter.
|
||||
|
||||
### Spoofing de DNS DHCPv6 (mitm6)
|
||||
|
||||
Em vez de SLAAC, redes Windows frequentemente dependem de **DHCPv6 sem estado** para DNS. [mitm6](https://github.com/rofl0r/mitm6) responde automaticamente a mensagens `Solicit` com um fluxo **Advertise → Reply** que atribui **seu endereço link-local como DNS por 300 segundos**. Isso desbloqueia:
|
||||
|
||||
* Ataques de retransmissão NTLM (WPAD + sequestro de DNS)
|
||||
* Interceptação da resolução de nomes internos sem tocar em roteadores
|
||||
* Interceptação da resolução de nomes internos sem tocar nos roteadores
|
||||
|
||||
Uso típico:
|
||||
```bash
|
||||
@ -276,5 +303,6 @@ sudo mitm6 -i eth0 --no-ra # only DHCPv6 poisoning
|
||||
- [RFC 8106 – IPv6 ND DNS Configuration](https://datatracker.ietf.org/doc/html/rfc8106)
|
||||
- [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)
|
||||
- [Practical Guide to IPv6 Attacks in a Local Network](https://habr.com/ru/articles/930526/)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user