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

8.6 KiB
Raw Blame History

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

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.

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:56ff:fe78:9abc
  3. Inverta o sétimo bit da esquerda, de 0001 0010 para 0001 0000: fe80::1034: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.

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.*"

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

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥