THC-IPv6 攻击工具包:IPv6 渗透测试

一、概述

THC-IPv6 (The Hacker's Choice IPv6 Attack Toolkit)是由 van Hauser 于 2005 年发起并持续维护至今的 IPv6 安全测试工具集,是业界最早、最全面的 IPv6 协议安全评估框架之一。该工具包包含超过 30 个独立工具,覆盖了 IPv6 协议栈从网络发现、邻居发现协议(NDP)操纵、路由器通告攻击到协议模糊测试的全方位渗透测试能力。


二、安装与部署

2.1 系统要求

THC-IPv6 目前主要支持:

  • Linux 2.6.x 或更新版本 (依赖 /proc 文件系统)
  • 以太网环境(Ethernet)
  • 需要 root 权限运行(涉及原始套接字和链路层操作)

2.2 Kali Linux / Debian / Ubuntu 安装

bash 复制代码
# 方式一:通过包管理器安装(推荐)
sudo apt-get install thc-ipv6

# 方式二:从源码编译安装(获取最新版本)
sudo apt-get install build-essential libpcap-dev libssl-dev libnetfilter-queue-dev
git clone https://github.com/vanhauser-thc/thc-ipv6.git
cd thc-ipv6
make all
sudo make install

注意 :通过包管理器安装时,工具名称前缀为 atk6-(例如 atk6-alive6);源码编译安装则使用上游原始名称(例如 alive6)。本文示例使用源码编译后的原始名称。


三、工具分类与核心功能

THC-IPv6 的工具可按攻击类型分为五大类:

3.1 主机发现与信息收集

alive6 --- IPv6 存活主机扫描

alive6 是 THC-IPv6 中最核心的发现工具,支持多种探测技术,能够高效识别网络中的存活 IPv6 主机。

bash 复制代码
# 基础扫描:发现本地链路上的存活主机
sudo alive6 eth0

# 扫描特定前缀中的常见地址
sudo alive6 -C eth0 2001:db8::/64

# 防火墙绕过模式(综合多种探测)
sudo alive6 -F eth0

# 枚举 MAC 地址(较慢但信息丰富)
sudo alive6 -M eth0

# 从文件读取目标列表并解析 DNS
sudo alive6 -i targets.txt -o results.txt -d eth0

关键参数说明:

参数 功能
-C 枚举前缀中的常见地址模式
-F 防火墙模式,综合使用 Ping、错误包、UDP/TCP 探测
-M 从输入地址枚举硬件地址(MAC)
-s 使用 TCP-SYN 包进行存活检测(可附带端口扫描)
-p 发送 ICMPv6 Echo Request(默认)
-4 测试 IPv4 地址编码的 IPv6 地址变体
detect-new-ip6 --- 新设备接入监控

监控本地网络中新加入的 IPv6 设备,可配合脚本自动执行后续扫描。

bash 复制代码
# 基础监控
sudo detect-new-ip6 eth0

# 检测到新设备时自动执行脚本
sudo detect-new-ip6 eth0 /path/to/scan_script.sh
dnsdict6 --- IPv6 DNS 字典爆破

并行化的 IPv6 DNS 字典爆破工具,基于 dnsmap 开发。

bash 复制代码
# 使用内置中等字典(1419 词)爆破
sudo dnsdict6 example.com

# 使用大型字典并指定线程数
sudo dnsdict6 -l -t 16 example.com

# 同时获取 IPv4 地址
sudo dnsdict6 -4 example.com
dump_router6 / dump_dhcp6 --- 信息转储
bash 复制代码
# 转储本地路由器信息
sudo dump_router6 eth0

# 转储 DHCPv6 服务器配置
sudo dump_dhcp6 eth0

3.2 邻居发现协议(NDP)攻击

IPv6 取消了 ARP 协议,改用**邻居发现协议(NDP)**进行地址解析,但 NDP 缺乏认证机制,存在与 ARP 类似的欺骗风险。

parasite6 --- NDP 缓存投毒(中间人攻击)

parasite6 是 IPv6 版的 ARP 欺骗工具,通过伪造邻居通告(Neighbor Advertisement)将攻击者插入通信双方之间。

bash 复制代码
# 对目标进行 NDP 缓存投毒
sudo parasite6 eth0 fe80::target_ip
fake_advertise6 --- 伪造邻居通告

向网络宣告攻击者拥有某个 IPv6 地址,可用于流量劫持或拒绝服务。

bash 复制代码
# 基础通告
sudo fake_advertise6 eth0 fe80::victim_ip

# 绕过 RA Guard(添加逐跳/分片头部)
sudo fake_advertise6 -HF eth0 fe80::victim_ip
ndpexhaust26 --- NDP 缓存耗尽攻击

向目标 /64 网络发送大量伪造的 ICMPv6 错误消息,耗尽目标的 NDP 邻居缓存表,导致合法设备无法通信。

bash 复制代码
# 使用随机源地址泛洪目标网络
sudo ndpexhaust26 -R eth0 2001:db8::/64

# 发送最大尺寸数据包增强效果
sudo ndpexhaust26 -Rm eth0 2001:db8::/64

ndpexhaust6 已弃用,推荐使用功能更强的 ndpexhaust26


3.3 路由器通告(RA)攻击

fake_router6 / fake_router26 --- 伪造路由器通告

宣告攻击者为默认路由器,可劫持流量或实施拒绝服务。

bash 复制代码
# 基础:宣告假路由和前缀
sudo fake_router6 eth0 2001:db8:1::/64

# 附带 DNS 服务器选项
sudo fake_router6 eth0 2001:db8:1::/64 2001:db8::53

# 高级:使用 fake_router26 设置完整参数
sudo fake_router26 -A 2001:db8:1::/64 -D 2001:db8::53 -l 200 eth0

fake_router26 关键参数:

参数 说明
-A 添加自动配置网络前缀(最多 16 个)
-R 添加路由条目
-D 指定 DNS 服务器(最多 16 个)
-L 设置 DNS 搜索域列表
-M 设置 MTU
-p 设置路由器优先级(low/medium/high/reserved)
-E RA Guard 规避(F=完全规避, H=逐跳头部, D=分片等)
-X 清理模式(撤销假路由器通告)
flood_router6 / flood_router26 --- RA 泛洪攻击

向网络大量发送路由器通告,导致:

  • 客户端更新默认网关为随机地址
  • 路由表膨胀导致性能下降
  • 隐私扩展被禁用(-A 模式)
bash 复制代码
# 基础 RA 泛洪
sudo flood_router6 eth0

# 绕过 RA Guard 安全机制
sudo flood_router6 -HFD eth0

# 使用 fake_router26 进行高级泛洪
sudo flood_router26 -HFD -sSG eth0
kill_router6 --- 路由器删除攻击

发送路由器生命周期为 0 的通告,将合法路由器从客户端路由表中删除。

bash 复制代码
# 删除特定路由器
sudo kill_router6 eth0 fe80::legitimate_router

# 自动嗅探并杀死任何发现的 RA
sudo kill_router6 eth0 '*'

3.4 中间人攻击与流量操纵

redir6 --- ICMPv6 重定向攻击

智能的 ICMPv6 重定向欺骗器,将目标流量重定向到攻击者控制的节点。

bash 复制代码
# 将 victim 到 target 的流量重定向到 attacker
sudo redir6 eth0 fe80::victim fe80::target fe80::attacker
redirsniff6 --- 嗅探式重定向植入

在流量经过时动态植入重定向路由,无需预先知道完整拓扑。

bash 复制代码
# 对特定流量流植入重定向
sudo redirsniff6 eth0 fe80::victim fe80::destination fe80::original_router fe80::new_router [new_router_mac]
toobig6 --- MTU 降级攻击

向目标发送伪造的 ICMPv6 Packet Too Big 消息,强制降低路径 MTU,可能导致性能下降或利用特定漏洞。

bash 复制代码
# 将目标的 MTU 强制设为 1280(IPv6 最小值)
sudo toobig6 eth0 fe80::target fe80::existing_ip 1280

# 不发送伪造的 ping6(更隐蔽)
sudo toobig6 -u eth0 fe80::target fe80::existing_ip 1280
toobigsniff6 --- 嗅探式 MTU 攻击

嗅探目标发出的数据包,并实时回复伪造的 Too Big 消息。

bash 复制代码
# 对嗅探到的所有全局流量发送 Too Big
sudo toobigsniff6 -c eth0 '*' 1280

3.5 拒绝服务(DoS)攻击

denial6 --- 综合拒绝服务测试

集成了多种 IPv6 DoS 攻击向量的测试工具。

bash 复制代码
# 对目标执行所有 DoS 测试
sudo denial6 eth0 fe80::target
dos-new-ip6 --- 新设备拒绝服务

监控新加入网络的 IPv6 设备,并立即发送地址冲突通告,阻止其获取有效地址。

bash 复制代码
sudo dos-new-ip6 eth0
rsmurf6 --- 远程 Smurf 攻击

利用特定实现漏洞(目前主要对 Linux 有效),向目标的本地网络多播地址发送数据包,引发流量放大。

bash 复制代码
# 攻击特定目标
sudo rsmurf6 eth0 fe80::target

# ⚠️ 极度危险:攻击 ff02::1 将导致整个本地网络瘫痪
# sudo rsmurf6 eth0 ff02::1
thcsyn6 --- TCP SYN 泛洪
bash 复制代码
# 对目标端口进行 SYN 泛洪
sudo thcsyn6 eth0 fe80::target 80

# 随机化源地址并添加分片头部
sudo thcsyn6 -r -f -f eth0 fe80::target 443

3.6 协议实现测试与模糊测试

implementation6 / implementation6d --- IPv6 实现检查

implementation6 执行约 2 分钟的全面 IPv6 协议实现测试,可用于检测防火墙规则或栈漏洞。

bash 复制代码
# 对目标进行全面测试
sudo implementation6 eth0 fe80::target

# 指定源地址并跳过存活检查
sudo implementation6 -s 2001:db8::100 -p eth0 fe80::target

implementation6d 作为监听守护进程,用于检查哪些测试包通过了防火墙:

bash 复制代码
# 在防火墙后启动监听
sudo implementation6d eth0
fuzz_ip6 --- IPv6 协议模糊测试

对 IPv6 协议栈进行模糊测试,发现实现缺陷。

bash 复制代码
# 基础模糊测试
sudo fuzz_ip6 eth0 fe80::target

# 测试特定扩展头部组合
sudo fuzz_ip6 -H -D -S eth0 fe80::target
fuzz_dhcps6 --- DHCPv6 模糊测试

针对 DHCPv6 服务器的模糊测试工具。

bash 复制代码
# 模糊测试 Solicit 消息
sudo fuzz_dhcps6 -1 eth0

# 从测试号 1000 开始,每 100 次检查存活
sudo fuzz_dhcps6 -1 -t 1000 -p 100 eth0
fragmentation6 --- 分片防火墙测试

测试目标对 IPv6 分片的处理实现,包括防火墙绕过检测。

bash 复制代码
# 执行所有分片测试用例
sudo fragmentation6 eth0 fe80::target

# 泛洪模式(无间隔发送)
sudo fragmentation6 -f -n 100 eth0 fe80::target

3.7 其他辅助工具

工具 功能
address6 MAC/IPv4/IPv6 地址转换
connect6 IPv6 端口连接测试(类似 telnet)
connsplit6 TCP 连接拆分(流量分析对抗)
detect_sniffer6 检测局域网中的嗅探器
exploit6 测试已知 IPv6 漏洞
fake_mld6 / fake_mld26 / fake_mldrouter6 MLD 协议欺骗
fake_pim6 PIM 协议欺骗
four2six 通过 4to6 网关发送 IPv4 数据包
inverse_lookup6 通过 MAC 地址反查 IPv6 地址
sendpees6 / sendpeesmp6 SEND CGA/RSA 签名验证 DoS
trace6 高速 traceroute6(支持 ICMP/TCP/UDP)
thcping6 手工构造 IPv6/ICMPv6/TCP/UDP 数据包

四、典型攻击场景与实战演练

场景一:本地网络主机发现

bash 复制代码
# 1. 发现本地链路所有存活主机
sudo alive6 eth0

# 2. 对特定前缀进行深度扫描
sudo alive6 -CC -o alive_results.txt eth0 2001:db8::/64

# 3. 监控新加入设备
sudo detect-new-ip6 eth0 ./auto_nmap_scan.sh

场景二:NDP 中间人攻击

bash 复制代码
# 终端 1:启动 NDP 缓存投毒
sudo parasite6 eth0 fe80::gateway

# 终端 2:验证投毒效果
ip -6 neigh show

场景三:RA 泛洪与网络瘫痪

bash 复制代码
# 发送大量 RA 使客户端路由表混乱
sudo flood_router26 -HFD -sSG eth0

# 清理环境(撤销攻击)
sudo fake_router26 -X eth0

场景四:防火墙规则验证

bash 复制代码
# 终端 1(防火墙内侧):启动监听
sudo implementation6d eth0

# 终端 2(防火墙外侧):发送测试包
sudo implementation6 eth0 2001:db8::1

五、检测与防御

5.1 攻击检测

THC-IPv6 的作者在文档中明确指出:大多数工具可以被 IDS 或专用检测软件轻易发现,这是有意为之的设计,目的是便于检测恶意使用。

常见检测特征:

  • 固定包签名:部分工具使用特定的数据包模式
  • 异常的 NDP 行为:大量邻居请求/通告、MAC-IP 映射突变
  • RA 频率异常:合法路由器通常每 200 秒发送一次 RA,攻击工具发送频率远高于此
  • ICMPv6 类型异常:如大量重定向、Too Big 消息

5.2 防御措施

防御技术 说明
RA Guard 在交换机上启用,过滤非法路由器通告(但 THC-IPv6 提供绕过选项 -E
NDP Inspection 类似 DHCP Snooping,验证 NDP 消息的合法性
SEND (SEcure Neighbor Discovery) 使用 CGA 和 RSA 签名保护 NDP,但部署复杂且存在 sendpees6 攻击
静态 NDP 条目 在关键设备上配置静态邻居缓存
IPv6 防火墙规则 严格限制 ICMPv6 类型和速率
网络分段 使用 VLAN 隔离,缩小攻击面

六、开发扩展

THC-IPv6 不仅是一个工具集,更是一个可编程的 IPv6 包构造库thc-ipv6-lib.c 提供了简洁的 API,通常只需 2-4 行代码即可创建完整的 IPv6/ICMPv6 数据包。

6.1 核心 API 示例

c 复制代码
#include "thc-ipv6-lib.h"

// 创建 IPv6 数据包
thc_ipv6_hdr *pkt;
int pkt_len;
pkt = thc_create_ipv6_extended("eth0", PREFER_GLOBAL, &pkt_len,
                               src6, dst6, 64, 0, 0, 0, 0);

// 添加扩展头部
thc_add_hdr_hopbyhop(pkt, &pkt_len, buf, buflen);
thc_add_hdr_fragment(pkt, &pkt_len, 0, 1, 12345);
thc_add_hdr_dst(pkt, &pkt_len, buf, buflen);

// 添加 ICMPv6
thc_add_icmp6(pkt, &pkt_len, 128, 0, 0, data, datalen, 0);

// 生成并发送
thc_generate_and_send_pkt("eth0", NULL, NULL, pkt, &pkt_len);

// 释放内存
thc_destroy_packet(pkt);

6.2 预定义快捷函数

c 复制代码
// 一键发送各类 ICMPv6 消息
thc_ping6(interface, src, dst, size, count);
thc_neighboradv6(interface, src, dst, srcmac, dstmac, flags, target);
thc_neighborsol6(interface, src, dst, target, srcmac, dstmac);
thc_routeradv6(interface, src, dst, srcmac, ttl, managed, prefix, prefixlen, mtu, lifetime);
thc_redir6(interface, src, srcmac, dstmac, newrouter, newroutermac, orig_pkt, orig_len);

七、总结

THC-IPv6 作为 IPv6 安全测试领域的基石级工具包,其价值不仅在于提供了覆盖全面的攻击工具,更在于它揭示了 IPv6 协议在设计上与 IPv4 截然不同的安全特性与风险点:

  1. NDP 取代 ARP:带来了新的缓存投毒和耗尽攻击面
  2. 无状态自动配置(SLAAC):依赖 RA,使得伪造路由器成为高效攻击向量
  3. 扩展头部链:复杂的头部结构引入了分片攻击和防火墙绕过可能
  4. 多播广泛使用:Smurf 类放大攻击在 IPv6 中依然有效

对于渗透测试人员和安全研究人员,熟练掌握 THC-IPv6 是评估 IPv6 网络安全的必备技能。随着全球 IPv6 部署率的持续提升,这套工具的重要性将愈发凸显。


参考资源:

相关推荐
瘾大侠16 小时前
HTB - Reactor
网络·安全·web安全·网络安全
白雪落青衣16 小时前
Upload-Labs-Linux
web安全·网络安全·系统安全
pencek16 小时前
Hack-The-Box-WingData
网络安全
X7x516 小时前
网络访问控制(NAC):企业网络安全的“智能门禁系统”
网络安全·网络攻击模型·安全威胁分析·安全架构·nac
深邃-18 小时前
【Web安全】-企业资产信息收集(2):子域名查询,小程序和APP收集
计算机网络·安全·web安全·网络安全·小程序·系统安全·fofa
这是谁的博客?1 天前
AI Agent 安全架构设计:漏洞分析与防护策略深度解析
人工智能·安全·网络安全·ai·agent·安全架构·架构设计
сокол1 天前
【网安-Web渗透测试-靶场系列】AWD-Platform(ctf-hub)
linux·服务器·ubuntu·网络安全·docker
每天一把堆栈1 天前
ciscn-pwn
安全·网络安全·pwn
大方子2 天前
【好靶场】文件上传漏洞(上传HTML弹XSS)
网络安全·好靶场