OSCP-Vulnhub靶机记录-Hack Me Please Walkthrough
字数 1337 2025-08-12 11:34:33
OSCP-Vulnhub靶机渗透测试:Hack Me Please Walkthrough
1. 靶机环境准备
- 靶机名称:Hack Me Please
- 环境:Vulnhub虚拟机
- 网络配置:桥接模式
2. 信息收集阶段
2.1 主机发现
使用arp-scan进行局域网主机发现:
arp-scan -l
发现目标MAC地址:00:0C:29:FA:2D:5B (VMware)
2.2 端口扫描
发现开放端口:
- 80/tcp - HTTP服务
- 3306/tcp - MySQL服务
- 33060/tcp - MySQLx服务
3. Web服务渗透
3.1 目录扫描
使用dirsearch扫描Web目录:
dirsearch -u http://<target_ip>
发现关键目录:/seeddms51x/
3.2 CMS识别
识别出系统使用SeedDMS CMS(版本5.1.x)
3.3 源码分析
- 下载SeedDMS 5.1.x源码进行对比分析
- 发现关键文件:
- 登录文件路径:/seeddms51x/out/out.Login.php
- 数据库配置文件:/seeddms51x/conf/settings.xml
3.4 数据库凭证获取
从settings.xml中提取数据库凭证:
- 用户名:root
- 密码:rootpassword
4. 数据库渗透
4.1 数据库连接
使用Navicat或命令行连接MySQL:
mysql -h <target_ip> -u root -prootpassword
4.2 数据提取
查询关键表:
-
tbluser表:
- admin用户
- MD5加密密码(尝试破解失败)
-
user表:
- 用户:saket
- 密码:Saket@#¥1337
4.3 密码重置
由于无法破解MD5,直接修改admin密码为已知值(123456的MD5):
UPDATE tbluser SET pwd = 'e10adc3949ba59abbe56e057f20f883e' WHERE login = 'admin';
5. Web应用登录
使用修改后的凭证登录:
- 用户名:admin
- 密码:123456
6. 文件上传漏洞利用
6.1 发现上传点
在CMS后台找到文件上传功能
6.2 上传路径分析
通过本地搭建环境确认上传路径格式:
http://<target_ip>/seeddms51x/data/1048576/[document_id]/[filename]
6.3 上传PHP反向Shell
- 准备PHP反向Shell脚本(修改IP和端口为攻击机)
- 上传后获取document_id(本例中为11)
7. 获取初始访问
7.1 设置监听
攻击机开启监听:
nc -nvlp 1234
7.2 触发反向Shell
访问上传的Shell:
http://<target_ip>/seeddms51x/data/1048576/11/1.php
7.3 升级Shell
获取www-data权限的Shell后升级为交互式:
python -c 'import pty; pty.spawn("/bin/bash")'
8. 权限提升
8.1 用户枚举
检查/etc/passwd发现saket用户
8.2 切换用户
使用数据库中找到的凭证切换用户:
su saket
密码:Saket@#¥1337
8.3 提权检查
检查saket用户的sudo权限:
sudo -l
发现拥有ALL权限
8.4 获取root
直接提权:
sudo su
9. 技术要点总结
- 信息收集:全面的端口扫描和目录扫描
- JS信息泄露:通过JS文件发现CMS类型和版本
- 代码审计:阅读源码发现数据库配置和上传路径
- 本地环境搭建:辅助理解目标系统结构
- 文件上传漏洞:利用CMS上传功能获取初始访问
- 反向Shell:建立持久化连接
- 权限提升:利用数据库泄露的凭证和sudo配置
10. 防御建议
- 避免在配置文件中存储明文或弱密码
- 限制数据库用户的权限
- 对文件上传功能实施严格的过滤
- 定期审计sudo权限配置
- 使用强密码并定期更换
- 保持CMS系统及时更新