Amazon Web Services — Route 53 Pollution issues
Amazon Route 53 の権威サーバーとの終わりなき闘いの記録である。
[追記]いわゆるガチャ方法ではない効率的な手法を考えられたので、後日追記します。
結論
ある条件で確率的に、AWSで管理されている第三者のドメインネームに対して、攻撃者がDNSレコードとホスト名を登録することが出来る欠陥の再現性がとれた。私の解釈としては厳密なニュアンスは、ドメインネームの乗っ取りではなく、警備員のいないオフィスビルに侵入して社員のふりをする偽物といったところだろうか。
経緯
いつかお会いしたいが、面識はないものの興味深い研究をされている、ある教授(浸透いうな先生)の挑戦状が公開されたので、チャレンジした。
設問
第三者が管理しているドメインネームに対して、サブドメインを作成することが出来るか、というもの。攻撃すること自体は管理者が公認している。
もう少し具体的に。おとり用のドメインネームに対してサブドメインを作成し、そのサブドメインにTXTレコードを追加せよ、というゲーム。
前提
DNSなんもわからん。いやまあ多少は知っているけれども。それはさておき、中途半端な知識レベルです。
教授の直近の投稿と勘から、lame delegation 関係であることはすぐに気づいた。Google 検索で教授のペーパー「共用権威サーバの脆弱性」を発見し、失礼ながらかいつまんで読んだ。
これで抽象的な概念から、具体的にどうしたら良いかが掴めた。
あとはAWSのアカウントをサインアップするところからだ!AWSは今まで業務以外のプライベートでは使ったことなかったので、これがきっかけになるとは思いもよらなかった。
攻撃手法(後日黒塗りは消します)
[2025/03/26]チャレンジが現在進行中であるため、核心の部分は黒塗りにします。
本セクションにおいて、各技術的な説明は省略します。本稿では簡単に出来る手法を紹介します。
1. 標的にするNSレコードを調査
下記のdigコマンドでNSレコードを問い合わせる。
dig NS www.sub.internat.jpdigの結果より下記の回答がかえってきた。
;; ANSWER SECTION:
www.sub.internat.jp. 600 IN NS ns-191.awsdns-23.com.
www.sub.internat.jp. 600 IN NS ns-948.awsdns-54.net.
www.sub.internat.jp. 600 IN NS ns-1257.awsdns-29.org.
www.sub.internat.jp. 600 IN NS ns-1843.awsdns-38.co.uk.回答より攻撃対象のAmazon Route 53のNSレコードのFQDNを得た。これらのFQDNが標的になる。
2. Route 53で攻撃対象のホストゾーンの作成
結構説明がすっ飛んでいるが、まあ、みなさん分かってる想定で書いています。
今回、私は攻撃対象のドメインネームのサブドメインはwww18にしたので、ホストゾーンの作成画面で、単純にそのFQDNを入力して作成する。
3. お祈り(仮称)
Amazon Route 53のホストゾーンの作成時は、■■■■■■■■■■■■■■という仕様のため、手順1の■■■■■■■■■■■■■■と■■■■■■■■■■■■■■が■■■■■■■■■■■■■■でなければ、■■■■■■■■■■■■■■。
察しが良い人はもうお気づきかもしれないが、この仕様が問題の部分であり悪用するポイント。
ホストゾーンの作成後、■■■■■■■■■■■■■■を確認して、■■■■■■■■■■■■■■であれば、■■■■■■■■■■■■■■が、■■■■■■■■■■■■■■であれば、■■■■■■■■■■■■■■を■■■■■■■■■■■■■■するか、再度■■■■■■■■■■■■■■して、■■■■■■■■■■■■■■であることを確認する。
4. 汚染
通常通りTXTレコードを追加する。
5. TXTレコードの確認
一つは手元の端末のdigコマンドで、もう一方はWebベースのdigツールでTXTレコードがインターネット上で引けるか確認する。
簡単に下記のdigコマンドで確認する。
dig TXT www18.sub.internat.jp手元のターミナル上では、上手くいったようだ。
次に、Web dig toolでインターネット上から複数のネームサーバーが、私のTXTレコードをかえしてくれるかどうか確認する。
こちらも上手くいった。
以上の結果から、第三者の私が勝手に追加したTXTレコードが、インターネット上の主要なネームサーバーで引けるということが確認出来た。
ここでは下記の文字列をTXTレコードに追加した。
Twitter: @reinforchuこれでゲームオーバーです。
追加課題
先生にこのこと、ポストすると追加課題が降ってきた。
実際、教授のペーパー読んで理解して何するか着手して攻略するまで、30分とかからなかった。本当に単純で簡単な手法である。
やってしまった。
巻末
いつか温泉いきたいです。
あと、別の話ですが個人的にIDN-Spoofに関しての調査や研究をやっているので、手前味噌ですがこちらの記事もおすすめです。