Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
R2Socks — Cloudflare R2オブジェクトストレージを経由してトンネルされたSOCKS5プロキシ。Pythonおよび依存関係のないC++エージェントが、暗号化されたR2オブジェクトを介してTCPトラフィックを中継し、隠密アクセスを実現します。 | Kitploit
ツール/GitHubGitHub/ivancabrera02/r2socks
暗号化/復号化ツールデータ流出ポストエクスプロイトネットワークセキュリティペネトレーションテストコマンド&コントロールレッドチーミングリモートアクセスツール
GitHubivancabrera02/r2socks

R2Socks

Cloudflare R2オブジェクトストレージを経由してトンネルされたSOCKS5プロキシ。Pythonおよび依存関係のないC++エージェントが、暗号化されたR2オブジェクトを介してTCPトラフィックを中継し、隠密アクセスを実現します。

リポジトリを見る
3161417日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

R2Socks

Cloudflare R2 バケットを経由する SOCKS5 プロキシトンネル。

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

プロキシはオペレーターのマシン上でローカル SOCKS5 サーバーを実行します。すべての CONNECT リクエストはバイナリパケットとしてシリアライズされ、R2 オブジェクトとして保存されます。エージェントはターゲットネットワークから同じバケットをポーリングし、接続リクエストを取得して実際の TCP 接続を確立し、R2 を経由してデータを中継します。

コンポーネント

コンポーネント言語ファイル説明
ProxyPythonr2socks.pySOCKS5 サーバー (オペレーター側)
AgentPythonr2socks.pyターゲット側リレー (エージェントモード)
AgentC++r2agent.cppスタンドアロン Windows エージェント、依存関係ゼロ

C++ エージェントは Python プロキシとプロトコル互換です。Windows ネイティブ API (WinHTTP、bcrypt、Winsock2) のみを使用し、外部ライブラリは不要です。

クイックスタート

1. R2 バケットの作成

  1. Cloudflare Dashboard → R2 Object Storage に移動
  2. Create bucket をクリックして名前を付ける
  3. URL から Account ID をメモ: dash.cloudflare.com/<ACCOUNT_ID>/r2/...

2. R2 API トークンの作成

  1. R2 → Manage R2 API Tokens → Create API Token
  2. 権限を Object Read & Write に設定
  3. バケット (またはすべてのバケット) を選択
  4. Access Key ID と Secret Access Key をコピー (一度しか表示されません)

3. プロキシの起動

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>

プロキシはチャネル ID を生成し、エージェントを起動するためのコマンドを出力します。

4. エージェントの起動

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>

C++ エージェント (Windows):

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

使用方法

プロキシ (オペレーター側)

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

エージェント (ターゲット側)

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

クリーンアップ

完了したらチャネルからすべての R2 オブジェクトを削除します:

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

プロトコル

プロキシとエージェント間で共有されるバイナリパケット形式:

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

複数のパケットは API 呼び出しを減らすために単一の R2 オブジェクト (最大 4MB) にバッチ化されます。オブジェクトは順序付けのためにマイクロ秒のタイムスタンプで命名され、消費後に削除されます。

暗号化

すべての R2 ペイロードに対するオプションの AES-256-GCM 暗号化:

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"

鍵は PBKDF2-SHA256 を 600,000 回の反復で使用して導出されます。

C++ エージェントのビルド

Visual Studio Developer Command Prompt から:

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

適応型ポーリング

プロキシとエージェントの両方が適応型スリープ間隔を使用します:

  • アクティブなトラフィック: 低レイテンシのために 50ms ごとにポーリング
  • アイドル: 間隔は各サイクルで 1.3 倍に増加し、最大 2 秒まで
  • トラフィック再開: 間隔は 0.5 倍に減少し、すぐに 50ms に戻る

これにより応答性と API 呼び出し量のバランスを取ります。統計は 30 秒ごとにログに記録され、アクティブな接続、転送されたオブジェクト、移動したバイト数が表示されます。

トラブルシューティング

SignatureDoesNotMatch

  • R2 API トークンの認証情報が正しいことを確認する
  • トークンがバケットに対する Object Read & Write 権限を持っていることを確認する
  • システムクロックを確認: w32tm /resync /force (Windows) または sudo ntpdate pool.ntp.org (Linux)

RequestTimeTooSkewed

  • システムクロックが同期していません。同期してください:
    root@kitploit:~
    w32tm /resync /force
    

AccessDenied

  • API トークンがターゲットバケットに対する権限を欠いている可能性があります
  • 正しいバケットに対する Object Read & Write 権限でトークンを再生成してください

要件

プロキシ (Python):

  • Python 3.8+
  • boto3 (必須)
  • cryptography (オプション、暗号化用)

エージェント (C++):

  • Windows 10/11
  • ランタイム依存関係なし
ツールをダウンロード
コマンドコード方向ペイロード
NEW0x01Proxy→AgentATYP + Address + Port
ACK0x02Agent→Proxy1 byte status (0=success)
DATA0x03BidirectionalRaw TCP data (up to 1MB)
CLOSE0x04BidirectionalEmpty
PING0x05BidirectionalEmpty