Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Cloak — 権威主義国家による検出を回避するための検閲回避ツール | Kitploit
ツール/GitHubGitHub/cbeuw/cloak
暗号化/復号化ツールIDS/IPS回避ネットワークセキュリティステガノグラフィー
GitHubcbeuw/cloak

Cloak

権威主義国家による検出を回避するための検閲回避ツール

リポジトリを見る
4.1k3541年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

Build Status codecov Go Report Card Donate

Cloak は、OpenVPN のような従来のプロキシツールを強化し、高度な検閲やデータ差別を回避するためのプラグ可能転送です。

Cloak は単独のプロキシプログラムではありません。むしろ、プロキシされたトラフィックを通常のWebブラウジング活動に見せかけることで動作します。非常に顕著なトラフィックフィンガープリントを持ち、単純なフィルタリングルールでブロックされる可能性がある従来のツールとは対照的に、Cloak を偽陽性を少なく正確に標的にすることは非常に困難です。これにより、検閲行為に対する巻き添え被害が増加し、Cloak をブロックしようとすると、検閲国家が依存するサービスにも損害を与える可能性があります。

第三者による観測では、Cloak サーバーを実行しているホストは無害なWebサーバーと区別がつきません。サーバーとの間のトラフィックフローを受動的に観測している場合でも、Cloak サーバーの動作を能動的に調査している場合でも同様です。これは、一連の暗号ステガノグラフィ技術を使用することで実現されています。

Cloak は、Shadowsocks、OpenVPN、Tor など、TCP または UDP 経由でトラフィックをトンネリングする任意のプロキシプログラムと組み合わせて使用できます。複数のプロキシサーバーを同じサーバーホスト上で実行でき、Cloak サーバーはリバースプロキシとして機能し、クライアントを目的のプロキシエンドに接続します。

Cloak は複数の基盤となる TCP 接続を多重化するため、ヘッドオブラインブロッキングが軽減され、TCP ハンドシェイクのオーバーヘッドがなくなり、トラフィックパターンが実際のWebサイトにより類似します。

Cloak はマルチユーザーサポートを提供し、複数のクライアントが同じポート(デフォルト443)でプロキシサーバーに接続できます。また、使用クレジットや帯域制御などのトラフィック管理機能も提供します。これにより、基盤となるプロキシソフトウェアがマルチユーザー向けに設計されていなくても、プロキシサーバーが複数のユーザーにサービスを提供できます。

Cloak は、Amazon Cloudfront のような中間 CDN サーバーを介したトンネリングもサポートしています。このようなサービスは非常に広く使われているため、それらへのトラフィックを妨害しようとすると、検閲にとって非常に高い巻き添え被害が生じる可能性があります。

クイックスタート

Shadowsocks で Cloak をサーバーに迅速にデプロイするには、@HirbodBehnam が作成したこのスクリプトを実行できます。

目次

  • クイックスタート
  • ビルド
  • 設定
    • サーバー
    • クライアント
  • セットアップ
    • サーバー
      • ユーザーの追加
        • 無制限ユーザー
        • 帯域幅とクレジット制御の対象となるユーザー
    • クライアント
  • サポート

ビルド

root@kitploit:~
git clone https://github.com/cbeuw/Cloak
cd Cloak
go get ./...
make

ビルドされたバイナリは build フォルダにあります。

設定

設定ファイルの例は example_config フォルダにあります。

サーバー

RedirAddr は、受信トラフィックが Cloak クライアントからのものでない場合のリダイレクトアドレスです。理想的には、検閲によって許可されている主要なWebサイト(例:www.bing.com)に設定する必要があります。

BindAddr は、Cloak がバインドしてリッスンするアドレスのリストです(例:すべてのインターフェースでポート443と80をリッスンする場合は [":443",":80"])。

ProxyBook は、クライアント側で使用される ProxyMethod の名前をキーとするオブジェクトです(大文字小文字を区別)。その値は配列で、最初の要素はプロトコル、2番目の要素は Cloak がトラフィックを転送するアップストリームプロキシサーバーの IP:PORT 文字列です。

例:

root@kitploit:~
{
  "ProxyBook": {
    "shadowsocks": [
      "tcp",
      "localhost:51443"
    ],
    "openvpn": [
      "tcp",
      "localhost:12345"
    ]
  }
}

PrivateKey は、base64 でエンコードされた静的 curve25519 Diffie-Hellman 秘密鍵です。

BypassUID は、帯域幅やクレジット制限なしで許可される UID のリストです。

AdminUID は、base64 でエンコードされた管理ユーザーの UID です。BypassUID にのみユーザーを追加する場合は、これを空のままにできます。

DatabasePath は、ユーザー使用情報と制限を保存するために使用される userinfo.db へのパスです。ファイルが存在しない場合、Cloak が自動的に作成します。BypassUID にのみユーザーを追加する場合は、これを空のままにできます。また、AdminUID が有効な UID でないか空の場合、このフィールドは効果がありません。

KeepAlive は、OS にアイドル状態が続いた後にアップストリームプロキシサーバーに TCP KeepAlive プローブを送信するまでの待機時間(秒)です。ゼロまたは負の値は無効になります。デフォルトは0(無効)です。

クライアント

UID は base64 でエンコードされたあなたの UID です。

Transport は direct または CDN のいずれかです。サーバーホストに直接接続する場合は direct を使用します。代わりに CDN を使用する場合は CDN を使用します。

PublicKey は、サーバー管理者から提供された base64 でエンコードされた静的 curve25519 公開鍵です。

ProxyMethod は、使用しているプロキシメソッドの名前です。これはサーバーの ProxyBook 内のエントリのいずれかと完全に一致する必要があります。

EncryptionMethod は、Cloak が使用する暗号化アルゴリズムの名前です。オプションは plain、aes-256-gcm(aes-gcm と同義)、aes-128-gcm、chacha20-poly1305 です。注:Cloak はトランスポートセキュリティを提供することを意図していません。暗号化の目的は、プロキシプロトコルのフィンガープリントを隠し、ペイロードを統計的にランダムに見せることです。基盤となるプロキシツールがすでに暗号化と認証(AEAD または類似の技術による)の両方を提供していると確信できる場合にのみ、plain のままにしてください。

ServerName は、ISP やファイアウォールにあなたが訪れていると「思わせる」ドメインです。理想的にはサーバーの設定の RedirAddr と一致する、検閲が許可する主要なサイトであるべきですが、必須ではありません。random を使用すると、接続ごとにサーバー名がランダム化されます。

AlternativeNames は、ServerName と併用して新しい接続ごとに異なる ServerName をシャッフルする配列です。CDN プロバイダーがドメインフロンティングを禁止し、代替ドメインを拒否する場合、CDN Transport モードと競合する可能性があります。

例:

root@kitploit:~
{
  "ServerName": "bing.com",
  "AlternativeNames": ["cloudflare.com", "github.com"]
}

CDNOriginHost は、CDN モードにおけるオリジンサーバー(つまり Cloak を実行しているサーバー)のドメイン名です。これは Transport が CDN に設定されている場合にのみ効果があります。設定されていない場合、デフォルトではコマンドライン引数(スタンドアロンモードの場合)または Shadowsocks(プラグインモードの場合)で指定されたリモートホスト名になります。CDN サーバーとの TLS セッションが確立された後、このドメイン名は HTTP リクエストの Host ヘッダーで使用され、CDN サーバーにこのホストとの WebSocket 接続を確立するよう要求します。

CDNWsUrlPath は、CDN モードで送信される WebSocket リクエストの構築に使用される URL パスで、Transport が CDN に設定されている場合にのみ効果があります。設定されていない場合、デフォルトは "/" です。このオプションは、TLS セッションが確立された後の HTTP リクエストの最初の行を構築するために使用されます。主に、特定の URL パス下のリクエストのみが転送されるリバースプロキシの背後にある Cloak サーバー向けです。

NumConn は、使用する基盤となる TCP 接続の数です。デフォルトの4はほとんどの人に適しています。高く設定しすぎるとパフォーマンスが低下します。0に設定すると接続多重化が無効になり、各 TCP 接続が個別の短期間のセッションを生成し、終了後に閉じられます。これにより GoQuiet のように動作します。不安定な接続を持つ人には便利かもしれません。

BrowserSig は、あなたが使用しているように 見せかけたい ブラウザです。実際に使用しているブラウザとは関係ありません。現在、chrome、firefox、safari がサポートされています。

KeepAlive は、OS にアイドル状態が続いた後に Cloak サーバーに TCP KeepAlive プローブを送信するまでの待機時間(秒)です。ゼロまたは負の値は無効になります。デフォルトは0(無効)です。警告:これを有効にすると、サーバーがプロキシとして検出されやすくなる可能性がありますが、Cloak クライアントがインターネットの中断をより迅速に検出できるようになります。

StreamTimeout は、プロキシプログラムからの着信接続がデータを送信するのを Cloak が待機する秒数で、その後 Cloak によって接続が閉じられます。Cloak は、確立後の TCP 接続に対してタイムアウトを強制しません。

セットアップ

サーバー

  1. 少なくとも1つの基盤となるプロキシサーバー(例:OpenVPN、Shadowsocks)をインストールします。
  2. 最新のリリース をダウンロードするか、このリポジトリをクローンしてビルドします。
  3. ck-server -key を実行します。公開鍵はユーザーに渡し、秘密鍵は秘密に保管します。
  4. (無制限ユーザーのみを追加する場合はスキップ)ck-server -uid を実行します。新しい UID が AdminUID として使用されます。
  5. example_config/ckserver.json を適切な場所にコピーします。PrivateKey を取得した秘密鍵に変更し、AdminUID を取得した UID に変更します。
  6. 基盤となるプロキシサーバーがすべて localhost でリッスンするように設定します。設定ファイルの ProxyBook を適宜編集します。
  7. プロキシプログラムを設定します。 sudo ck-server -c <ckserver.json へのパス> を実行します。ck-server は低番号ポート(443)にバインドするため、root 権限が必要です。あるいは、https://superuser.com/a/892391 に従って、ck-server に不必要に root 権限を付与しないようにすることもできます。

ユーザーの追加

無制限ユーザー

ck-server -uid を実行し、UID を ckserver.json の BypassUID フィールドに追加します。

帯域幅とクレジット制御の対象となるユーザー
  1. まず、AdminUID が生成され、ckserver.json に設定されていること、および DatabasePath に userinfo.db へのパスが設定されていることを確認してください(Cloak は、ファイルが存在しない場合に自動的に作成します)。
  2. クライアントで、ck-client -s <サーバーのIP> -l <ローカルポート> -a <AdminUID> -c <ckclient.json へのパス> を実行して管理モードに入ります。
  3. https://cbeuw.github.io/Cloak-panel にアクセスします(注:これはピュアJSの静的サイトで、バックエンドはなく、このサイトに入力されたすべてのデータはブラウザと指定した Cloak API エンドポイント間で処理されます。または、https://github.com/cbeuw/Cloak-panel からリポジトリをダウンロードし、ブラウザで index.html を開くこともできます。Webサーバーは必要ありません)。
  4. API Base として 127.0.0.1:<手順1で入力したポート> を入力し、List をクリックします。
  5. + パネルをクリックしてユーザーを追加できます。

注:ユーザーデータベースはディスク上に保存されるため永続的です。ck-server を起動するたびにユーザーを追加し直す必要はありません。

クライアント

Android クライアントはこちら:https://github.com/cbeuw/Cloak-android

  1. サーバーが使用しているものに対応する基盤となるプロキシクライアントをインストールします。
  2. 最新のリリース をダウンロードするか、このリポジトリをクローンしてビルドします。
  3. サーバーの管理者から公開鍵と自分の UID を入手します。
  4. example_config/ckclient.json を任意の場所にコピーします。取得した UID と PublicKey を入力します。ProxyMethod をサーバー側の ProxyBook 内の対応するエントリと完全に一致するように設定します。
  5. プロキシプログラムを設定します。 ck-client -c <ckclient.json へのパス> -s <サーバーのIP> を実行します。

サポート

このプロジェクトが役立つと思われましたら、私のグッズストアをご覧いただくか、直接寄付していただけます。

Donate

BTC: bc1q59yvpnh0356qq9vf0j2y7hx36t9ysap30spx9h

ETH: 0x8effF29a8F9bD38A367580527AC303972c92b60c

ツールをダウンロード