CVE-2016-5696 的概念验证代码
Rover 是一个小型 Python 程序,用于发现任意客户端源端口,如 CVE-2016-569 所示。一旦已知源端口,即可补全确认两台主机正在通信所需的四元组信息。运行时,rover 会与目标服务器建立连接,将其内部时钟与服务器的 challenge ack 时间同步,然后开始搜索大多数 Linux 主机的默认临时端口范围(如有需要,可更改)。
更多信息,请在此处查阅原始论文。
该程序已在 kali 1.0 上针对 Ubuntu 14.04 SSH 服务器 进行了测试。它应该也能适用于其他目标,但可能/将需要对代码进行一些修改。要求如下:
用法如下:
rover.py [-h] -c 192.168.1.1 -s 192.168.1.10 -p 22 [-v v, vv]
CVE2016-5969 Demonstrator.
optional arguments:
-h, --help show this help message and exit
-c 192.168.1.1 The target client IP.
-s 192.168.1.10 The target server IP.
-p 22 The target server port.
-v v, vv The verbosity level
Rover 将在大约 1-2 分钟内完成,具体取决于同步质量。

os.system('iptables -A OUTPUT -p tcp --tcp-flags RST RST -j DROP'),因为内核默认会重置 scapy 连接。该规则必须存在于 IPTABLES 中,程序才能正常工作。