Vulnhub - Brainpan 2 の Write-Up

Description

Vulnhub靶机Brainpan系列的第二台,有点小难度,还有点烧脑。

Step 1

首先确定靶机IP:

扫描开放端口:

Step 2

和brainpan一样,9999端口开放了一个相似的程序,10000端口是个静态页面。

扫描目录,还是有bin目录:

依然有个brainpan.exe文件,通过file命令发现是jpeg格式的图片:

改后缀名打开后发现是超级玛丽……

可是通过隐写或者夹层等多种方式也无法在其中找到任何有用的信息,只能回头去看9999端口的服务。

通过多次尝试,原来登录口令就是GUEST

HELP命令查看各个命令内容:

通过FILES指令列出文件:

通过VIEW指令在notes.txt中发现是通过popen(“command”, “r”)实现的各种功能,猜测VIEW指令的实现方式是popen(“cat <filename>”, “r”)

尝试通过";"绕过实现任意命令执行:

执行python反弹shell的命令,获得靶机的shell:

Step 3

尝试SUID提权:

最后一个命令看起来比较有趣:

进入对应文件夹下寻找信息:

尝试将msg_root下载到本地查看:

搭建python建议http服务器,访问http://172.16.83.5:7788/msg_root即可下载对应文件。

msg_root通过IDA逆向:

get_name函数:

根据get_name函数,对于username变量,当我们输入的字节数超过0x11字节后,并没有“\x00”这样的结束符,所以输入过长的时候可能造成缓冲区溢出。

fp(username, message);调用save_msg函数的时候便可以通过控制username长度实现覆盖EIP地址,从而跳转到覆盖的位置执行shellcode。

根据get_name函数的汇编程序,在0x08048729地址可以控制eax寄存器,从而通过下一步的call eax指令实现任意地址跳转。

所以在0x8048729的位置下个断点:

可以看到程序正常运行的时候,ebp-4的地址放着save_msg函数的地址,message部分的内容会被放到0x804a008的地址上去:

所以我们通过username字段反复重复0x804a008这个地址以覆盖eax,然后将shellcode放到message段即可。

下面还是通过msfvenom模块生成shellcode:

最后的payload

1
./msg_root `perl -e 'print "\x04\x08\x08\xa0"x8;'` `perl -e 'print "\xdb\xd1\xd9\x74\x24\xf4\xba\x07\xeb\x6c\xe2\x5d\x2b\xc9\xb1\x0b\x83\xc5\x04\x31\x55\x16\x03\x55\x16\xe2\xf2\x81\x67\xba\x65\x07\x1e\x52\xb8\xcb\x57\x45\xaa\x24\x1b\xe2\x2a\x53\xf4\x90\x43\xcd\x83\xb6\xc1\xf9\x9c\x38\xe5\xf9\xb3\x5a\x8c\x97\xe4\xe9\x26\x68\xac\x5e\x3f\x89\x9f\xe1";'`

Step 4

执行了payload之后可以看到获得了root权限:

进入/root文件夹发现两个文件,打开flag.txt提示没有权限,打开whatif.txt提示我们还不是root权限?WTF?

那就继续尝试SUID提权:

多了一个brainpan-1.8.exe文件,查看文件夹寻找信息:

先看一下brainpan.7文件是什么内容:

文件最后给了提示,我们需要更改brainpan.cfg文件内容修改地址和端口:

然后运行brainpan-1.8.exe,再连接上去通过命令执行反弹shell:

接收到puck用户的shell:

进入/home/puck文件夹寻找线索,有个.backup

进去看一下发现可能是前一个文件夹的备份:

看下唯一有区别的.bash_history文件:

果然,这里看出来了些端倪。原来是rootroot(space)两个账号……

厉害的让人无F*UCK说……

通过备份里的.ssh可以ssh连接root(space)

但是却提示连接失败,猜测是换了ssh端口,看下配置文件:

果然端口被改到了2222,再次尝试:

果然是root(space)账号,再次去查看flag.txt

城里人真会玩系列:

文章作者: ColdSnap
文章链接: https://coldwave96.github.io/2020/12/02/Brainpan2/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ColdSnap の Blog