Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
R2Socks — Proxy SOCKS5 tunelizado a través del almacenamiento de objetos Cloudflare R2, con agentes en Python y C++ sin dependencias que retransmiten tráfico TCP mediante objetos R2 cifrados para acceso encubierto. | Kitploit
Herramientas/GitHubGitHub/ivancabrera02/r2socks
Herramientas de Cifrado/DescifradoExfiltración de DatosPost-ExplotaciónSeguridad de RedesPruebas de PenetraciónComando y ControlRed TeamingHerramienta de Acceso Remoto
GitHubivancabrera02/r2socks

R2Socks

Proxy SOCKS5 tunelizado a través del almacenamiento de objetos Cloudflare R2, con agentes en Python y C++ sin dependencias que retransmiten tráfico TCP mediante objetos R2 cifrados para acceso encubierto.

31614hace 17 díasRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio

R2Socks

Túnel proxy SOCKS5 a través de buckets de Cloudflare R2.

root@kitploit:~
[Client App] ◄─SOCKS5─► [Proxy] ◄─── R2 Bucket ───► [Agent] ◄─TCP─► [Target]

El proxy ejecuta un servidor SOCKS5 local en la máquina del operador. Cada solicitud CONNECT se serializa como paquetes binarios y se almacena como objetos R2. El agente consulta el mismo bucket desde la red de destino, recoge las solicitudes de conexión, establece conexiones TCP reales y retransmite los datos a través de R2.

Componentes

ComponenteLenguajeArchivoDescripción
ProxyPythonr2socks.pyServidor SOCKS5 (lado del operador)
AgentPythonr2socks.pyRetransmisor del lado del objetivo (modo agente)
AgentC++r2agent.cppAgente Windows independiente, sin dependencias

El agente C++ es compatible con el protocolo del proxy Python. Utiliza únicamente APIs nativas de Windows (WinHTTP, bcrypt, Winsock2), sin necesidad de bibliotecas externas.

Inicio Rápido

1. Crear un Bucket R2

  1. Ve al Panel de Cloudflare → R2 Object Storage
  2. Haz clic en Create bucket y asígnale un nombre
  3. Anota tu Account ID de la URL: dash.cloudflare.com/<ACCOUNT_ID>/r2/...

2. Crear un Token de API de R2

  1. En R2 → Manage R2 API Tokens → Create API Token
  2. Establece los permisos en Object Read & Write
  3. Selecciona tu bucket (o todos los buckets)
  4. Copia el Access Key ID y la Secret Access Key (se muestran solo una vez)

3. Iniciar el Proxy

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

El proxy genera un ID de canal e imprime el comando para iniciar el agente.

4. Iniciar el Agente

Agente Python:

root@kitploit:~
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):

root@kitploit:~
.\r2agent.exe -b my-bucket -a <account_id> -c <channel_id> -k <access_key> -s <secret_key>

Uso

Proxy (Lado del Operador)

root@kitploit:~
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 del Objetivo)

Python:

root@kitploit:~
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):

root@kitploit:~
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

Limpieza

Elimina todos los objetos R2 de un canal cuando termines:

root@kitploit:~
python r2socks.py clean -b my-bucket -a <account_id> -c <channel_id>

Protocolo

Formato de paquete binario compartido entre el proxy y el agente:

root@kitploit:~
┌──────────┬────────────────────┬────────────┬──────────────────┐
│ CMD (1B) │ ConnectionID (16B) │ Len (4B BE)│ Payload (var)    │
└──────────┴────────────────────┴────────────┴──────────────────┘

Varios paquetes se agrupan en un único objeto R2 (hasta 4MB) para reducir las llamadas a la API. Los objetos se nombran con marcas de tiempo en microsegundos para su ordenación y se eliminan tras su consumo.

Cifrado

Cifrado AES-256-GCM opcional para todos los payloads de R2:

root@kitploit:~
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"

La clave se deriva usando PBKDF2-SHA256 con 600.000 iteraciones.

Compilar el Agente C++

Desde un Símbolo del sistema para desarrolladores de Visual Studio:

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

Sondeo Adaptativo

Tanto el proxy como el agente utilizan intervalos de espera adaptativos:

  • Tráfico activo: Sondea cada 50ms para baja latencia
  • Inactivo: El intervalo crece 1,3x en cada ciclo, hasta un máximo de 2 segundos
  • Se reanuda el tráfico: El intervalo se reduce 0,5x, volviendo rápidamente a 50ms

Esto equilibra la capacidad de respuesta frente al volumen de llamadas a la API. Las estadísticas se registran cada 30 segundos mostrando conexiones activas, objetos transferidos y bytes movidos.

Solución de Problemas

SignatureDoesNotMatch

  • Verifica que las credenciales de tu token de API de R2 sean correctas
  • Asegúrate de que el token tenga permisos de Object Read & Write sobre el bucket
  • Comprueba el reloj del sistema: w32tm /resync /force (Windows) o sudo ntpdate pool.ntp.org (Linux)

RequestTimeTooSkewed

  • El reloj del sistema está desincronizado. Sincronízalo:
    root@kitploit:~
    w32tm /resync /force
    

AccessDenied

  • Es posible que el token de API carezca de permisos sobre el bucket de destino
  • Regenera el token con Object Read & Write sobre el bucket correcto

Requisitos

Proxy (Python):

  • Python 3.8+
  • boto3 (obligatorio)
  • cryptography (opcional, para el cifrado)

Agente (C++):

  • Windows 10/11
  • Sin dependencias en tiempo de ejecución
Descargar herramienta
ComandoCódigoDirecciónPayload
NEW0x01Proxy→AgentATYP + Address + Port
ACK0x02Agent→Proxy1 byte status (0=success)
DATA0x03BidirectionalRaw TCP data (up to 1MB)
CLOSE0x04BidirectionalEmpty
PING0x05BidirectionalEmpty