Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
R2Socks — Proxy SOCKS5 incanalato attraverso l'archiviazione di oggetti Cloudflare R2, con agenti Python e C++ senza dipendenze che inoltrano traffico TCP tramite oggetti R2 cifrati per un accesso occulto. | Kitploit
Strumenti/GitHubGitHub/ivancabrera02/r2socks
Strumenti di Crittografia/DecrittografiaEsfiltrazione DatiPost-ExploitSicurezza di RetePenetration TestingCommand and ControlRed TeamingStrumento di Accesso Remoto
GitHubivancabrera02/r2socks

R2Socks

Proxy SOCKS5 incanalato attraverso l'archiviazione di oggetti Cloudflare R2, con agenti Python e C++ senza dipendenze che inoltrano traffico TCP tramite oggetti R2 cifrati per un accesso occulto.

31617 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository

R2Socks

Proxy SOCKS5 incanalato attraverso bucket Cloudflare R2.

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

Il proxy esegue un server SOCKS5 locale sulla macchina dell'operatore. Ogni richiesta CONNECT viene serializzata come pacchetti binari e memorizzata come oggetti R2. L'agent esegue il polling dello stesso bucket dalla rete di destinazione, preleva le richieste di connessione, stabilisce connessioni TCP reali e ritrasmette i dati attraverso R2.

Componenti

ComponenteLinguaggioFileDescrizione
ProxyPythonr2socks.pyServer SOCKS5 (lato operatore)
AgentPythonr2socks.pyRelay lato destinazione (modalità agent)
AgentC++r2agent.cppAgent Windows standalone, zero dipendenze

L'agent C++ è compatibile a livello di protocollo con il proxy Python. Utilizza solo API native di Windows (WinHTTP, bcrypt, Winsock2) senza librerie esterne richieste.

Avvio Rapido

1. Creare un Bucket R2

  1. Vai su Cloudflare Dashboard → R2 Object Storage
  2. Clicca su Create bucket e assegnagli un nome
  3. Annota il tuo Account ID dall'URL: dash.cloudflare.com/<ACCOUNT_ID>/r2/...

2. Creare un Token API R2

  1. In R2 → Manage R2 API Tokens → Create API Token
  2. Imposta i permessi su Object Read & Write
  3. Seleziona il tuo bucket (o tutti i bucket)
  4. Copia l'Access Key ID e la Secret Access Key (mostrati una sola volta)

3. Avviare il 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>

Il proxy genera un channel ID e stampa il comando per avviare l'agent.

4. Avviare l'Agent

Agent 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>

Agent C++ (Windows):

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

Utilizzo

Proxy (Lato Operatore)

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

Agent (Lato Destinazione)

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

Pulizia

Rimuovi tutti gli oggetti R2 da un canale al termine:

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

Protocollo

Formato pacchetto binario condiviso tra proxy e agent:

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

Più pacchetti vengono raggruppati in un singolo oggetto R2 (fino a 4MB) per ridurre le chiamate API. Gli oggetti sono nominati con timestamp al microsecondo per l'ordinamento e vengono eliminati dopo il consumo.

Crittografia

Crittografia AES-256-GCM opzionale per tutti i payload 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 chiave viene derivata utilizzando PBKDF2-SHA256 con 600.000 iterazioni.

Compilazione dell'Agent C++

Da un Visual Studio Developer Command Prompt:

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

Polling Adattivo

Sia il proxy che l'agent utilizzano intervalli di sleep adattivi:

  • Traffico attivo: Esegue polling ogni 50ms per bassa latenza
  • Inattivo: L'intervallo cresce di 1.3x ad ogni ciclo, fino a un massimo di 2 secondi
  • Ripresa del traffico: L'intervallo si riduce di 0.5x, tornando rapidamente a 50ms

Questo bilancia la reattività rispetto al volume di chiamate API. Le statistiche vengono registrate ogni 30 secondi mostrando connessioni attive, oggetti trasferiti e byte spostati.

Risoluzione dei Problemi

SignatureDoesNotMatch

  • Verifica che le credenziali del tuo token API R2 siano corrette
  • Assicurati che il token abbia i permessi Object Read & Write sul bucket
  • Controlla l'orologio di sistema: w32tm /resync /force (Windows) o sudo ntpdate pool.ntp.org (Linux)

RequestTimeTooSkewed

  • L'orologio di sistema è fuori sincrono. Sincronizzalo:
    root@kitploit:~
    w32tm /resync /force
    

AccessDenied

  • Il token API potrebbe non avere i permessi sul bucket di destinazione
  • Rigenera il token con Object Read & Write sul bucket corretto

Requisiti

Proxy (Python):

  • Python 3.8+
  • boto3 (richiesto)
  • cryptography (opzionale, per la crittografia)

Agent (C++):

  • Windows 10/11
  • Nessuna dipendenza runtime
Scarica lo strumento
ComandoCodiceDirezionePayload
NEW0x01Proxy→AgentATYP + Address + Port
ACK0x02Agent→Proxy1 byte status (0=success)
DATA0x03BidirezionaleDati TCP grezzi (fino a 1MB)
CLOSE0x04BidirezionaleVuoto
PING0x05BidirezionaleVuoto