CVE-2021-31760漏洞复现 | 初识Webmin & 安装 Ubuntu Desktop
该漏洞是Webmin(版本<=1.9734)的CSRF漏洞。Webmin是基于Web的界面的用于类Unix的系统管理工具。远程攻击者可以通过社工管理员,通过CSRF漏洞以及XSS漏洞,实现对远程服务器的代码执行,进而控制并接管服务器。
复现环境
- 目标机:Ubuntu 20.04 LTS 桌面版
- 攻击机: Ubuntu Server 20.04 LTS
- 目标使用Webmin版本:
1.9734
这里大家可以任意选择目标机和攻击机的系统,但是必须要满足目标机拥有桌面环境,因为在POC使用时,需要在浏览器中打开一个html文件。
同时在这里介绍一下如何目标机种安装Webmin 1.973版本。这里主要参考了博客在Linux中使用脚本包的方式安装Webmin_二木成林-CSDN博客。在sourceforge
下载压缩包,解压后在终端中运行setup.sh
便可以。不用手动编译,非常方便。
复现准备
-
目标机中,我们需要在
/etc/webmin/config
中将referers_none=1
修改为referers_none=0
。最终目标机中运行起webmin的页面大概是这样的。
用
ip:10000
的端口的方式也可以访问。用户名默认是admin
,密码是一开始安装的时候自己设置的,我们现在登录。主界面如下。 -
在攻击机中下载poc
git clone https://github.com/electronicbots/CVE-2021-31760
然后进入文件夹,运行python脚本,脚本的重点输入内容如下。
这里在提醒一下输入目标机的webmin地址时一定要加上
http
或者https
前缀,不然之后在目标机打开CSRF_POC.html
文件时会发生错误。现在攻击机已经进入了监听状态,我们该页面保持不动。
同时我们注意到脚本提示我们,让我们把
CSRF_POC
放到目标机上。它说的CSRF_POC
提示其实就是这个html文件。我们把它复制到目标机上,可以用
SCP
命令,这里我图方便,直接在目标机上新建了一个一个1.html
,并把这个CSRF_POC文件的内容复制过去了,效果如下。
复现过程
-
在目标机中登录webmin。
-
在目标机中打开
1.html
,打开后页面对自动跳转到/proc/run.cgi
,网页标题会有命令
字样。 -
在攻击机中的终端中查看监听结果。
成功。
经验总结
- 在复现这个漏洞时我本来试图在docker镜像中复现,但是遇到了镜像无法实现在浏览器中打开
CSRF_POC.html
的动作,所以我去下载了一个Ubuntu 20.04 LTS 桌面版,它的桌面使用起来非常舒适。 - 下次下载软件可以试着去
sourceforge
下载,它拥有很多软件的历史版本。