NovocaineX/pentest-metasploit
GitHub: NovocaineX/pentest-metasploit
基于 Python 的渗透测试自动化脚本,能够自动完成端口扫描、CVE 漏洞映射、Metasploit 脚本生成及报告导出。
Stars: 0 | Forks: 0
# 使用 Metasploit 进行渗透测试
这是一个结构化的渗透测试自动化框架,由 **Aadarsh Bonthula** 开发,是专注于网络安全和道德黑客基础知识的网络安全作品集系列的一部分。
它能够自动化执行结构化渗透测试的侦察、漏洞映射和报告生成阶段。该框架将发现的服务映射到已知的 CVE,生成可直接运行的 Metasploit resource 脚本,并生成正式的渗透测试报告。
## 功能介绍
**阶段 1 — 侦察**
- 针对目标进行带有 banner grabbing 的 TCP 端口扫描
**阶段 2 — 漏洞分析**
- 将发现的端口和服务 banner 与 CVE 数据库进行交叉比对
- 将发现的问题映射到特定的 Metasploit exploit 模块
**阶段 3 — Metasploit 准备**
- 为每个发现的问题自动生成 `.rc` resource 脚本
- 这些脚本可以在实验室环境中直接使用 `msfconsole -r .rc` 运行
**阶段 4 — 报告生成**
- 导出结构化的 Markdown 渗透测试报告
- 包含:开放端口、CVE 发现、严重性评级、利用步骤和修复建议
## 涉及概念
| 概念 | 参考资料 |
|---------|-----------|
| TCP 端口扫描与 Banner Grabbing | 第 4.2、4.3 章 — 扫描与枚举 (CodTech 资料) |
| Metasploit Framework | 第 5.2 章 — Metasploit Framework 基础 |
| 漏洞利用方法论 | 第 5 章 — 获取访问权限:漏洞利用技术 |
| 渗透测试阶段 | 第 1 章 — 道德黑客的关键阶段 |
| 结构化报告 | 第 1 章 — 报告阶段;第 12.3 章 — 编写漏洞报告 |
## 环境要求
- Python 3.7+
- 扫描/报告无需外部库
- **Metasploit Framework**(用于执行生成的 `.rc` 脚本)
- 授权的实验目标(例如:Metasploitable 2、Kioptrix Level 1)
## 项目结构
```
pentest-metasploit/
├── pentest.py # Main automation script
├── reports/ # Generated reports (auto-created)
│ ├── pentest_report_*.md # Structured pentest report
│ └── msf_scripts/ # Generated Metasploit resource scripts
├── demo/
│ └── sample_report.md # Example report against Metasploitable 2
└── README.md
```
## 使用说明
```
# 针对 lab target 的基础扫描
python3 pentest.py -t 192.168.1.10
# 带有 LHOST 的自定义端口范围,用于 reverse shells
python3 pentest.py -t 192.168.1.10 -p 1-1024 --lhost 192.168.1.5
# 带有自定义输出目录的全面扫描
python3 pentest.py -t 192.168.1.10 -p 1-65535 --threads 200 --output reports/
```
### 参数说明
| 标志 | 描述 | 默认值 |
|------|-------------|---------|
| `-t` / `--target` | 目标 IP 或主机名 | 必填 |
| `-p` / `--ports` | 要扫描的端口范围 | `1-1024` |
| `--lhost` | 你的 IP(用于 .rc 脚本中的 reverse shell payload) | `192.168.1.5` |
| `--threads` | 并发扫描线程数 | `100` |
| `--timeout` | 每个端口的 socket 超时时间 | `1.0s` |
| `--output` | 报告输出目录 | `reports/` |
## 示例输出
```
============================================================
Penetration Test — Aadarsh Bonthula
Target : 192.168.1.10
Ports : 1-1024
LHOST : 192.168.1.5
Output : reports/
Started : 2025-06-10 16:00:00
============================================================
[Phase 1] Reconnaissance — Port Scan + Banner Grabbing
[OPEN] 21 | FTP | 220 (vsFTPd 2.3.4)
[OPEN] 22 | SSH | SSH-2.0-OpenSSH_4.7p1
[OPEN] 139 | NetBIOS | Samba
[OPEN] 445 | SMB | Unknown
[OPEN] 3306 | MySQL | MySQL
[OPEN] 6667 | IRC | UnrealIRCd 3.2.8.1
6 open port(s) found.
[Phase 2] Vulnerability Analysis — CVE Mapping
[CRITICAL] Port 21 — CVE-2011-2523: vsftpd 2.3.4 backdoor
[CRITICAL] Port 139 — CVE-2007-2447: Samba usermap_script
[CRITICAL] Port 6667 — CVE-2010-2075: UnrealIRCd backdoor
[HIGH] Port 3306 — CVE-2012-2122: MySQL auth bypass
[Phase 3] Metasploit Resource Scripts
[MSF] Resource script: reports/msf_scripts/exploit_1_CVE_2011_2523.rc
[MSF] Resource script: reports/msf_scripts/exploit_2_CVE_2007_2447.rc
[Phase 4] Report Generation
[*] Report saved: reports/pentest_report_20250610_1600.md
```
## CVE 覆盖范围
该工具包含对以下常见实验室漏洞的检测:
| CVE | 端口 | 描述 | 严重性 |
|-----|------|-------------|----------|
| CVE-2011-2523 | 21 | vsftpd 2.3.4 后门 | 严重 |
| CVE-2017-0144 | 445 | EternalBlue (MS17-010) | 严重 |
| CVE-2007-2447 | 139 | Samba usermap_script | 严重 |
| CVE-2010-2075 | 6667 | UnrealIRCd 后门 | 严重 |
| CVE-2021-41773 | 80 | Apache 2.4.49 路径遍历 | 严重 |
| CVE-2008-0166 | 22 | OpenSSH 弱 Debian 密钥 | 高危 |
| CVE-2012-2122 | 3306 | MySQL 认证绕过 | 高危 |
| CVE-2007-3278 | 5432 | PostgreSQL 默认凭据 | 高危 |
| CVE-2009-3843 | 8180 | Tomcat manager WAR 上传 | 高危 |
## 法律免责声明
此工具专为**教育目的和授权渗透测试**而开发。请仅对你拥有或获得明确书面授权的系统进行测试。所有漏洞利用行为必须在隔离的实验室环境中进行(例如:Metasploitable 2、Kioptrix)。未经授权的使用是非法且不道德的。
## 作者
**Aadarsh Bonthula**
B.Tech 计算机科学(网络安全方向)
Manav Rachna 国际研究与学院
GitHub: [NovocaineX](https://github.com/NovocaineX)
*作为专注于网络安全和道德黑客基础的网络安全作品集系列的一部分开发。*
标签:Python, 安全报告, 密码管理, 插件系统, 数字取证, 无后门, 服务器安全, 自动化脚本, 逆向工具