本仓库包含 CVE-2012-2982 的概念验证(PoC)利用脚本,该漏洞是一个影响 Webmin 1.590 及更早版本 的远程认证命令执行漏洞。该漏洞位于 /file/show.cgi 端点,攻击者可以通过在被操纵的请求中注入特殊字符(例如 | 管道符号)来执行任意命令。
本 PoC 仅用于 教育和安全研究目的。未经许可利用他人系统是非法的、不道德的。
Webmin 是一款流行的基于 Web 的系统管理工具,用于管理基于 Unix 的系统。在 1.590 及更早版本 中,文件管理器模块 存在一个安全缺陷。该问题源于在与 /file/show.cgi 脚本交互时对用户输入净化不当。通过注入 Shell 元字符(|),认证用户可以以 Webmin 进程的权限(通常为 root)在目标系统上执行任意命令。
受影响版本:Webmin 1.590 及更早版本
攻击前提:
攻击者必须拥有有效的 Webmin 凭证(低权限用户账户即可)。
文件管理器模块必须可访问。
可利用性:
远程代码执行(RCE)
权限提升(如果 Webmin 以 root 身份运行)
系统被入侵
存在漏洞的端点为:
http://<target_ip>:10000/file/show.cgi
该攻击利用了传递文件路径时输入验证不严的缺陷,从而允许通过 | 执行注入的 Shell 命令。
本仓库包含一个 Python 利用脚本,可自动完成:
身份认证:使用提供的凭证登录 Webmin。
会话 ID 提取:获取经过身份验证的请求所需的会话 ID。
Payload 执行:发送恶意请求以执行任意命令。
随机化执行路径:使用随机生成的文件名以规避检测。
反向 Shell 支持:生成反向 Shell payload,以连接回攻击者的机器。
错误处理:优雅地处理请求失败。
模块化设计:易于修改以测试不同的 payload。
Python 3
requests 库(pip install requests)
一个用于测试的 Webmin 实例(存在漏洞的版本)(请使用受控的实验室环境)
用法:
python3 exploit.py <target_IP>
示例:
python3 exploit.py 192.168.1.100
攻击者 IP(**lhost**):10.21.48.124
攻击者端口(**lport**):1937
目标 Webmin 凭证:
用户名:user1
密码:1user
如果成功,利用脚本将建立到攻击者机器的反向 Shell 连接。
在运行利用脚本之前,请在攻击机上设置一个 Netcat 监听器 以接收反向 Shell:
nc -lvnp 1937
一旦利用脚本成功执行,您应该会收到来自目标机器的 Shell 连接。
本 PoC 严格用于 安全研究和教育目的。它只应在 经授权的渗透测试环境 中使用。未经授权对生产系统使用 违反网络安全法律,并可能导致法律后果。
作者对任何滥用此利用脚本的行为 不承担责任。请 仅将本 PoC 用于合法的安全测试 和道德黑客活动。