
Shell interactivo de Ruby para pruebas autorizadas de CVE-2025-55182 (react2shell)
______ \_____ ______ / /
| / / /| /_ \
| | / | | /
|| /_____ ___| /_______ /
/ / / /
(react2rubyshell)
[!IMPORTANT]
DESCARGO DE RESPONSABILIDAD: La responsabilidad por cualquier acción realizada con este script recae directamente sobre la persona que lo ejecuta. Úselo únicamente contra sistemas que posea o para los que tenga permiso explícito de prueba.
json, net/http, optparse, readline, securerandom, shellwords, uriNo se requieren gemas externas.
Clone el repositorio, entre al directorio del proyecto y ejecute el script con Ruby:
git clone https://github.com/hakkuri01/r2rs.git
cd r2rs
ruby r2rs.rb -h
ruby r2rs.rb -t TARGET [options]
-t, --target TARGET IP, nombre de host o URL del objetivo (obligatorio)
-p, --port PORT Puerto HTTP del objetivo
-nb, --no-banner Omitir el banner de inicio
-h, --help Mostrar uso del comando
Ejemplos:
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
Si TARGET no incluye un esquema, se asume http://. Las URL HTTPS son compatibles.
Si la URL del objetivo contiene caracteres especiales del shell como ?, enciérrela entre comillas:
ruby r2rs.rb -t "https://127.0.0.1/test?x=1"
Antes de iniciar la sesión activa, la herramienta valida el objetivo con un comando de prueba. Si la validación falla, imprime un error y sale.
La sesión funciona sobre HTTP: el Ruby local reutiliza una conexión HTTP, envía comandos a través de la ruta de solicitud existente y muestra la respuesta en un prompt interactivo de Readline. El contexto del prompt se inicializa al inicio y se actualiza después de cada comando utilizando el usuario remoto, el nombre del host y el directorio de trabajo.
Escriba exit o presione Ctrl-C para cerrar la sesión.
Este modo no requiere deliberadamente Ruby, Python, socat, script ni ningún otro asistente PTY en el objetivo. Por ello, no se trata de un PTY remoto real. Programas de pantalla completa y sensibles a la TTY como vim, nano, su, ssh y mensajes interactivos de contraseña pueden seguir presentando limitaciones.