☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- 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)**.
# 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 ff02::1 #You could also make: ping6 -I 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)
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- 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)**.