渗透测试系列 -- VulnHub – FristiLeaks v1.3
字数 1765 2025-08-18 11:37:02

VulnHub FristiLeaks v1.3 渗透测试教学文档

1. 环境准备

1.1 下载目标虚拟机

  • 下载链接1 (Torrent): https://download.vulnhub.com/fristileaks/FristiLeaks_1.3.ova.torrent
  • 下载链接2 (直接下载): https://download.vulnhub.com/fristileaks/FristiLeaks_1.3.ova

1.2 运行环境

  • VirtualBox 或 VMware Workstation Player

1.3 通关提示

  • 虚拟机默认用户名为 fristi

2. 信息收集

2.1 主机发现

使用网络扫描工具发现目标IP地址:

nmap -sn 10.10.10.0/24

发现目标主机位于 10.10.10.132

2.2 服务扫描

全面扫描目标主机开放端口:

nmap -sS -Pn -T4 -p- 10.10.10.132

发现仅开放80端口(HTTP服务)

详细扫描80端口:

nmap -A -O -p80 10.10.10.132

获取到以下信息:

  • Apache httpd 2.2.15 (CentOS)
  • DAV/2 PHP/5.3.3
  • robots.txt中有3个禁止访问的条目

3. Web应用渗透

3.1 检查robots.txt

访问 http://10.10.10.132/robots.txt 发现3个禁止目录,但访问这些目录都显示相同页面,无利用价值。

3.2 目录枚举

使用dirb进行目录扫描:

dirb http://10.10.10.132/

发现一些图片,其中keep-calm图片提示"KEEP CALM AND DRINK FRISTI",暗示可能存在/fristi/目录。

扫描/fristi/目录:

dirb http://10.10.10.132/fristi/

发现index页面,查看页面源代码发现:

  1. 用户名提示:eezeepz
  2. 一大段Base64编码内容

3.3 解码Base64内容

将Base64内容保存为单行文本:

base64 -d /tmp/encoded.txt > decoded.png

解码后得到PNG图片,使用图片查看工具查看,发现密码:

username: eezeepz
password: keKkeKKeKKeKkEkkEk

4. 获取初始访问权限

4.1 上传Web Shell

  1. 下载php-reverse-shell: http://pentestmonkey.net/tools/web-shells/php-reverse-shell
  2. 修改reverse-shell.php中的IP和端口
  3. 由于只允许上传图片格式,修改后缀为.jpg
  4. 上传成功后访问shell文件

4.2 建立反向连接

在攻击机上设置监听:

nc -nlvp 8888

成功获取低权限shell。

5. 权限提升

5.1 初步信息收集

查看/home目录发现用户eezeepz,检查其目录下的notes.txt文件,获得提示:

  • /tmp下创建runtis文件并赋予权限

5.2 访问admin目录

执行提示操作后可以访问/home/admin目录,发现以下文件:

  1. cryptpass.py - 加密脚本
  2. cryptpass.txt - 加密后的密码
  3. whoisyourgodnow.txt - 加密后的字符串

解密得到两组凭据:

  1. mVGZ3O3omkJLmy2pcuTq : thisisalsopw123
  2. =RFn0AKnlMHMPIzpyuTI0ITG : LetThereBeFristi!

5.3 切换用户

尝试切换到fristigod用户:

su fristigod

输入密码LetThereBeFristi!成功

注意:如果遇到su问题,可能是由于tty限制,使用以下命令解决:

python -c 'import pty;pty.spawn("/bin/sh")'

5.4 获取root权限

检查fristigod用户的sudo权限:

sudo -l

输入密码LetThereBeFristi!后,发现可以以root权限执行命令,最终获取root权限。

6. 关键知识点总结

  1. 信息收集:Nmap扫描、目录枚举、robots.txt检查
  2. 隐写术:Base64编码隐藏在HTML源码中
  3. Web Shell上传:绕过文件类型限制的技巧
  4. 权限提升路径
    • 低权限shell → 发现提示 → 访问受限目录 → 解密凭据 → 切换用户 → sudo提权
  5. 密码复用:多个地方使用相同密码
  6. TTY问题解决:使用Python生成伪终端

7. 防御建议

  1. 避免在源码中隐藏敏感信息
  2. 实施严格的文件上传验证
  3. 不同账户使用不同密码
  4. 限制sudo权限
  5. 定期检查系统上的异常文件
  6. 最小化公开目录和信息
VulnHub FristiLeaks v1.3 渗透测试教学文档 1. 环境准备 1.1 下载目标虚拟机 下载链接1 (Torrent): https://download.vulnhub.com/fristileaks/FristiLeaks_1.3.ova.torrent 下载链接2 (直接下载): https://download.vulnhub.com/fristileaks/FristiLeaks_1.3.ova 1.2 运行环境 VirtualBox 或 VMware Workstation Player 1.3 通关提示 虚拟机默认用户名为 fristi 2. 信息收集 2.1 主机发现 使用网络扫描工具发现目标IP地址: 发现目标主机位于 10.10.10.132 2.2 服务扫描 全面扫描目标主机开放端口: 发现仅开放80端口(HTTP服务) 详细扫描80端口: 获取到以下信息: Apache httpd 2.2.15 (CentOS) DAV/2 PHP/5.3.3 robots.txt中有3个禁止访问的条目 3. Web应用渗透 3.1 检查robots.txt 访问 http://10.10.10.132/robots.txt 发现3个禁止目录,但访问这些目录都显示相同页面,无利用价值。 3.2 目录枚举 使用dirb进行目录扫描: 发现一些图片,其中 keep-calm 图片提示"KEEP CALM AND DRINK FRISTI",暗示可能存在 /fristi/ 目录。 扫描 /fristi/ 目录: 发现index页面,查看页面源代码发现: 用户名提示: eezeepz 一大段Base64编码内容 3.3 解码Base64内容 将Base64内容保存为单行文本: 解码后得到PNG图片,使用图片查看工具查看,发现密码: 4. 获取初始访问权限 4.1 上传Web Shell 下载php-reverse-shell: http://pentestmonkey.net/tools/web-shells/php-reverse-shell 修改reverse-shell.php中的IP和端口 由于只允许上传图片格式,修改后缀为.jpg 上传成功后访问shell文件 4.2 建立反向连接 在攻击机上设置监听: 成功获取低权限shell。 5. 权限提升 5.1 初步信息收集 查看 /home 目录发现用户 eezeepz ,检查其目录下的 notes.txt 文件,获得提示: 在 /tmp 下创建 runtis 文件并赋予权限 5.2 访问admin目录 执行提示操作后可以访问 /home/admin 目录,发现以下文件: cryptpass.py - 加密脚本 cryptpass.txt - 加密后的密码 whoisyourgodnow.txt - 加密后的字符串 解密得到两组凭据: mVGZ3O3omkJLmy2pcuTq : thisisalsopw123 =RFn0AKnlMHMPIzpyuTI0ITG : LetThereBeFristi! 5.3 切换用户 尝试切换到 fristigod 用户: 输入密码 LetThereBeFristi! 成功 注意 :如果遇到su问题,可能是由于tty限制,使用以下命令解决: 5.4 获取root权限 检查 fristigod 用户的sudo权限: 输入密码 LetThereBeFristi! 后,发现可以以root权限执行命令,最终获取root权限。 6. 关键知识点总结 信息收集 :Nmap扫描、目录枚举、robots.txt检查 隐写术 :Base64编码隐藏在HTML源码中 Web Shell上传 :绕过文件类型限制的技巧 权限提升路径 : 低权限shell → 发现提示 → 访问受限目录 → 解密凭据 → 切换用户 → sudo提权 密码复用 :多个地方使用相同密码 TTY问题解决 :使用Python生成伪终端 7. 防御建议 避免在源码中隐藏敏感信息 实施严格的文件上传验证 不同账户使用不同密码 限制sudo权限 定期检查系统上的异常文件 最小化公开目录和信息