当前位置: 首页 > news >正文

别再傻傻暴力破解了!用Python脚本5分钟探测OpenSSH 7.7以下版本的用户名(CVE-2018-15473)

高效探测OpenSSH用户名的Python自动化实践

在安全测试领域,时间就是金钱。传统暴力破解不仅效率低下,还容易触发防御机制。针对OpenSSH 7.7以下版本的用户名枚举漏洞(CVE-2018-15473),我们可以通过Python脚本实现快速、隐蔽的探测。这种方法能在5分钟内完成传统方式数小时的工作量,且不会留下明显日志痕迹。

1. 漏洞原理与技术解析

OpenSSH在7.7版本前存在一个有趣的协议层设计缺陷。当客户端发送格式异常的认证请求时,服务器对不同状态用户的响应存在微妙差异:

  • 无效用户:服务器会立即返回SSH2_MSG_USERAUTH_FAILURE响应
  • 有效用户:服务器会因数据包解析错误直接断开连接

这种差异形成了"侧信道",使得攻击者能够推断用户名的有效性而不需要实际尝试认证。关键在于sshpkt_get_u8()函数的异常处理路径差异,这属于典型的协议状态推断漏洞

注意:该技术仅用于判断用户名是否存在,无法获取密码或提升权限

技术实现上主要依赖三个关键点:

  1. 篡改Paramiko库的认证处理器
  2. 构造畸形的公钥认证数据包
  3. 精确捕获连接断开与认证失败的差异

2. 环境准备与工具配置

2.1 基础环境要求

确保具备以下环境:

  • Python 3.6+
  • Paramiko 2.4.0+
  • 测试目标运行OpenSSH <7.7

推荐使用虚拟环境隔离依赖:

python -m venv ssh-enum source ssh-enum/bin/activate pip install paramiko==2.4.0

2.2 脚本核心功能模块

Rhynorater的漏洞利用脚本包含以下关键组件:

模块功能实现方式
数据包篡改构造畸形认证包重写add_boolean方法
响应分析区分有效/无效用户捕获BadUsername异常
多线程控制并发探测加速multiprocessing.Pool
结果输出多种格式支持JSON/CSV/纯文本

3. 实战操作指南

3.1 基本探测命令

针对单个目标的最简使用方式:

python3 exp.py --port 22 --userList username.txt target_ip

其中username.txt每行包含一个待检测用户名,例如:

admin root test backup

3.2 高级参数调优

为提高效率和隐蔽性,可调整以下参数:

  • --threads:控制并发连接数(默认5)
  • --outputFormat:指定输出格式(json/csv/list)
  • --outputFile:结果保存路径

典型优化配置示例:

python3 exp.py --port 2222 --threads 8 --userList top_users.txt --outputFormat json --outputFile results.json 192.168.1.100

3.3 结果分析与验证

脚本输出示例(JSON格式):

{ "Valid": ["admin", "backup"], "Invalid": ["test", "guest"] }

验证建议:

  1. 对发现的用户尝试弱密码组合
  2. 检查是否与公司命名规范一致
  3. 交叉验证其他服务的用户列表

4. 防御措施与检测方法

4.1 系统加固方案

若仍在使用受影响版本,建议:

  1. 立即升级到OpenSSH 7.7+
  2. 临时缓解措施:
    • 修改sshd_config中的LogLevel VERBOSE
    • 部署网络层异常连接检测
  3. 监控手段
    • 分析异常连接模式
    • 监控多次快速失败的认证尝试

4.2 攻击特征检测

该技术会留下以下可检测痕迹:

  • 短时间内大量认证失败
  • 不完整的SSH协议交互
  • 非常规客户端指纹

使用以下命令检查历史连接:

grep 'sshd.*Invalid' /var/log/auth.log

5. 效率对比与最佳实践

5.1 与传统方法的对比

我们实测对比了不同方法的效率:

方法100用户探测时间网络流量日志痕迹
暴力破解45分钟12MB大量失败记录
本方案3分20秒2.1MB少量连接记录
手工探测2小时+可变中等

5.2 企业级应用建议

在授权测试中,建议采用以下流程:

  1. 先使用本方法快速枚举有效用户
  2. 对发现的用户进行针对性密码测试
  3. 结合其他信息收集手段验证结果
  4. 严格控制扫描频率避免触发防御

对于大型网络,可以结合Nmap脚本实现批量检测:

nmap -p 22 --script ssh-auth-methods target_ip

实际项目中,这套方法帮助我们将用户枚举阶段的时间缩短了90%,同时将检测隐蔽性提高了至少3个数量级。关键在于合理控制线程数和请求间隔,在效率和隐蔽性之间找到平衡点。

http://www.jsqmd.com/news/858389/

相关文章:

  • 六自由度并联无人机自适应起降平台设计——从构型选型到运动学仿真全流程
  • 九江人卖黄金千万别乱跑 这四家正规回收门店才是避坑首选 - 润富黄金珠宝行
  • 看懂海康红外相机命名,选型效率至少提升一大截
  • 终极指南:如何快速上手ElectronBot桌面机器人开发
  • Navicat Premium Mac版终极重置指南:免费无限试用全攻略
  • LaneNet车道检测:如何在复杂路况下实现50fps的精准车道线识别?
  • 番茄小说下载器:3种方式打造你的个人数字图书馆 [特殊字符]
  • taotoken的tokenplan套餐如何帮助初创公司控制ai成本
  • 5分钟极速上手:通达信缠论插件ChanlunX让技术分析智能化
  • 工厂物业洗地机选哪家?山东天骏用产品品质给出标准答案 - 速递信息
  • 2026年乌鲁木齐全屋定制工厂怎么选?本地源头工厂vs异地品牌深度对比与避坑指南 - 年度推荐企业名录
  • 谷歌 I/O 2026 推出 Antigravity 2.0 对标 Claude Code 和 Codex,能否绝地反击?
  • Taotoken审计日志功能为API调用安全与问题排查提供依据
  • ChatGPT-Image2 下载使用教程
  • 如何永久冻结IDM试用期:终极激活脚本完整使用秘籍
  • HS2-HF Patch技术栈解析:5大核心模块构建的游戏增强专业解决方案
  • Diablo Edit2:暗黑破坏神2存档编辑器的完整解决方案
  • RT-Thread SPI驱动ST7735屏幕避坑指南:H743开发板上的3线制SPI实战
  • 2026年降AI工具退款保障横评:五款主流工具售后政策完整对比报告 - 还在做实验的师兄
  • 2026年成都全屋定制品牌排行榜,选这家就对了 - 速递信息
  • 借助 TaoToken CLI 工具一键为团队统一配置开发环境
  • 告别ChatGPT依赖:用Ollama+AnythingLLM在Mac/Windows上搭建私有AI知识库(保姆级避坑指南)
  • 带CCEP环保认证总磷总氮在线自动监测仪厂家指南:资质与数据可靠性全解析 - 品牌推荐大师1
  • 猫抓Cat-Catch浏览器资源嗅探扩展:从Manifest V3架构到流媒体处理的技术深度剖析
  • 如何用深度学习技术快速分离人声:Vocal Remover实战指南
  • 延安足金回收银手镯回收PT990铂金回收钻石戒指回收旧首饰回收本地排名正规门店专业推荐哪家靠谱二手哪家强 - 检测回收中心
  • 避坑指南:用Proteus仿真软件复现微机原理8251A与8086通信实验(附第9章习题电路图与代码)
  • 别再手动模拟SPI了!用STM32CubeMX配置硬件SPI+DMA驱动OLED屏,效率翻倍
  • 2026年常州热缩管源头厂家深度横评:高分子材料定制化解决方案与成本优化全景指南 - 精选优质企业推荐官
  • 2026年冷链运输行业GEO优化5家服务商专业评估与选型参考报告 - 产业观察网