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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
rbndr — シンプルなDNSリバインディングサービス | Kitploit
ツール/GitHubGitHub/taviso/rbndr
脆弱性分析ウェブアプリケーション悪用ペネトレーションテストDNS分析
GitHubtaviso/rbndr

rbndr

シンプルなDNSリバインディングサービス

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

人気

すべて見る →

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

すべてのツールを探索

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

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

rbndr

シンプルなDNSリバインディングサービス

rbndrは、DNSリバインディング脆弱性に対するソフトウェアのテストを行うための、非常にシンプルで非準拠のネームサーバーです。このサーバーは、ホスト名に指定されたアドレスの中からランダムに1つを選択し、非常に低いTTLで回答として返します。

https://en.wikipedia.org/wiki/DNS_rebinding

DNSリバインディングは、TOCTOU(チェック時刻と使用時刻の不一致)脆弱性の一種です。これは、「プリフライト」チェックを誤ってセキュリティプロパティの変更に使用しているサービスがある場合に利用します。例えば、次のようなAPIを持つ(架空の)ブラウザプラグインを考えてみましょう。

root@kitploit:~
AllowUntrustedAccess("foobar.com");
SendArbitraryRequests("foobar.com");

そして、AllowUntrustedAccess() は単にホストにプリフライトHTTPリクエストを送信します。

root@kitploit:~
GET /CanIDisableSecurity HTTP/1.1

サービスが200を返すと、プラグインはホストページに対してそのホスト名への完全なアクセスを許可します。これはセキュリティ上の脆弱性になる可能性があります。なぜなら、あなたが制御するホストとそうでないホストの間を切り替えるrbndrホスト名を指定できるからです。プラグインは、たとえそのサービスが通常はプリフライトチェックを許可しないとしても、任意のIPアドレス(例:内部サービスやlocalhost)への完全なアクセスを許可する可能性があります。

これは非現実的に聞こえるかもしれませんが、まさにAdobe Flash、Oracle Java、その他多くの製品が過去にこうした動作をしており、今でも多くの製品がそのまま動作しています。

AdobeがFlashでこの問題を解決しようとした方法については、こちらをご覧ください:https://www.adobe.com/devnet/flashplayer/articles/fplayer9_security.html

この種の攻撃に対して脆弱なソフトウェアの場合、rbndrは/etc/hostsを修正したり、独自のネームサーバーをセットアップしたりすることなく、簡単にテストできる方法です。ソフトウェアが結果をホスト名とIPアドレスの両方ではなく、ホスト名だけに関連付ける場合、任意のIPアドレスへのアクセスを許可させることができます。

ホスト名の形式は単純に次の通りです。

root@kitploit:~
<base-16でエンコードされたIPv4>.<base-16でエンコードされたIPv4>.rbndr.us

しかし、ドット区切りの4つ組から変換するには、以下のウェブサイトも利用できます。

https://lock.cmpxchg8b.com/rebinder.html

例えば、127.0.0.1 と 192.168.0.1 を切り替えるには、それらをダブルワードとしてエンコードし、次を使用します。

root@kitploit:~
7f000001.c0a80001.rbndr.us

実際にテストしてみましょう。

root@kitploit:~
$ host 7f000001.c0a80001.rbndr.us
7f000001.c0a80001.rbndr.us has address 192.168.0.1
$ host 7f000001.c0a80001.rbndr.us
7f000001.c0a80001.rbndr.us has address 192.168.0.1
$ host 7f000001.c0a80001.rbndr.us
7f000001.c0a80001.rbndr.us has address 192.168.0.1
$ host 7f000001.c0a80001.rbndr.us
7f000001.c0a80001.rbndr.us has address 127.0.0.1
$ host 7f000001.c0a80001.rbndr.us
7f000001.c0a80001.rbndr.us has address 127.0.0.1
$ host 7f000001.c0a80001.rbndr.us
7f000001.c0a80001.rbndr.us has address 192.168.0.1
$ host 7f000001.c0a80001.rbndr.us
7f000001.c0a80001.rbndr.us has address 127.0.0.1
$ host 7f000001.c0a80001.rbndr.us
7f000001.c0a80001.rbndr.us has address 127.0.0.1
$ host 7f000001.c0a80001.rbndr.us
7f000001.c0a80001.rbndr.us has address 192.168.0.1

ご覧の通り、サーバーはランダムにいずれかのアドレスを返します。次のようなことを行うかもしれません(擬似コード)。

root@kitploit:~
// 自分が制御するアドレスに解決され、アクセスが許可されるまでAPIを呼び続ける
while (AllowUntrustedAccesss("7f000001.c0a80001.rbndr.us") != true)
  ;

// アクセスが許可されたので、再バインディングされるのを待つ
while (ConnectToPort("7f000001.c0a80001.rbndr.us", 123) != true)
 ;
 
 // これで、localhostがセキュリティ低下に同意していなくても、localhost:123 にアクセスできるようになった。
 SomethingEvil();
ツールをダウンロード