
Shell Ruby interativo para testes autorizados do CVE-2025-55182 (react2shell)
______ \_____ ______ / /
| / / /| /_ \
| | / | | /
|| /_____ ___| /_______ /
/ / / /
(react2rubyshell)
[!IMPORTANT]
AVISO: A responsabilidade por quaisquer ações tomadas com este script recai inteiramente sobre o indivíduo que o executa. Use isto apenas contra sistemas que você possui ou para os quais tem permissão explícita para testar.
json, net/http, optparse, readline, securerandom, shellwords, uriNenhuma gem externa é necessária.
Clone o repositório, entre no diretório do projeto e execute o script com Ruby:
git clone https://github.com/hakkuri01/r2rs.git
cd r2rs
ruby r2rs.rb -h
ruby r2rs.rb -t ALVO [opções]
-t, --target ALVO IP, hostname ou URL do alvo (obrigatório)
-p, --port PORTA Porta HTTP do alvo
-nb, --no-banner Omitir o banner inicial
-h, --help Exibir ajuda de uso
Exemplos:
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
Se ALVO não incluir um esquema, http:// é assumido. URLs HTTPS são suportadas.
Se a URL do alvo contiver caracteres especiais do shell, como ?, coloque-a entre aspas:
ruby r2rs.rb -t "https://127.0.0.1/test?x=1"
Antes de iniciar a sessão ativa, a ferramenta valida o alvo com um comando de teste. Se a validação falhar, exibe um erro e encerra.
A sessão é baseada em HTTP: o Ruby local reutiliza uma conexão HTTP, envia comandos através do caminho de requisição existente e exibe a resposta em um prompt interativo do Readline. O contexto do prompt é inicializado na inicialização e atualizado após cada comando usando o usuário remoto, hostname e diretório de trabalho.
Digite exit ou pressione Ctrl-C para encerrar a sessão.
Este modo intencionalmente não requer Ruby, Python, socat, script ou qualquer outro auxiliar PTY no alvo. Por isso, não é um PTY remoto real. Programas de tela cheia e sensíveis a TTY, como vim, nano, su, ssh e prompts de senha interativos, ainda podem ser limitados.