CVE研究到检测签名的工程化项目:在外部大规模对vsftpd 2.3.4后门(CVE-2011-2523)进行指纹识别,具备经过验证的误报/漏报处理——使用Python构建
一个从 CVE 到检测签名的工程项目:研究已披露的漏洞,构建可从外部识别它的指纹,并针对真实实验室目标验证检测质量。
大多数漏洞研究作品集止步于「我利用了 X」。而本项目围绕一个不同的问题构建,更贴近检测工程实际提出的疑问:
一旦 CVE 披露,如何在不利用任何漏洞的情况下,从外部、大规模地可靠识别哪些面向互联网的资产实际运行着易受攻击的技术?
本仓库记录了一个真实 CVE 的完整工作流程:CVE-2011-2523,即 vsftpd 2.3.4 后门。从漏洞研究到指纹设计、检测脚本工程,再到针对真实实验室目标的验证——刻意以检测而非利用为目的构建。
CVE Disclosure → Research & Version Analysis → Fingerprint Design
→ Detection Script → Validation (TP/FP/FN review) → Evidence Output
220 欢迎 banner 中通告其确切版本。该 banner 即为指纹表面——无需认证、无需利用即可读取。fingerprint_vsftpd_cve_2011_2523.py 进行连接、捕获 banner、通过正则表达式将其与已知易受攻击的签名匹配,并对结果进行分类。undetermined 而非漏报)。上传到
/screenshots后,请将截图文件重命名以匹配,或更新这些路径。
| 指纹脚本 | 验证输出 |
|---|---|
| 脚本 | 输出 |
更多运行详情:
详情 详情 详情 详情
# Single target
python3 fingerprint_vsftpd_cve_2011_2523.py --target 192.168.56.101
# Batch — multiple hosts, evidence-style JSON output
python3 fingerprint_vsftpd_cve_2011_2523.py --targets-file targets.json \
--output evidence/vsftpd_fingerprint_findings.json
示例输出:
{
"scan_type": "vsftpd_2.3.4_backdoor_fingerprint",
"cve": "CVE-2011-2523",
"total_targets": 1,
"vulnerable_count": 1,
"findings": [
{
"host": "192.168.56.101",
"port": 21,
"banner": "220 (vsFTPd 2.3.4)",
"verdict": "vulnerable",
"reason": "Banner matches known vulnerable signature (vsftpd 2.3.4)"
}
]
}
这种三态划分是本项目检测质量管控的核心:朴素的检测器会将「无法检查」和「已检查且干净」归并到同一结果——这正是漏报在生产检测逻辑中藏匿的方式。
.
├── fingerprint_vsftpd_cve_2011_2523.py
├── docs/
│ └── CVE-RESEARCH.md
├── evidence/
│ └── vsftpd_fingerprint_findings.json
├── screenshots/
│ └── (script + validation run screenshots)
└── README.md
网络安全工程师 | 检测工程师 | 漏洞研究员 | 紫队 | SIEM | 企业安全
专注于「研究到检测」的管道:将已披露的 CVE 从安全公告转化为可运行、经验证的指纹,能够从外部大规模识别易受攻击的技术——建立在亲手实践的攻防实验室工作之上,而非仅仅依靠理论。
https://www.linkedin.com/in/bassey-solomon-henry/
GitHub
https://github.com/solomonhenry-afk/Bassey-Solomon-Henry
邮箱
「在你能够大规模证明哪些系统确实存在该漏洞之前,漏洞并不构成真正的风险。研究告诉你什么是可能的——检测工程告诉你什么是真实的。」
如果这个项目对你有用,请考虑为仓库点个 Star。
| 核心功能 | 在本仓库中的位置 |
|---|
| 研究新披露的 CVE 与安全公告 | docs/CVE-RESEARCH.md — CVE-2011-2523 背景、受影响版本、披露时间线 |
| 设计技术指纹与检测签名 | fingerprint_vsftpd_cve_2011_2523.py — 基于 banner 的版本匹配签名 |
| 构建可扩展的检测逻辑 | 批量模式(--targets-file),一次运行即可对多个主机进行指纹识别 |
| 使用真实资产验证检测 | 针对真实实验室目标(Metasploitable2 + 关闭端口对照组)运行并验证 |
| 降低误报/漏报 | 三态判定逻辑(vulnerable / not_vulnerable / undetermined)而非布尔值——关闭/过滤端口绝不会被静默归入 "not vulnerable" |
| 用于研究及验证的 Python 脚本 | 完整检测脚本 + JSON 证据输出,无需人工步骤 |
| HTTP/HTTPS、网络基础 | 原始 TCP/套接字级服务交互、banner 解析 |
| 面向互联网的基础设施重点 | 专为外部、无需认证的指纹识别设计——无需凭据、无需利用、不中断服务 |
| 测试用例 | 目标类型 | 预期判定 | 结果 |
|---|
| 已知易受攻击的主机 | Metasploitable2 (vsftpd 2.3.4) | vulnerable | 已确认 |
| 关闭/过滤端口 | 未监听端口 | undetermined(非静默漏报) | 已确认 |
| 非 vsftpd 服务 | 其他 FTP banner | not_applicable | 已确认 |