この記事はCTFのWebセキュリティ Advent Calendar 2021の13日目の記事です。
本まとめはWebセキュリティで共通して使えますが、セキュリティコンテスト(CTF)で使うためのまとめです。
悪用しないこと。勝手に普通のサーバで試行すると犯罪です。
DNS
- DNSの歴史
- DNSの仕組みの基本を理解しよう:DNSの仕組みと運用(1) - @IT
- ここが詳しい。hostsファイルから説明されている
- インターネットを支え続ける老舗プロトコル、「DNS」30年超の歴史を振り返る【IETFトピックス2016-17】 - INTERNET Watch
- ここも色々書いてある
- DNSの仕組みの基本を理解しよう:DNSの仕組みと運用(1) - @IT
- 攻撃・テク一覧
- DNS Rebinding
- OOB抽出
- ドロップキャッチ
- CTFでは使え無さそうだけど
- 使われていた有名なドメインが手放されたときに、それをアタッカーが再取得して、有害サイトへのリダイレクトなどに使用すること
- 例)https://twitter.com/tiketiketikeke/status/1281616549690740738
- Subdomain Takeover
- 脆弱性
- DNSpooqの脆弱性詳細と攻撃コード解説 - knqyf263's blog
- dnsmasqというソフトウェアに関する7つの脆弱性をまとめたもの
- DNSpooqの脆弱性詳細と攻撃コード解説 - knqyf263's blog
- dnsからCNAMEを一括lookupしてくれるやつ
- TLD
- オープンリゾルバ
- 不適切な設定などにより、インターネット上の不特定の利用者からの再帰問い合わせを受け付けてしまうDNSサーバ
- Domains having Hidden Open Resolvers
DNS Rebinding
- できること
- SSRFのバイパスに使える。例えば、「名前解決して127.0.0.1じゃないことを確認→実際に使用」とした場合、1回目で127.0.0.1以外を返して2回目で127.0.0.1を返せばバイパス可能
- same origin policyを騙す
- これもSSRFのチェックすり抜けと同様
- 実行時の同一オリジンポリシーチェックを正しいDNSで乗り切ったあと、実際に使う2回目以降を悪意のあるものにする
- https://blog.tokumaru.org/2007/11/dns-rebinding.html
- 資料
- DNS Rebindingを悪用してインターネットからプライベートネットワークへの攻撃 - 忙しい人のためのサイバーセキュリティニュース
- DNS Rebinding ~今日の用語特別版~ | 徳丸浩の日記
- 徳丸さんの絵も分かりやすい
- 資料 - ここに色々対策が書いてある
- DNSリバインディング対策 - Qiita
- ここも対策?
- CTFで使えるサイト
- 問題
OOB抽出
- 表記について
- リアルワールドバグハンティングではOOB抽出と記載されていた
- Web上では、OOB ExploitationやらOOB Exfiltrationやら曖昧
- 手法
- Lab: Blind OS command injection with out-of-band data exfiltration | Web Security Academy
Subdomain Takeover
- どういった悪いことが起こるか
- 正規のドメインにアクセスしたのに、詐欺サイトなどへ飛ばされてしまう
- 何が起きている?
- 脆弱なサイト一覧
- ドメイン毎にSubdomain Takeoverができるかどうかが分かるようだ
- EdOverflow/can-i-take-over-xyz: "Can I take over XYZ?" — a list of services and how to claim (sub)domains with dangling DNS records.
- indianajson/can-i-take-over-dns: "Can I take over DNS?" — a list of DNS providers and how to claim (sub)domains via missing hosted zones
- danielmiessler/SecLists: SecLists is the security tester's companion. It's a collection of multiple types of lists used during security assessments, collected in one place. List types include usernames, passwords, URLs, sensitive data patterns, fuzzing payloads, web shells, and many more.
- インシデント
- 参考
tips
- ドメインを使ってフィルター回避
- asc war games Filtration Phase. This is the Qualification phase for ASC… | by Mohamed R. Serwah | Aug, 2020 | Medium
127.0.0.1
を踏ませたいが、フィルタリングされている場合がある- この時に、適当にドメインを取って、
127.0.0.1
を指すようにすれば、フィルタリングを回避しつつlocalhostを強制できる
- DNSのTXTレコードに情報があるかもしれない
- windowsなら
nslookup -q=txt [domain]
で見れる
- windowsなら
example.com
とexample.com.
は同じドメインとして処理される(処理系によるかも。名前解決自体はどちらも同じ結果になる)- 特殊なTLDをwhoisするときは特殊なサイトを使う必要があるっぽい(?)
- TLDである.localについて
- レジストラが狙われた事件
- digコマンド
- 最強
dig axfr cronos.htb
axfrをつけるとたどって解決してくれる - とりあえずこれ
- ドメインから
dig [domain] any any +multiline
- IPから
dig any any -x [ipaddress]
- ドメインから
dig @[dns ip] domain q-type q-class q-opt
@[dns ip]
option. DNSサーバを指定したい時q-type
option. 何を取得してくるか- any 全部
- a(default), mx, ns, soa, hinfo, axfr, txt
q-class
option. どう取ってくるか?- any 全部
- in(default), hs, ch
q-opt
+trace
ルートDNSから確認を行う。たくさん出てくるから読み方勉強せんなん+cmd
これは標準でつくっぽい+dnssec
DNSSECで問い合わせをする+multiline
これをつけると一部見やすくなる+short
最小限だけ表示するので結果を使いたいときに便利
- 最強
- SRVレコード
dig _http_._tcp.[domain] srv
で検索できる- httpとかtcpを変えると色々見つかる
- ドメインを検索したいときにCTログが使える
- IDNホモグラフアタック用ドメイン生成ツール EvilURL | うざ夫のうざブログ