
This proof-of-concept script exploits a vulnerability in OpenSSH versions prior to 7.4 (CVE-2016-10708) by sending unexpected `SSH_MSG_NEWKEYS` packets.
此概念验证脚本利用 OpenSSH 7.4 之前版本中的一个漏洞(CVE-2016-10708),通过发送意外的 SSH_MSG_NEWKEYS 数据包导致拒绝服务(DoS)。它支持两种模式:
NEWKEYS 消息向服务器发起洪水攻击,触发拒绝服务状态。本工具仅用于研究和教育目的。未经授权扫描或攻击您不拥有或未获得明确许可测试的系统,可能违反适用的法律法规。
请负责任地使用此脚本:
-t, --targets
以逗号分隔的目标 IP 或主机名列表(必填)
-p, --port
SSH 端口(默认:22)
-m, --mode
操作模式:scan 或 attack(必填)
--sockets
每个目标打开的 TCP 连接数(默认:5)
--threads
最大并发工作线程数(默认:10)
-v, --verbose
启用调试级别的日志输出
横幅交换 在扫描模式下,脚本连接到每个目标,读取 SSH 横幅以提取 OpenSSH 版本。
连接建立
在攻击模式下,它为每个目标打开指定数量的 TCP 套接字,立即发送伪造的客户端横幅(SSH-2.0-OpenSSH_8.9),然后保持连接打开。
数据包构造
它构建只包含 SSH_MSG_NEWKEYS 有效载荷的原始 SSH 传输数据包。数据包长度、填充长度和随机填充均根据 SSH 二进制数据包协议计算得出。
洪水循环
脚本进入无限循环,在每个套接字上发送构造好的 NEWKEYS 数据包,并随机添加亚毫秒级延迟。未打补丁的 sshd 实例将无法正确处理失序的 NEWKEYS 消息,最终崩溃或变得不稳定。