## page was renamed from DNS/GhostDomainNames/crimson ## page was renamed from DNS/crimson 以下の課題をtweetしたところ、takhammさんからunboudでやってみたというレポートがありましたので、 内容をコピーしておきます。議論をお願いします。-- ToshinoriMaeno <> <> = 課題 = {{{ ちょっと(?)設定に問題のあるドメインを作ってみました。 www.ghost2.qmail.jp のAレコードが検索できるか。どういう値が返るか、試してみていただけますか。 wiki: DNS/ghost2 参照 }}} [[DNS/ghost2]] 以下に設定などの説明があります。 == 議論 == [[/議論]] == レポート == https://twitter.com/#!/takhamm/status/173101654982410240 #takhamm の報告 (ありがとうございます。-- ToshinoriMaeno <>) {{{ あんな方法で毒入れできるのがにわかに信じがたいので、できれば別環境での追試をしていただければありがたいです。 }}} とtweetされています。 [[/改訂版]] ---- = unboundでのGhost Domain Names再現試験 = == 前提 == * 本試験で使用しているunboundのバージョンは1.4.16です。 * 試験環境はFreeBSD 9.0-STABLE (amd64)を使用しています。 * 毒入れ作業にsudoを使用します。(インストールしていない場合はrootでログインしておいてください) * unbound-controlでキャッシュのフラッシュをします。 unbound.confのremote-control:セクションにcontrol-enable: yesの設定をしておいてください。 * 端末を2台(対象Aレコード監視用および毒入れ用)使用します。 == 端末1: 毒入れ作業 == 毒入れ用コマンド * キャッシュサーバの全キャッシュをクリアし、 * キャッシュサーバにwww.ghost2.qmail.jpのAレコードを再帰問い合わせし、 * キャッシュサーバにghost2.qmail.jpのNSレコードを再帰問い合わせする。 攻撃シナリオとしては手順3のNSレコード問い合わせが直接飛ぶところに無理がありそうである。 {{{ $ sudo unbound-control reload; dig -t a www.ghost2.qmail.jp; dig -t ns ghost2.qmail.jp }}} 毒入れに成功した場合はdig -t ns ghost2.qmail.jpの結果として以下の様に * a.ns.ghost2.qmail.jp * b.ns.ghost2.qmail.jp の二つのレコードがANSWER SECTIONに返ってくる。 返ってこなければ失敗なので毒入れ手順を繰り返す。 "毒入れ成功" {{{ ;; ANSWER SECTION: ghost2.qmail.jp. 2147483647 IN NS a.ns.ghost2.qmail.jp. ghost2.qmail.jp. 2147483647 IN NS b.ns.ghost2.qmail.jp. ;; ADDITIONAL SECTION: a.ns.ghost2.qmail.jp. 600 IN A 131.112.32.2 b.ns.ghost2.qmail.jp. 600 IN A 202.41.218.242 }}} == 端末2: www.ghost2.qmail.jpのAレコード監視 == 監視用コマンド
{{{ $ sh $ while true; do; dig -t a www.ghost2.qmail.jp; sleep 1; done }}} 毒入れが成功している場合、監視用端末では * Ghost Domain Namesの効果が発現した状態(Aレコード=59.106.175.222) と * 発現していない状態(Aレコード=202.41.218.242) がwww.ghost2.qmail.jpのAレコードのTTLのexpire後、 再度Aレコードを問い合わせるタイミングで切り替わる。(どちらの状態に遷移するかはランダムであると思える) == GDN達成 == 毒入れが成功して131.112.32.2からAレコードを検索した状態。(GDN達成) * Aレコードは59.106.175.222を示す。 * AUTHORITY SECTIONにはa.ns.ghost2.qmail.jpおよびb.ns.ghost2.qmail.jpの情報が返されている。 * ADDITIONAL SECTIONにもa.ns.ghost2.qmail.jpおよびb.ns.ghost2.qmail.jpの情報が返されている。 (AUTHORITY SECTIONと内容が同じ) {{{ ; <<>> DiG 9.8.1-P1 <<>> -t a www.ghost2.qmail.jp ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64584 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ;www.ghost2.qmail.jp. IN A ;; ANSWER SECTION: www.ghost2.qmail.jp. 299 IN A 59.106.175.222 ;; AUTHORITY SECTION: ghost2.qmail.jp. 2147480941 IN NS a.ns.ghost2.qmail.jp. ghost2.qmail.jp. 2147480941 IN NS b.ns.ghost2.qmail.jp. ;; ADDITIONAL SECTION: a.ns.ghost2.qmail.jp. 298 IN A 131.112.32.2 b.ns.ghost2.qmail.jp. 599 IN A 202.41.218.242 ;; Query time: 0 msec ;; SERVER: 192.168.1.253#53(192.168.1.253) ;; WHEN: Sat Feb 25 09:29:01 2012 ;; MSG SIZE rcvd: 120 }}} == GDN未達成 == 毒入れが成功しているが202.41.218.242からAレコードを検索しているため、Aレコードの変化が無い状態。(GDN未達成) * Aレコードは202.41.218.242を示す。 * AUTHORITY SECTIONにはa.ns.ghost2.qmail.jpおよびb.ns.ghost2.qmail.jpの情報が返されている。 * しかしADDITIONAL SECTIONはns.ghost2.qmail.jpおよびa.ns.ghost2.qmail.jpの情報が返されている。 (AUTHORITY SECTIONと内容が異なる) {{{ <<>> DiG 9.8.1-P1 <<>> -t a www.ghost2.qmail.jp ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40876 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ;www.ghost2.qmail.jp. IN A ;; ANSWER SECTION: www.ghost2.qmail.jp. 204 IN A 202.41.218.242 ;; AUTHORITY SECTION: ghost2.qmail.jp. 2147479945 IN NS a.ns.ghost2.qmail.jp. ghost2.qmail.jp. 2147479945 IN NS b.ns.ghost2.qmail.jp. ;; ADDITIONAL SECTION: ns.ghost2.qmail.jp. 204 IN A 202.41.218.242 a.ns.ghost2.qmail.jp. 504 IN A 131.112.32.2 ;; Query time: 0 msec ;; SERVER: 192.168.1.253#53(192.168.1.253) ;; WHEN: Sat Feb 25 01:38:31 2012 ;; MSG SIZE rcvd: 120 }}} ----- = 間違いの修正 = GDN達成時のdigコマンドのキャプチャを間違えてました。思いっきり権威サーバに直接問い合わせしてますね。 オリジナルのhtmlに修正をかけたものを [[attachment:gdn-20120225-2.html]] に置いておきました。 追試をされたい場合必要なら当方のunbound.confも提供いたしますので、twitterで@takhammまでお気軽にどうぞ。