hacktricks/generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md
2023-06-06 18:56:34 +00:00

121 lines
8.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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 segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira 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 do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do 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 suas técnicas de hacking enviando PRs para o [repositório hacktricks](https://github.com/carlospolop/hacktricks) e [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
</details>
# Teoria básica do IPv6
## Redes
Em um endereço IPv6, os **primeiros 48 bits são o prefixo de rede**. Os **próximos 16 bits são o ID da sub-rede** e são usados para definir sub-redes. Os últimos **64 bits são o identificador de interface** (também conhecido como ID de interface ou ID de dispositivo, é para dispositivos). Se necessário, os bits normalmente reservados para o ID do dispositivo podem ser usados para mascaramento adicional de sub-rede.
Não há ARP no IPv6. Em vez disso, há **ICMPv6 NS (Neighbor Solicitation) e NA (Neighbor Advertisement)**. O **NS** é usado para resolver um endereço, então ele envia pacotes **multicast**. O **NA** é **unicast** e é usado para responder ao NS. Um pacote NA também pode ser enviado sem a necessidade de um pacote NS.
**0:0:0:0:0:0:0:1** = 1 (`::1` para abreviar) - Este é o equivalente a 127.0.0.1 no IPv4.
**Endereços Link-local:** Estes são endereços privados que não devem ser roteados na internet. Eles podem ser usados localmente por LANs privadas ou temporárias para compartilhamento e distribuição de arquivos entre dispositivos na LAN. Outros dispositivos em sua LAN local que usam esse tipo de endereço podem ser encontrados enviando um ping para o endereço multicast ff02::01\
**FE80::/10** - Faixa de endereço unicast local de link.
```bash
ping6 I eth0 -c 5 ff02::1 > /dev/null 2>&1
ip neigh | grep ^fe80
#Or you could also use
alive6 eth0
```
Se você **sabe o endereço MAC de um host na mesma rede** que você (você pode simplesmente pingar o endereço ipv4 dele e visualizar a tabela arp para encontrar o endereço MAC), você pode calcular o endereço Link-local dele para se comunicar com ele.\
Suponha que o **endereço MAC** seja **`12:34:56:78:9a:bc`**
1. Para notação IPv6: **`1234:5678:9abc`**
2. Adicione `fe80::` no início e insira `fffe` no meio: **`fe80::`**`1234:56`**`ff:fe`**`78:9abc`
3. Inverta o sétimo bit da esquerda, de 0001 0010 para 0001 0000: `fe80::1`**`0`**`34:56ff:fe78:9abc`
4. `fe80::1034:56ff:fe78:9abc`
**Endereço local único:** Este tipo de endereço ipv6 também não é destinado a ser roteado na internet pública. O local único é uma substituição do endereço de site local, que permite a comunicação dentro de um site enquanto é roteável para várias redes locais.\
**FEC00::/7** O intervalo de endereços locais únicos.
**Endereço Multicast:** Isso também pode ser referido como Um-para-Muitos. Pacotes endereçados ao endereço multicast são entregues a todas as interfaces identificadas pelo endereço multicast. Os tipos de endereço multicast são facilmente notáveis porque normalmente começam com FF.\
**FF00::/8** O intervalo de endereços multicast.
**Anycast:** Esta forma de endereço ipv6 é semelhante ao endereço multicast com uma pequena diferença. O endereço anycast também pode ser referido como Um para o Mais Próximo. Ele pode ser usado para endereçar pacotes destinados a várias interfaces; mas geralmente envia pacotes para a primeira interface que encontra, conforme definido na distância de roteamento. Isso significa que ele envia pacotes para a interface mais próxima, conforme determinado pelos protocolos de roteamento.\
**20000::/3** O intervalo de endereços unicast global.
fe80::/10--> Link-Local Único (169.254.x.x) \[fe80:0000:0000:0000:0000:0000:0000:0000,febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]\
fc00::/7 --> Local-unicast único (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 do Roteador
## **Adivinhe o IPv6 de uma máquina**
**Forma 1**
Os endereços IPv6 de fe80::/10 são baseados no MAC. Se você tem o IPv6 de um dispositivo dentro de uma rede e deseja adivinhar o IPv6 de outro dispositivo da rede, pode obter seu endereço MAC usando um ping (dentro da tabela arp).
**Forma 2**
Você pode enviar um ping6 para o multicast e obter o endereço IPv6 dentro da tabela arp.
```bash
service ufw stop #Stop firewall
ping6 -I <IFACE> ff02::1 #You could also make: ping6 -I <IPV6> ff02::1 if you want to make a ping to a specific IP Address
ip -6 neigh
alive6
use auxiliary/scanner/discovery/ipv6_neighbor_router_advertisement; set INTERFACE eth1; run
```
# IPv6 MitM
Homem no meio com anúncio de vizinho ICMPv6 falsificado.
* Homem no meio com anúncio de roteador ICMPv6 falsificado.
* Homem no meio usando redirecionamento ICMPv6 ou ICMPv6 muito grande para implantar rota.
* Homem no meio para atacar o IPv6 móvel, mas requer que o ipsec seja desativado.
* Homem no meio com servidor DHCPv6 falso.
# Descobrindo endereços IPv6 na rede
## Subdomínios
Você pode usar o Google e outros navegadores para procurar subdomínios como "ipv6.\*"
```bash
site:ipv6./
```
## DNS
Também é possível tentar procurar por endereços IPv6 usando "**AXFR**" (transferência de zona), "**AAAA**" (IPv6) ou até mesmo "**ANY**" (todos) registros no DNS.
## Ping6
Uma vez que alguns dispositivos IPv6 de uma organização tenham sido encontrados, você pode tentar usar o `ping6` para verificar endereços próximos.
# 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)
<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 segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira 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 do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do 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 suas técnicas de hacking enviando PRs para o [repositório hacktricks](https://github.com/carlospolop/hacktricks) e [hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
</details>