hacktricks/generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md
2023-08-03 19:12:22 +00:00

7.5 KiB
Raw Blame History

☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

IPv6基础理论

网络

在IPv6地址中前48位是网络前缀接下来的16位是子网ID,用于定义子网。最后的64位是接口标识符也称为接口ID或设备ID用于设备。如果需要通常保留给设备ID的位可以用于额外的子网掩码。

IPv6中没有ARP。相反ICMPv6 NS邻居请求和NA邻居通告NS用于解析地址,因此它发送多播数据包。NA单播用于回答NS。不需要NS数据包也可以发送NA数据包。

0:0:0:0:0:0:0:1 = 1IPv4中的::1- 这是IPv4中的127.0.0.1的等效地址。

**链路本地地址:**这些是私有地址不适用于在互联网上路由。它们可以由私有或临时局域网在局域网上共享和分发文件。使用此类地址的本地局域网中的其他设备可以通过向多播地址ff02::01发送ping命令来找到。

FE80::/10 - 链路本地单播地址范围。

ping6 I eth0 -c 5 ff02::1 > /dev/null 2>&1
ip neigh | grep ^fe80

#Or you could also use
alive6 eth0

如果你知道与你在同一网络中的主机的MAC地址你可以通过ping其IPv4地址并查看arp表来找到其MAC地址你可以计算出他的链路本地地址以与他通信。
假设MAC地址是**12:34:56:78:9a:bc**

  1. 转换为IPv6表示法1234:5678:9abc
  2. 在开头添加fe80::,并在中间插入fffefe80::1234:56ff:fe78:9abc
  3. 将从左边数第七位的位反转从0001 0010变为0001 0000fe80::1034:56ff:fe78:9abc
  4. fe80::1034:56ff:fe78:9abc

**唯一本地地址:**这种类型的IPv6地址也不打算在公共互联网上进行路由。唯一本地地址是站点本地地址的替代品允许在站点内进行通信同时可路由到多个本地网络。
FEC00::/7 - 唯一本地地址范围。

**组播地址:**也可以称为一对多。发送到组播地址的数据包将传递到由组播地址标识的所有接口。组播地址类型通常以FF开头因此很容易识别。
FF00::/8 - 组播范围。

**任播地址:**这种形式的IPv6地址与组播地址类似但有一点不同。任播地址也可以称为一对最近。它可以用于寻址发送到多个接口的数据包但通常它会将数据包发送到根据路由距离定义的第一个接口。这意味着它将数据包发送到由路由协议确定的最近接口。
20000::/3 - 全局单播地址范围。

fe80::/10--> 唯一链路本地地址 (169.254.x.x) [fe80:0000:0000:0000:0000:0000:0000:0000,febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]
fc00::/7 --> 唯一本地单播地址 (10.x.x.x, 172.16.x.x, 192.168.x.x) []
2000::/3 --> 全局单播地址
ff02::1 --> 组播所有节点
ff02::2 --> 组播路由器节点

猜测机器的IPv6地址

方法1

fe80::/10的IPv6地址是基于MAC地址的。如果你有网络中某个设备的IPv6地址并且你想猜测网络中另一个设备的IPv6地址你可以使用ping命令在arp表中获取其MAC地址。

方法2

你可以发送ping6到组播地址并在arp表中获取IPv6地址。

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中间人攻击

使用伪造的ICMPv6邻居通告进行中间人攻击。

  • 使用伪造的ICMPv6路由器通告进行中间人攻击。
  • 使用ICMPv6重定向或ICMPv6过大来插入路由进行中间人攻击。
  • 中间人攻击移动IPv6但需要禁用IPSec。
  • 使用恶意DHCPv6服务器进行中间人攻击。

在互联网上发现IPv6地址

子域名

您可以使用Google和其他浏览器搜索子域名例如"ipv6.*"

site:ipv6./

DNS

您还可以尝试在DNS中搜索“AXFR”(区域传输)、“AAAAIPv6甚至“ANY全部记录以查找IPv6地址。

Ping6

一旦找到组织的一些IPv6设备您可以尝试使用ping6来检查附近的地址。

参考资料

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