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 源码分析

  1. 下载SeedDMS 5.1.x源码进行对比分析
  2. 发现关键文件:
    • 登录文件路径:/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 数据提取

查询关键表:

  1. tbluser表:

    • admin用户
    • MD5加密密码(尝试破解失败)
  2. 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

  1. 准备PHP反向Shell脚本(修改IP和端口为攻击机)
  2. 上传后获取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. 技术要点总结

  1. 信息收集:全面的端口扫描和目录扫描
  2. JS信息泄露:通过JS文件发现CMS类型和版本
  3. 代码审计:阅读源码发现数据库配置和上传路径
  4. 本地环境搭建:辅助理解目标系统结构
  5. 文件上传漏洞:利用CMS上传功能获取初始访问
  6. 反向Shell:建立持久化连接
  7. 权限提升:利用数据库泄露的凭证和sudo配置

10. 防御建议

  1. 避免在配置文件中存储明文或弱密码
  2. 限制数据库用户的权限
  3. 对文件上传功能实施严格的过滤
  4. 定期审计sudo权限配置
  5. 使用强密码并定期更换
  6. 保持CMS系统及时更新
OSCP-Vulnhub靶机渗透测试:Hack Me Please Walkthrough 1. 靶机环境准备 靶机名称:Hack Me Please 环境:Vulnhub虚拟机 网络配置:桥接模式 2. 信息收集阶段 2.1 主机发现 使用arp-scan进行局域网主机发现: 发现目标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目录: 发现关键目录:/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: 4.2 数据提取 查询关键表: tbluser表: admin用户 MD5加密密码(尝试破解失败) user表: 用户:saket 密码:Saket@#¥1337 4.3 密码重置 由于无法破解MD5,直接修改admin密码为已知值(123456的MD5): 5. Web应用登录 使用修改后的凭证登录: 用户名:admin 密码:123456 6. 文件上传漏洞利用 6.1 发现上传点 在CMS后台找到文件上传功能 6.2 上传路径分析 通过本地搭建环境确认上传路径格式: 6.3 上传PHP反向Shell 准备PHP反向Shell脚本(修改IP和端口为攻击机) 上传后获取document_ id(本例中为11) 7. 获取初始访问 7.1 设置监听 攻击机开启监听: 7.2 触发反向Shell 访问上传的Shell: 7.3 升级Shell 获取www-data权限的Shell后升级为交互式: 8. 权限提升 8.1 用户枚举 检查/etc/passwd发现saket用户 8.2 切换用户 使用数据库中找到的凭证切换用户: 8.3 提权检查 检查saket用户的sudo权限: 发现拥有ALL权限 8.4 获取root 直接提权: 9. 技术要点总结 信息收集 :全面的端口扫描和目录扫描 JS信息泄露 :通过JS文件发现CMS类型和版本 代码审计 :阅读源码发现数据库配置和上传路径 本地环境搭建 :辅助理解目标系统结构 文件上传漏洞 :利用CMS上传功能获取初始访问 反向Shell :建立持久化连接 权限提升 :利用数据库泄露的凭证和sudo配置 10. 防御建议 避免在配置文件中存储明文或弱密码 限制数据库用户的权限 对文件上传功能实施严格的过滤 定期审计sudo权限配置 使用强密码并定期更换 保持CMS系统及时更新