0x00 简介
Webmin是一个基于Web的界面,用于Unix的系统管理。使用任何现代Web浏览器,您可以设置用户帐户,Apache,DNS,文件共享等等。Webmin无需手动编辑/ etc / passwd等 Unix配置文件,并允许您从控制台或远程管理系统。Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。目前Webmin支持绝大多数的Unix系统,这些系统除了各种版本的linux以外还包括:AIX、HPUX、Solaris、Unixware、Irix和FreeBSD等。
0x01 环境搭建
靶机环境:Ubuntu 19.04
Ip地址:192.168.58.139
下载webmin_1.920_all.deb,下载地址
https://sourceforge.net/projects/webadmin/files/webmin/1.920/webmin_1.920_all.deb/download
0x02 安装webmin
sudo dpkg -i webmin_1.920_all.deb
这里报了个错,开始以为是用户权限问题,百度一下找到解决方法。
解决方法:
(1)重启
(2)sudo rm /var/lib/dpkg/lock
重启大法好
访问一下https://localhost:10000/
,看一下安装成功。
0x03 开启密码重置功能
此漏洞需要开启密码重置的功能,打开webmin配置文件cat /etc/webmin/miniserv.conf
查看passwd_mode
的值为0,说明没有开启密码重置功能。
利用root身份登入webmin管理界面(默认账号密码就是系统root的账号密码)。进入管理界面在左侧菜单栏找到Webmin-->Webmin Configuration-->Authentication
,选择“Prompt users with expired passwords to enter a new one
”,提示密码过期的用户输入新密码,开启重置密码的功能。
再次查看webmin配置文件cat /etc/webmin/miniserv.conf
,passwd_mode
的值已经由0变为2,说明修改配置成功。
0x04 漏洞利用
环境搭建完毕,访问一下https://192.168.58.139:10000/password_change.cgi
,发现
去修改一下配置文件,将/etc/webmin/config
文件中的referers_none
的值改为0。
远程访问下修改密码的页面https://ip:prot/password_change.cgi
,显示这个神仙界面,我没有做任何操作就提示修改密码失败。
罢了,参考师傅们的文章。直接抓包使用post方法传值
user=fuck!&pam=&expired=2&old=123 | ifconfig&new1=456&new2=456
,霸王硬上弓,结果,成功!注意这里的user值必须是个不存在的用户名,其中管道符(|
)的意思是执行此命令和此,至于为什么没有出现修改密码的页面,也许是Ubuntu 19的问题,具体我也不清楚。
附上一个检测webmin RCE的小工具,下载链接:
click me
效果如下:
脚本源码:
参考链接:
https://blog.firosolutions.com/exploits/webmin/
http://www.webmin.com/index.html
公众号 清明樱花祭传媒
0x05 修改建议
–>升级webmin到1.930版本
–>临时修补,删除漏洞代码所在的行
文章仅供学习交流,请勿用于非法攻击
题外:解决“su:认证失败”的方法