Webmin 远程命令执行漏洞(CVE-2019-15107)

1.webmin简介

1.1 什么是webmin

Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作
http://www.webmin.com/
Webmin 是一个用 Perl 编写的基于浏览器的管理应用程序。
是一个基于Web的界面,用于Unix的系统管理。使用任何支持表和表单的浏览器,可以设置用户帐户,Apache,DNS,文件共享等。

1.2 为什么用webmin

Linux系统因其高效稳定而受到广大用户的推崇与青睐,然后其管理有一定复杂性和学习周期。为了降低 Linux系统的管理难度,有时候会对公司内的Linux主机或VPS系统预装了网页管理工具webmin.
Webmin 远程命令执行漏洞(CVE-2019-15107)_第1张图片

2. 漏洞概述

1.漏洞编号:CVE-2019-15107

2.漏洞描述:该漏洞允许恶意第三方在缺少输入验证的情况下而执行恶意代码
该漏洞由于password_change.cgi文件在重置密码功能中存在一个代码执行漏洞,该漏洞允许恶意第三方在缺少输入验证的情况下而执行恶意代码
3、受影响的版本:Webmin<=1.920
4,漏洞利用条件:版本满足要求,且服务器的配置文件允许修改密码时,在不知道webmin的用户和密码条件下,可以任意执行代码。

3.漏洞复现

3.1 环境搭建

环境:webmin 1.910
使用docker搭建,在vulhub项目中有webmin漏洞复现的环境
Webmin 远程命令执行漏洞(CVE-2019-15107)_第2张图片

https://192.168.44.144:10000
Webmin 远程命令执行漏洞(CVE-2019-15107)_第3张图片

首先进入容器,修改root用户密码
Webmin 远程命令执行漏洞(CVE-2019-15107)_第4张图片

再次登录
Webmin 远程命令执行漏洞(CVE-2019-15107)_第5张图片

漏洞需要开启密码重置功能。

在控制界面 https://ip:10000/webmin/edit_session.cgi?xnavigation=1
Webmin 远程命令执行漏洞(CVE-2019-15107)_第6张图片

在服务器上查看webmin的配置文件

cat /etc/webmin/miniserv.conf

Webmin 远程命令执行漏洞(CVE-2019-15107)_第7张图片

3.2.EXP

抓包获得改密码的请求包

POST /password_change.cgi HTTP/1.1
Host: 192.168.44.144:10000
Connection: close
Content-Length: 52
Cache-Control: max-age=0
Origin: https://192.168.44.144:10000
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Sec-Fetch-Site: same-origin
Referer: https://192.168.44.144:10000/session_login.cgi
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: redirect=1; testing=1; sessiontest=1; sid=x

user=root&pam=1&expired=2&old=123456&new1=11&new2=11

Webmin 远程命令执行漏洞(CVE-2019-15107)_第8张图片

尝试利用 || 执行命令
Webmin 远程命令执行漏洞(CVE-2019-15107)_第9张图片

思考之后,考虑有可能root是系统用户,而不是webmin的用户
尝试随便写一个用户和密码
Webmin 远程命令执行漏洞(CVE-2019-15107)_第10张图片

尝试执行反弹shell命令
①kali监听9000端口
②用burp suite ,对命令编码后执行
Webmin 远程命令执行漏洞(CVE-2019-15107)_第11张图片
Webmin 远程命令执行漏洞(CVE-2019-15107)_第12张图片

③kali收到shell
Webmin 远程命令执行漏洞(CVE-2019-15107)_第13张图片

你可能感兴趣的:(漏洞复现)