tylerbcrawford/rekall-penetration-testing
GitHub: tylerbcrawford/rekall-penetration-testing
一份针对虚构企业的完整渗透测试报告项目,演示了从 Web 漏洞到域控制器沦陷的多阶段攻击链及修复方案。
Stars: 0 | Forks: 0




# Rekall Corporation — 渗透测试项目
针对一家虚构公司的 Web 应用、Linux 服务器和 Windows 服务器进行的为期 3 天的授权渗透测试。三人团队,多伦多大学 (UofT) 网络安全项目 (2024)。
## 我们的发现
该环境是故意设置漏洞的,但我们发现的这些漏洞模式与后来在 CVE 数据库和 OWASP 报告中引用的真实漏洞模式如出一辙:
- **Web 应用上的 SQL injection** — 经典的未过滤输入。我们使用 Burp Suite 映射注入点,并使用 `' OR 1=1 --` payload 绕过了管理员登录。该应用还通过其暴露的数据库泄露了数据。
- **远程代码执行** — 未修补的 Apache Struts (CVE-2017-5638)、Tomcat (CVE-2017-12617) 和 Drupal (CVE-2019-6340)。Metasploit 为每个漏洞都准备了现成的模块。一旦获取了 shell,便可通过 sudo 漏洞 (CVE-2019-14287) 提权至 root。
- **Linux 上的 Shellshock** — 2014 年的 bash 漏洞,仍然存在。Nmap 的脚本引擎标记了它,Metasploit 的 `apache_mod_cgi_bash_env_exec` 模块确认了这一点。
- **Windows 上的弱凭证** — 多个账户使用默认密码和字典密码。John the Ripper 在几分钟内破解了它们。随后,使用 kiwi 模块转储缓存的哈希值,开辟了通往域控制器的路径。
每项发现都导致了系统被攻陷或敏感数据被访问。我们在完整报告中记录了漏洞利用步骤、证据和修复建议。
## 漏洞利用证据
杀伤链从 Web 应用的立足点延伸到 Linux root,再到 Windows 域控制器。下方展示的凭证和哈希值是来自沙盒环境的合成实验工件。
**1. SQL injection — 在 `Login.php` 上绕过身份验证。** 一个 `' OR 1=1 --` payload 绕过了管理员登录。

**2. 提权至 root — sudo CVE-2019-14287。** 以 `alice` 用户身份运行 `sudo -u#-1 cat /root/...` 会以 root 权限执行命令,从而绕过 sudoers 策略。

**3. 域控制器被攻陷。** 在域上获取 Meterpreter 会话后,kiwi 模块转储了 `REKALL\ADMBob` 账户的缓存凭证。

## 发现详情
严重程度和修复建议摘自报告自带的漏洞发现卡片。该报告记录了跨 Web 应用、Linux 主机和 Windows 主机共计 21 项发现;以下是核心发现。
| 漏洞 | 严重程度 | 利用方式 | 修复建议 |
|------|----------|---------------|-------------|
| SQL injection (`Login.php`) | 严重 | `' OR 1=1 --` payload 绕过管理员登录 | 参数化查询和服务器端输入验证 |
| 反射型与存储型 XSS | 严重 | 在 `Welcome.php`、`Memory-Planner.php`、`Comments.php` 上进行脚本注入 | 输入验证和输出编码 |
| 无限制文件上传 | 高 | `dawn.php.jpg` 在图片上传处绕过扩展名检查 | 使用允许列表扩展名并验证 MIME 类型 |
| 管理员访问控制失效 | 严重 | 通过“检查元素”可在页面 HTML 中读取管理员凭证 | 避免将敏感信息放在客户端代码中;通过 HTTPS 提供 |
| 敏感数据暴露 | 高 | `robots.txt` 泄露了受限路径和一个 flag | 不要将敏感信息放在公开可访问的文件中 |
| 目录遍历 | 中 | DNS 检查输入字段中存在目录遍历 payload | 验证输入;通过路径允许列表解析文件 |
| Apache Struts RCE (CVE-2017-5638) | 严重 | Metasploit `struts2_content_type_ognl` | 修补或升级 Apache Struts |
| Apache Tomcat RCE (CVE-2017-12617) | 严重 | 远程文件执行进入交互式 shell | 修补或升级 Apache Tomcat |
| Shellshock | 严重 | Metasploit `apache_mod_cgi_bash_env_exec`,随后通过 sudoers 获取 root | 修补 Bash |
| Drupal RCE (CVE-2019-6340) | 严重 | Metasploit `drupal_restws_unserialize` | 修补或升级 Drupal |
| Sudo 提权 (CVE-2019-14287) | 严重 | `sudo -u#-1` 允许用户 `alice` 以 root 身份运行 | 修补 sudo |
| 公开 GitHub 上暴露的凭证 | 严重 | OSINT 从公开仓库中恢复了密码哈希值 (`trivera`) | 从仓库中移除敏感信息;轮换凭证 |
| 匿名 FTP,端口 21 | 严重 | Windows 10 主机上存在匿名登录 | 禁用匿名 FTP;使用 SFTP 或 FTPS |
| 存在漏洞的 SLMail 版本 | 严重 | Metasploit `seattlelab_pass` 返回了一个 Meterpreter shell | 修补或更新 SLMail |
| 弱密码 → 域管理员 | 高 | NTLM/MsCacheV2 哈希被 John the Ripper 破解,并通过 kiwi 转储,最终到达域控制器 | 强制执行强密码策略和 MFA |
## 工具
Kali Linux, Metasploit Framework, Burp Suite, Nmap, Nikto, John the Ripper, Hashcat, Recon-ng
## 报告
包含完整发现集合、漏洞利用链和修复步骤的完整渗透测试报告:**[渗透测试报告 (PDF)](Penetration_Test_Report.pdf)**
## 相关项目
关于此项目对应的防御部分——为了检测此类攻击而构建的 Splunk SIEM,请参见 **[vsi-splunk-siem](https://github.com/tylerbcrawford/vsi-splunk-siem)**。
## 背景
这是多伦多大学 (UofT) 网络安全证书项目的一个毕业设计项目。在沙盒实验室环境中进行的授权测试。
标签:Burp Suite, CISA项目, CTI, Nmap, Web安全, Web报告查看器, 协议分析, 权限提升, 蓝队分析, 虚拟驱动器