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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
browsertunnel — DNSを介してブラウザからデータを密かに外部流出させる | Kitploit
ツール/GitHubGitHub/veggiedefender/browsertunnel
データ流出ウェブセキュリティレッドチーミングDNS分析
GitHubveggiedefender/browsertunnel

browsertunnel

DNSを介してブラウザからデータを密かに外部流出させる

リポジトリを見るウェブサイト
42230196年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

browsertunnel

CircleCI

Browsertunnel は、DNS プロトコルを使用してブラウザからデータを流出させるためのツールです。これは、指定されたドメインの DNS ルックアップをバックグラウンドで実行することで Web サイトの体感レイテンシを低減することを目的とした dns-prefetch を悪用することで実現しています。DNS トラフィックはブラウザのデバッグツールに表示されず、ページの Content Security Policy (CSP) によってブロックされず、企業のファイアウォールやプロキシによって検査されることも少ないため、制約のあるシナリオでデータを密かに送り出す理想的な媒体となります。

これは古い手法です。DNS トンネリング自体は 1990 年代にさかのぼり、Patrick Vananti は 2016 年にこれに dns-prefetch を使用する方法について書いていますが、私の知る限り、browsertunnel はその使用法を示す初めてのオープンソースで実用的なクライアント/サーバーです。dns-prefetch はクライアント側の JavaScript にデータを返さないため、browsertunnel を介した通信は単方向のみです。また、一部のブラウザではデフォルトで dns-prefetch が無効になっており、その場合 browsertunnel は静かに失敗します。

このプロジェクトは2つの部分から構成されています:

  1. golang で書かれたサーバーは、権威 DNS サーバーとして機能し、browsertunnel によって送信されたメッセージを収集・デコードします。
  2. html/ フォルダにある小さな JavaScript ライブラリは、クライアント側でメッセージをエンコードして送信します。

動作の仕組み

Browsertunnel は、文字列をサブドメインにエンコードし、ブラウザがそのドメインを再帰的に解決しようとしたときに browsertunnel サーバーに転送されることで、任意の文字列を DNS 経由で送信できます。

1つのドメイン(253バイト)に収まらない長いメッセージは自動的に複数のクエリに分割され、サーバーによって再構成・デコードされます。

セットアップと使用方法

まず、サーバーにサブドメインを委任するための DNS レコードを設定します。例えば、サーバーの IP が 192.0.2.123 で、サブドメイン t1.example.com をトンネルに使用する場合、DNS 設定は次のようになります:

t1		IN	NS	t1ns.example.com.
t1ns		IN	A	192.0.2.123

サーバー上で、go get を使用して browsertunnel をインストールします。あるいは、自分のマシンで browsertunnel をコンパイルし、バイナリをサーバーにコピーしても構いません。

go get github.com/veggiedefender/browsertunnel

次に、トンネルに使用するサブドメインを指定して browsertunnel を実行します。

browsertunnel t1.example.com

完全な使用方法については、browsertunnel -help を実行してください:

$ browsertunnel -help
Usage of browsertunnel:
  -deletionInterval int
    	seconds in between checks for expired messages (default 5)
  -expiration int
    	seconds an incomplete message is retained before it is deleted (default 60)
  -maxMessageSize int
    	maximum encoded size (in bytes) of a message (default 5000)
  -port int
    	port to run on (default 53)

これらのパラメータの詳細な説明と根拠については、godoc も参照してください。

最後に、トンネルをテストしましょう!私のデモページ こちら を使用するか、このリポジトリをクローンして html/index.html をローカルで読み込んでください。すべてが正常に動作すれば、標準出力にメッセージが表示されるはずです。

このプロジェクトを実際の用途に使用する場合は、必要に応じてコードをフォークして調整するとよいでしょう。いくつかのアイデアを示します:

  • メッセージを標準出力に表示する代わりにデータベースに書き込む
  • クライアントコードをトランスパイルまたは書き換えて、古いブラウザでも動作させる
  • トラフィック量や予想される ID 衝突に応じて、ドメインの ID 部分を拡大または縮小する
  • メッセージを認証および暗号化して、秘匿性と改ざん耐性を確保する(DNS は平文プロトコルであることを忘れないでください)
ツールをダウンロード