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

120 lines
7.7 KiB
Markdown
Raw Normal View History

2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
Outras maneiras de apoiar o HackTricks:
2022-04-28 16:01:33 +00:00
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **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 seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
2022-04-28 16:01:33 +00:00
</details>
# Teoria Básica do IPv6
2023-06-06 18:56:34 +00:00
## 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 de sub-rede adicional.
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 precisar 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 são destinados a serem 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ços 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ê **conhece o endereço MAC de um host na mesma rede** que você (você poderia simplesmente fazer ping no seu endereço ipv4 e visualizar a tabela arp para encontrar seu endereço MAC), você pode calcular o endereço Link-local dele para se comunicar com ele.\
2023-06-06 18:56:34 +00:00
Suponha que o **endereço MAC** seja **`12:34:56:78:9a:bc`**
2023-06-06 18:56:34 +00:00
1. Para notação IPv6: **`1234:5678:9abc`**
2. Acrescente `fe80::` no início e insira `fffe` no meio: **`fe80::`**`1234:56`**`ff:fe`**`78:9abc`
2023-06-06 18:56:34 +00:00
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 endereço local único é uma substituição do endereço local de site, que permite a comunicação dentro de um site enquanto é roteável para várias redes locais.\
2023-06-06 18:56:34 +00:00
**FEC00::/7** O intervalo de endereços locais únicos.
**Endereço de Multicast:** Isso também pode ser referido como Um-para-Muitos. Pacotes endereçados a um endereço de multicast são entregues a todas as interfaces identificadas pelo endereço de multicast. Os tipos de endereços de multicast são facilmente identificáveis porque normalmente começam com FF.\
**FF00::/8** O intervalo de endereços de multicast.
**Anycast:** Esta forma de endereço ipv6 é semelhante ao endereço de multicast com uma pequena diferença. O endereço anycast também pode ser referido como Um para o Mais Próximo. 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 envia pacotes para a interface mais próxima, conforme determinado pelos protocolos de roteamento.\
2023-06-06 18:56:34 +00:00
**20000::/3** O intervalo de endereços unicast global.
2023-06-06 18:56:34 +00:00
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) \[]\
2023-06-06 18:56:34 +00:00
2000::/3 --> Unicast Global\
ff02::1 --> Todos os Nós de Multicast\
ff02::2 --> Nós de Roteador de Multicast
2023-06-06 18:56:34 +00:00
## **Adivinhe o IPv6 de uma máquina**
**Método 1**
Os IPv6 de fe80::/10 são baseados no MAC. Se você tiver o IPv6 de um dispositivo dentro de uma rede e quiser adivinhar o IPv6 de outro dispositivo da rede, você pode obter seu endereço MAC usando um ping (dentro da tabela arp).
**Método 2**
2023-06-06 18:56:34 +00:00
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
```
2022-05-01 12:49:36 +00:00
# IPv6 MitM
2023-06-06 18:56:34 +00:00
Homem no meio com anúncio de vizinho ICMPv6 falsificado.
2023-06-06 18:56:34 +00:00
* 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 esteja desativado.
* Homem no meio com servidor DHCPv6 falso
# Descobrindo endereços IPv6 na natureza
2023-06-06 18:56:34 +00:00
## Subdomínios
Você pode usar o google e outros navegadores para procurar subdomínios como "ipv6.\*"
```bash
site:ipv6./
```
2022-05-01 12:49:36 +00:00
## DNS
Também pode tentar pesquisar por "**AXFR**" (transferência de zona), "**AAAA**" (IPv6) ou até mesmo "**ANY**" (todos) no registro DNS para encontrar endereços IPv6.
2022-05-01 12:49:36 +00:00
## Ping6
Uma vez que alguns dispositivos IPv6 de uma organização tenham sido encontrados, pode tentar usar `ping6` para verificar endereços próximos.
2023-06-06 18:56:34 +00:00
# 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
<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
Outras formas de apoiar o HackTricks:
2022-04-28 16:01:33 +00:00
* Se deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **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 seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
2022-04-28 16:01:33 +00:00
</details>