______ \_____ ______ / /
| / / /| /_ \
| | / | | /
|| /_____ ___| /_______ /
/ / / /
(react2rubyshell)
[!IMPORTANT]
免责声明:因使用本脚本而采取的任何行动,其责任完全由执行者本人承担。请仅对您拥有或已获明确许可进行测试的系统使用本脚本。
json、net/http、optparse、readline、securerandom、shellwords、uri无需任何外部 gem。
克隆仓库,进入项目目录,然后使用 Ruby 运行脚本:
git clone https://github.com/hakkuri01/r2rs.git
cd r2rs
ruby r2rs.rb -h
ruby r2rs.rb -t TARGET [options]
-t, --target TARGET Target IP, hostname, or URL (required)
-p, --port PORT Target HTTP port
-nb, --no-banner Drop the startup banner
-h, --help Show command usage
示例:
ruby r2rs.rb -t 127.0.0.1
ruby r2rs.rb -t 127.0.0.1 -p 3000
ruby r2rs.rb -t http://127.0.0.1:3000
ruby r2rs.rb -t "https://example.test/app?debug=1" -p 8443
ruby r2rs.rb -nb -t 127.0.0.1 -p 3000
如果 TARGET 未包含协议(scheme),则默认采用 http://。支持 HTTPS URL。
如果目标 URL 包含 ? 等 shell 特殊字符,请用引号将其括起来:
ruby r2rs.rb -t "https://127.0.0.1/test?x=1"
在启动主动会话之前,该工具会通过探针命令验证目标。如果验证失败,将打印错误并退出。
该会话基于 HTTP:本地 Ruby 复用单个 HTTP 连接,通过现有请求路径发送命令,并在交互式 Readline 提示符中显示响应。提示符上下文在启动时初始化,并在每条命令执行后根据远程用户、主机名和工作目录进行刷新。
输入 exit 或按 Ctrl-C 即可关闭会话。
此模式特意不要求目标端安装 Ruby、Python、socat、script 或任何其他 PTY 辅助程序。正因如此,它并非真正的远程 PTY。vim、nano、su、ssh 等全屏程序及对 TTY 敏感的程序,以及交互式密码提示,仍可能受限。