Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
R2Socks — Proxy SOCKS5 tunelado através do armazenamento de objetos Cloudflare R2, com agentes em Python e C++ sem dependências retransmitindo tráfego TCP via objetos R2 criptografados para acesso encoberto. | Kitploit
Ferramentas/GitHubGitHub/ivancabrera02/r2socks
Ferramentas de Criptografia/DescriptografiaExfiltração de DadosPós-ExploraçãoSegurança de RedeTestes de PenetraçãoComando e ControleRed TeamingFerramenta de Acesso Remoto
GitHubivancabrera02/r2socks

R2Socks

Proxy SOCKS5 tunelado através do armazenamento de objetos Cloudflare R2, com agentes em Python e C++ sem dependências retransmitindo tráfego TCP via objetos R2 criptografados para acesso encoberto.

3910245há 1 mêsRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Ver Repositório

R2Socks

Túnel de proxy SOCKS5 através de buckets do Cloudflare R2.

[Aplicativo Cliente] ◄─SOCKS5─► [Proxy] ◄─── Bucket R2 ───► [Agente] ◄─TCP─► [Alvo]

O proxy executa um servidor SOCKS5 local na máquina do operador. Cada requisição CONNECT é serializada como pacotes binários e armazenada como objetos R2. O agente consulta o mesmo bucket a partir da rede de destino, captura as requisições de conexão, estabelece conexões TCP reais e retransmite os dados de volta através do R2.

Componentes

ComponenteLinguagemArquivoDescrição
ProxyPythonr2socks.pyServidor SOCKS5 (lado do operador)
AgentePythonr2socks.pyRetransmissor do lado do alvo (modo agente)
AgenteC++r2agent.cppAgente Windows autônomo, sem dependências

O agente em C++ é compatível em protocolo com o proxy em Python. Ele usa apenas APIs nativas do Windows (WinHTTP, bcrypt, Winsock2) sem necessidade de bibliotecas externas.

Início Rápido

1. Criar um Bucket R2

  1. Acesse o Painel da Cloudflare → R2 Object Storage
  2. Clique em Create bucket e dê um nome a ele
  3. Anote seu Account ID a partir da URL: dash.cloudflare.com/<ACCOUNT_ID>/r2/...

2. Criar um Token de API do R2

  1. Em R2 → Manage R2 API Tokens → Create API Token
  2. Defina as permissões como Object Read & Write
  3. Selecione seu bucket (ou todos os buckets)
  4. Copie o Access Key ID e a Secret Access Key (exibidos apenas uma vez)

3. Iniciar o Proxy

pip install boto3
python r2socks.py proxy -b my-bucket -a <account_id> \
    --access-key <R2_ACCESS_KEY> --secret-key <R2_SECRET_KEY>

O proxy gera um ID de canal e imprime o comando para iniciar o agente.

4. Iniciar o Agente

Agente Python:

python r2socks.py agent -b my-bucket -a <account_id> -c <channel_id> \
    --access-key <R2_ACCESS_KEY> --secret-key <R2_SECRET_KEY>

Agente C++ (Windows):

.\r2agent.exe -b my-bucket -a <account_id> -c <channel_id> -k <access_key> -s <secret_key>

Uso

Proxy (Lado do Operador)

python r2socks.py proxy [options]

Required:
  -b, --bucket BUCKET         R2 bucket name
  -a, --account-id ID         Cloudflare account ID

Optional:
  -c, --channel ID            Channel ID (auto-generated if omitted)
  -l, --listen ADDR           Listen address (default: 127.0.0.1:1080)
  --access-key KEY            R2 API token Access Key ID
  --secret-key KEY            R2 API token Secret Access Key
  --socks-user USER           Enable SOCKS5 user/pass authentication
  --socks-pass PASS           SOCKS5 password
  -p, --password PWD          AES-256-GCM encryption password
  -v, --verbose               Debug logging

Agente (Lado do Alvo)

Python:

python r2socks.py agent [options]

Required:
  -b, --bucket BUCKET         R2 bucket name
  -a, --account-id ID         Cloudflare account ID
  -c, --channel ID            Channel ID (from proxy output)

C++ (Windows):

r2agent.exe [options]

Required:
  -b, --bucket BUCKET         R2 bucket name
  -a, --account-id ID         Cloudflare account ID
  -c, --channel ID            Channel ID (from proxy output)

Credentials (flags override env vars):
  -k, --access-key KEY        R2 API token Access Key ID
  -s, --secret-key KEY        R2 API token Secret Access Key

Optional:
  -v, --verbose               Debug logging

Limpeza

Remova todos os objetos R2 de um canal quando terminar:

python r2socks.py clean -b my-bucket -a <account_id> -c <channel_id>

Protocolo

Formato de pacote binário compartilhado entre proxy e agente:

┌──────────┬────────────────────┬────────────┬──────────────────┐
│ CMD (1B) │ ConnectionID (16B) │ Len (4B BE)│ Payload (var)    │
└──────────┴────────────────────┴────────────┴──────────────────┘
ComandoCódigoDireçãoPayload
NEW0x01Proxy→AgentATYP + Address + Port
ACK0x02Agent→Proxy1 byte status (0=success)
DATA0x03BidirectionalRaw TCP data (up to 1MB)
CLOSE0x04BidirectionalEmpty
PING0x05BidirectionalEmpty

Vários pacotes são agrupados em um único objeto R2 (até 4MB) para reduzir chamadas de API. Os objetos são nomeados com timestamps em microssegundos para ordenação e excluídos após o consumo.

Criptografia

Criptografia AES-256-GCM opcional para todos os payloads do R2:

pip install cryptography

# Both sides must use the same password
python r2socks.py proxy -b bucket -a account_id -p "my-secret-password"
python r2socks.py agent -b bucket -a account_id -c channel -p "my-secret-password"

A chave é derivada usando PBKDF2-SHA256 com 600.000 iterações.

Compilando o Agente C++

A partir de um Prompt de Comando do Desenvolvedor do Visual Studio:

cl /std:c++17 /EHsc /O2 r2agent.cpp /link ws2_32.lib winhttp.lib bcrypt.lib

Polling Adaptativo

Tanto o proxy quanto o agente usam intervalos de espera adaptativos:

  • Tráfego ativo: Consulta a cada 50ms para baixa latência
  • Ocioso: O intervalo cresce 1,3x a cada ciclo, até no máximo 2 segundos
  • Tráfego retomado: O intervalo cai 0,5x, voltando rapidamente para 50ms

Isso equilibra a capacidade de resposta com o volume de chamadas de API. As estatísticas são registradas a cada 30 segundos, mostrando conexões ativas, objetos transferidos e bytes movimentados.

Solução de Problemas

SignatureDoesNotMatch

  • Verifique se as credenciais do seu token de API do R2 estão corretas
  • Certifique-se de que o token tenha permissões de Object Read & Write no bucket
  • Verifique o relógio do sistema: w32tm /resync /force (Windows) ou sudo ntpdate pool.ntp.org (Linux)

RequestTimeTooSkewed

  • O relógio do sistema está dessincronizado. Sincronize-o:
    w32tm /resync /force
    

AccessDenied

  • O token de API pode não ter permissões no bucket de destino
  • Regenere o token com Object Read & Write no bucket correto

Requisitos

Proxy (Python):

  • Python 3.8+
  • boto3 (obrigatório)
  • cryptography (opcional, para criptografia)

Agente (C++):

  • Windows 10/11
  • Sem dependências de runtime
Baixar ferramenta