渗透测试系列 -- 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页面,查看页面源代码发现:
- 用户名提示:
eezeepz - 一大段Base64编码内容
3.3 解码Base64内容
将Base64内容保存为单行文本:
base64 -d /tmp/encoded.txt > decoded.png
解码后得到PNG图片,使用图片查看工具查看,发现密码:
username: eezeepz
password: keKkeKKeKKeKkEkkEk
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 建立反向连接
在攻击机上设置监听:
nc -nlvp 8888
成功获取低权限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用户:
su fristigod
输入密码LetThereBeFristi!成功
注意:如果遇到su问题,可能是由于tty限制,使用以下命令解决:
python -c 'import pty;pty.spawn("/bin/sh")'
5.4 获取root权限
检查fristigod用户的sudo权限:
sudo -l
输入密码LetThereBeFristi!后,发现可以以root权限执行命令,最终获取root权限。
6. 关键知识点总结
- 信息收集:Nmap扫描、目录枚举、robots.txt检查
- 隐写术:Base64编码隐藏在HTML源码中
- Web Shell上传:绕过文件类型限制的技巧
- 权限提升路径:
- 低权限shell → 发现提示 → 访问受限目录 → 解密凭据 → 切换用户 → sudo提权
- 密码复用:多个地方使用相同密码
- TTY问题解决:使用Python生成伪终端
7. 防御建议
- 避免在源码中隐藏敏感信息
- 实施严格的文件上传验证
- 不同账户使用不同密码
- 限制sudo权限
- 定期检查系统上的异常文件
- 最小化公开目录和信息