
DNSリバインディング攻撃フレームワーク
最近の更新:
新着 (2025-11-25): Chrome リリース 142 に Local Network Access (LNA) が追加され、Singularity で実装された DNS リバインディング攻撃手法を防止します。Singularity of Origin の LNA-from-Non-Secure-Contexts ブランチは Trial for Local Network Access from Non-Secure Contexts のサポートを実装しています。これにより、安全でないコンテキストからローカルネットワーク上のリソースへのアクセスが一時的に許可され、Chrome を使用して DNS リバインディング攻撃を少し長く (2026年5月18日まで) 試すことができます。
新着 (2025-05-19): デモサイト rebind.it が IPv6 をサポートするようにアップグレードされました (commit 3c5ee9a)。これは、DNS クエリ形式が変更されたため、Singularity Manager UI 外での手動クエリにとっては破壊的変更となります。詳細な手順については How to Create Manual DNS Requests to Singularity of Origin を参照してください。また、定期的に新しい攻撃ペイロードを追加していますので、ぜひチェックしてください。
(2023-04-27) 2023年4月のDNSリバインディングの状況 を文書化したブログ記事をご覧ください。DNSリバインディングを防ぐことを目的としたいくつかのブラウザに実装されている新しいW3Cドラフト仕様であるLocal Network Accessについて説明し、これらの制限を回避する2つの方法を示します。また、WebRTC IPアドレス漏洩対策とDNS Bit 0x20がDNSリバインディング攻撃に与える影響についても議論します。
(2020-03-30) DoHがDNSリバインディング攻撃に与える影響 を調査した新しいブログ記事。TL;DR: DoH (DNS over HTTPS) はリバインディング攻撃に影響を与えず、プロバイダーが宣伝する保護は回避可能です。
DEF CON 27 ビデオ と BSidesLV のプレゼンテーション State of DNS Rebinding: Attack & Prevention Techniques and the Singularity of Origin をご覧ください。
Singularity of Origin は DNS リバインディング 攻撃を実行するためのツールです。攻撃サーバーのDNS名のIPアドレスをターゲットマシンのIPアドレスにリバインドし、ターゲットマシン上の脆弱なソフトウェアを悪用するための攻撃ペイロードを提供するために必要なコンポーネントが含まれています。また、単純なホームページのキャプチャからリモートコード実行まで、複数の脆弱なソフトウェアバージョンを悪用するサンプルペイロードが付属しています。DNS リバインディング攻撃に対して脆弱なソフトウェアの悪用を容易にし、その仕組みと防御方法についての認識を高めるためのフレームワークを提供することを目的としています。
詳細なドキュメントは wiki ページ にあります。



Singularity のセットアップには、ドメインの DNS レコードを編集できる DNS ドメイン名と、それを実行するための Linux サーバーが必要です。詳細な手順については、セットアップ Singularity の wiki ページを参照してください。
ドキュメントは wiki ページ にあります。 始めるためのいくつかのポイント:
デモ用のテストインスタンスが http://rebind.it:8080/manager.html で利用可能です。
Singularity は、最適な条件下で以下のブラウザで 3秒未満 で動作することがテストされています:
Singularity は以下の攻撃ペイロードをサポートしています:
simple-fetch-get.js): このサンプルペイロードは、ルートディレクトリ ('/') に GET リクエストを送り、fetch API を使用してサーバーの応答を表示します。このペイロードの目的は、追加の貢献を可能な限り容易にするためのサンプルリクエストとして機能することです。exposed-chrome-devtools.js): このペイロードは、バージョン 1.19.3 で修正された Microsoft VS Code のリモートコード実行 (RCE) 脆弱性を示します。このペイロードは、localhost 上で Chrome Dev Tools を公開する任意のソフトウェアを悪用するように適応できます。etcd.js): このペイロードは、etcd キーバリューストアからキーと値を取得します。pyethapp.js): Ethereum クライアント Pyethapp の Python 実装を悪用して、所有する eth アドレスのリストを取得し、最初の eth アドレスの残高を取得します。rails-console-rce.js): Rails Web Console に対してリモートコード実行 (RCE) 攻撃を実行します。aws-metadata-exfil.js): ヘッドレスブラウザに強制的に、秘密鍵を含む AWS メタデータを指定されたホストに流出させます。攻撃のセットアップ方法の詳細については、ペイロードの内容を確認してください。duplicati-rce.js): このペイロードは Duplicati バックアップクライアントを悪用し、リモートコード実行 (RCE) 攻撃を実行します。この攻撃を機能させるには、ファイル 内のパラメータ を、実際の RCE ペイロード (シェルスクリプト) を含む有効な Duplicati バックアップを指すように更新する必要があります。| ブラウザ | オペレーティングシステム | 悪用までの時間 | リバインディング戦略 | フェッチ間隔 | ターゲット指定 |
|---|
Multiple answers (fast) | |||||
Multiple answers (fast) | |||||
| Firefox | Windows 10 | ~3s | Multiple answers (fast) | 1s | 127.0.0.1 |
| Chromium | Ubuntu | ~3s | Multiple answers (fast) | 1s | 0.0.0.0 |
| Firefox | Ubuntu | ~3s | Multiple answers (fast) | 1s | 0.0.0.0 |
| Chrome | macOS | ~3s | Multiple answers (fast) | 1s | 0.0.0.0 |
| Firefox | macOS | ~3s | Multiple answers (fast) | 1s | 0.0.0.0 |
| Safari | macOS | ~3s | Multiple answers (fast) | 1s | 0.0.0.0 |
payload-duplicati-rce.htmltargetURLwebpdb.js): WebSocket 経由で公開された Python デバッガ PDB を悪用するための汎用 RCE ペイロード。hook-and-control.js): ターゲットブラウザをハイジャックし、それらを使用して自分のブラウザや他の HTTP クライアントからアクセスできないリソースにアクセスします。ハイジャックされたブラウザのリストは、デフォルトで Singularity マネージャーホストの "soohooked" サブドメインのポート 3129 で取得できます。例: http://soohooked.rebinder.your.domain:3129/。認証するには、起動時に Singularity サーバーがコンソールに出力した秘密の値を送信します。jenkins-script-console.js): このペイロードは Jenkins Script Console を悪用し、保存された認証情報を表示します。docker-api.js): このペイロードは Docker API を悪用し、Docker ホストの /etc/shadow ファイルを表示します。ollama-exfil.js): 大規模言語モデル (LLM) を実行・管理するためのオープンソースシステムである Ollama を実行しているホストからファイルを流出させます。ブログ記事 post を参照してください。html/payloads) を確認してください。