type
status
date
slug
summary
tags
category
icon
password
信息收集
端口扫描
Annunciation
靶机ip:192.168.108.136
攻击机ip:192.168.108.50
靶机地址:https://vulnyx.com/
目录扫描
开放了22和80两个端口,namp显示http支持TRACE方法,可能存在 [Cross Site Tracing (XST)] 漏洞,可以借助 JavaScript 绕过同源策略配合 XSS 读取内容
用浏览器访问80端口是个默认页面,应该是没有东西的

图片.png
尝试目录扫描,正常目录没扫出东西,隐藏目录发现了一个
.dev
访问
.dev
和.dev
的源码
图片.png

图片.png
没有头绪,继续尝试目录遍历查看是否
.dev/
是一个目录,第一遍返回很多垃圾,过滤完响应大小后,扫半天终于出了个页面漏洞利用
代码审计与参数枚举
尝试访问一下debugger.php ,说是只支持post方法

图片.png
使用post方法,提示我们没有提供适当的参数,使用wfuzz工具进行枚举,发现没用,看PL4GU3大佬的的解题视频,发现原来是要有两个参数,这里爆破太慢了
尝试上传指令
access=whoami
被解析为 imaohw
,值被反转了,同时 cmd=id
没有被执行,将输入的指令替换成php语言的反转一下再发送,状态码变为200说明执行成功,可以推断出服务器代码可能包含一段逻辑,大致像这样
图片.png

图片.png
所有我们尝试传入可以使用cmd执行的函数,例如:
exec()
执行命令,不直接输出,可以捕获结果
passthru()
执行命令并直接输出到页面(适合用来查看命令行输出)
shell_exec()
执行命令并返回完整输出为字符串
system()
执行命令并立即输出每行内容,也可以返回最后一行
backticks(反引号)
这是一种 PHP 语法糖,和
shell_exec()
类似最后试出来是
passthru
(注意这里不能有换行,也会识别进去导致失效)
绕过过滤
先查看当前目录的东西,尝试获取debugger.php页面的源码,发现没回显,尝试查看passwd同样没有回显,怀疑有过滤

图片.png

图片.png

图片.png
尝试base64加密绕过没效果,使用使用
cat
+ $(...)
混淆
绕过目标/etc/passwd怀疑/被过滤,常规为
echo .etc.passwd
➜ 输出 .etc.passwd
tr '.' '/'
➜ 替换成 /etc/passwd
cat $(...)
➜ 实际执行:cat /etc/passwd
这里使用tr映射的方法,选取两个范围一致的字符集将 . 和 / 对应起来

图片.png

图片.png

图片.png
再次尝试获取debugger.php页面源码,成功获取
过滤逻辑:会将提交的命令中出现的这些关键字全删掉:
- 命令:
nc
,whoami
,curl
,ping
,pwd
,hostname
,sh
,base
- 符号:
:
,\
/
,
反弹Shell
有sh,传入混淆并url编码后的shell

图片.png
权限提升
Cron作业劫持
搜寻一番后无果,上传软件脚本帮助测试
uid表示为非root用户,发现重复执行相同脚本,通过binwalk递归(
-M
)提取 /opt/RE/walk.zip
中的嵌套文件,将autobin.sh复制出来,写入反弹命令到脚本,再监听一下,成功进入 trumpeter用户,拿到第一个flagSudo提权 (CVE-2021-3156)
列出当前用户在该系统上可以使用
sudo
执行的命令发现可以
sudo
执行 /usr/sbin/findfs
,且无需密码(NOPASSWD
)findfs
可能会触发底层工具如 blkid
或尝试挂载可以结合恶意文件系统镜像,但无法自动挂载手动又没权限,无果查看sudo版本发现sudo版本过低,存在CVE-2021-3156
去github上拿个exphttps://github.com/worawit/CVE-2021-3156,得到提权用户
- Author:axlfpe
- URL:https://tlifecafe.xyz/article/16b24899-f28e-4b6b-9817-097423de8035
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!