DHCPv6

Tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE) 学习和实践 Azure 黑客技术:HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks

DHCPv6 vs. DHCPv4 Message Types Comparison

下表比较了 DHCPv6 与 DHCPv4 的消息类型:

DHCPv6 Message TypeDHCPv4 Message Type
Solicit (1)DHCPDISCOVER
Advertise (2)DHCPOFFER
Request (3), Renew (5), Rebind (6)DHCPREQUEST
Reply (7)DHCPACK / DHCPNAK
Release (8)DHCPRELEASE
Information-Request (11)DHCPINFORM
Decline (9)DHCPDECLINE
Confirm (4)none
Reconfigure (10)DHCPFORCERENEW
Relay-Forw (12), Relay-Reply (13)none

DHCPv6 消息类型的详细说明:

  1. Solicit (1): 由 DHCPv6 客户端发起,用于查找可用的服务器。
  2. Advertise (2): 服务器作为对 Solicit 的响应发送,表明可提供 DHCP 服务。
  3. Request (3): 客户端使用此消息向特定服务器请求 IP 地址或前缀。
  4. Confirm (4): 客户端用于验证分配的地址在网络上仍然有效,通常在网络发生变化后使用。
  5. Renew (5): 客户端向原始服务器发送此消息以延长地址生存期或更新配置。
  6. Rebind (6): 发送给任何服务器以延长地址生存期或更新配置,尤其在对 Renew 没有响应时使用。
  7. Reply (7): 服务器使用此消息提供地址、配置参数,或确认像 Release 或 Decline 之类的消息。
  8. Release (8): 客户端通知服务器停止使用一个或多个已分配的地址。
  9. Decline (9): 客户端发送此消息报告分配的地址在网络上存在冲突。
  10. Reconfigure (10): 服务器提示客户端发起事务以获取新的或更新的配置。
  11. Information-Request (11): 客户端请求配置参数,但不请求 IP 地址分配。
  12. Relay-Forw (12): 中继代理将消息转发给服务器。
  13. Relay-Repl (13): 服务器回复给中继代理,中继代理再将消息交付给客户端。

快速协议说明 (Offensive)

  • DHCPv6 客户端使用 UDP 端口 546,服务器/中继使用 UDP 端口 547
  • 客户端向 All_DHCP_Relay_Agents_and_Servers (ff02::1:2) 发送 Solicit;服务器/中继在该地址监听。All_DHCP_Serversff05::1:3
  • 客户端和服务器身份通过 OPTION_CLIENTIDOPTION_SERVERID 使用 DUIDs 传递。这对于在地址变化时识别同一主机很有用。
  • 地址分配使用 IA_NA(非临时地址)请求,前缀委派使用 IA_PD(下游路由器前缀)。

快速侦察

# Basic DHCPv6 traffic capture
sudo tcpdump -vvv -i <IFACE> 'udp port 546 or udp port 547'

# THC-IPv6: discover DHCPv6 servers and their options
sudo atk6-dump_dhcp6 <IFACE>

恶意 DHCPv6 服务器 (Address/DNS Hijack)

# THC-IPv6: rogue DHCPv6 server advertising address + DNS
sudo atk6-fake_dhcps6 <IFACE> <PREFIX>/<LEN> <DNSv6>

这是一个通用的本地链路上的恶意 DHCPv6 服务器。在 Windows/AD 网络中,如果你想获得 NTLM relay primitives,请将其与更高层的 relays(参见 IPv6 页面)配合使用。

地址池耗尽 / DHCPv6 耗尽

# THC-IPv6: exhaust the server's address pool
sudo atk6-flood_dhcpc6 <IFACE>

Reconfigure 消息的注意事项

DHCPv6 Reconfigure 并非会被盲目接受:客户端只有在明确发送了 OPTION_RECONF_ACCEPT 的情况下才会接受它。默认情况下,客户端不愿意接受 Reconfigure 消息,因此除非你观察到或诱发了该选项,否则不可靠的 Reconfigure 攻击通常会失败。

Pentesting IPv6

参考资料

Tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE) 学习和实践 Azure 黑客技术:HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks