メインコンテンツへスキップ
  1. 記事/

DNSを使ったドメイン名からのOSINT - 入門編

Ixonae
著者
Ixonae
目次

注意: この記事はLLMによって英語から翻訳されたものです。正確性については保証いたしかねますので、あらかじめご了承ください。英語の原文はこちら

DNSサーバーはインターネットの柱の一つです。とりわけ、ドメイン名をIPアドレスに変換する機能を提供し、IPアドレスを知らなくてもサービスに簡単に接続できるようにしてくれます。

DNSサーバーとドメイン名が役立つもう一つの用途とは?OSINTです。さまざまな仕組みを通じて、多種多様な有益な情報を得ることができます。この記事では、その情報を取得するいくつかの方法と、それを使って何ができるかを紹介します。まず、WHOISプロトコルの活用方法を見て、次にdigコマンドを使ってDNSエントリから情報を取得する方法を説明します。最後に、過去のデータについて議論し、それを取得するのに役立つサービスをいくつかリストアップします。

この記事は完全に網羅的であることを目指しているわけではなく、いくつかの主要な機能と情報の種類についてのみ取り上げることにしました。SSL証明書、サブドメイン、サイトマップからの情報取得など、ドメイン名に関連するその他のトピックは、今後の記事で詳しく取り上げるかもしれません。

WHOISと所有者情報
#

ドメイン名に関する情報を取得する最もよく知られた方法は、おそらくWHOISでしょう。WHOISは、ウェブサイトの所有者情報を含むデータベースに問い合わせるためのプロトコルです。WHOISはコマンドラインとして使用でき(例:whois domain.tld)、viewdns.info(多数のツールが利用可能)やwho.isなど、Webページからクエリを実行できるオンラインユーティリティも複数あります。

whoisコマンドの結果は通常、非常に詳細です。以下の例は、Facebookのwhoisからの抜粋であり、返される関連データの一部を示しています。

Domain Name: FACEBOOK.COM
Registry Domain ID: 2320948_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.registrarsafe.com
Registrar URL: https://www.registrarsafe.com
Updated Date: 2020-03-10T18:53:59Z
Creation Date: 1997-03-29T05:00:00Z
Registrar Registration Expiration Date: 2028-03-30T04:00:00Z
Registrar: RegistrarSafe, LLC
Registrar IANA ID: 3237
Registrar Abuse Contact Email: abusecomplaints@registrarsafe.com
Registrar Abuse Contact Phone: +1.6503087004
Domain Status: clientTransferProhibited https://www.icann.org/epp#clientTransferProhibited
Registry Registrant ID:
Registrant Name: Domain Admin
Registrant Organization: Facebook, Inc.
Registrant Street: 1601 Willow Rd
Registrant City: Menlo Park
Registrant State/Province: CA
Registrant Postal Code: 94025
Registrant Country: US
Registrant Phone: +1.6505434800
Registrant Phone Ext:
Registrant Fax: +1.6505434800
Registrant Fax Ext:
Registrant Email: domain@fb.com
Registry Admin ID:
[...]
Registry Tech ID:
[...]
Name Server: C.NS.FACEBOOK.COM
Name Server: B.NS.FACEBOOK.COM
DNSSEC: unsigned
URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/
>>> Last update of WHOIS database: 2021-09-22T01:23:51Z <<<

facebook.comというドメインを調査している場合、以下の情報を活用できます:

  • ドメイン名がregistrarsafe.comで登録されていることがわかります。このドメインに関連するものの削除を要請する理由がある場合、提供されている連絡先情報を使ってレジストラに苦情を申し立てることができます。
  • ドメインがいつ作成されたか、いつ期限切れになるか、最後に更新されたのはいつかがわかります。この情報にも複数の用途があります。例えば、メールアドレスが正当なもの(つまり、スパムなどに使われていないもの)かどうかを判断しようとする場合、10年前に登録されたドメインに属するメールアドレスは、10時間前に登録されたドメインに属するメールアドレスと比べて、スパムである可能性が低いと主張できるかもしれません。
  • 登録者が誰で、どのように連絡を取れるかがわかります。ただし、このフィールドは注意して扱う必要があります。ドメインレジストラは通常、登録者の身元確認を行わないため、まったく不正確な情報が登録されている可能性があります。また、顧客がレジストリから自分の情報を非表示にできるレジストラも数多く存在します。
  • どのサーバーがDNSゾーンをホスティングしているか(つまり、このドメインの各種DNSエントリを保存するサーバー)がわかります。

この情報のもう一つの素朴な活用法としては、2つのドメインが同じ組織によって運営されていることを証明しようとする際に、whoisに同じ情報が含まれていることは、その見解を裏付けるポイントの一つになります。

DNSクエリの活用
#

WHOISリクエストは、ドメインの所有者やドメインの登録場所・時期に関する一般的な情報を提供してくれるため優れていますが、DNSエントリを調べることで、さらに多くの情報を取得することが可能です。

Linux/macOSでは、digコマンドを使って情報を収集できます。構文は非常にシンプルです:

  • dig MX domain.tld は、このドメインのメールを受信するように設定されているサーバーを表示します。
  • dig MX sub.domain.com @1.1.1.1 は前の例と同じことを行いますが、具体的にDNSサーバー1.1.1.1にこの情報を問い合わせます。

DNSの詳細には踏み込みませんが(詳しく知りたい場合はCloudflareの優れたドキュメントがあります)、さまざまなユースケースに対応するために設定できるDNSエントリのタイプが複数あります。最も一般的なものは以下の通りです(このページには、既存のすべてのタイプのより網羅的なリストが掲載されています):

  • A:ドメインに関連付けられたIPv4アドレスを取得する
  • AAAA:Aと同じだがIPv6用
  • CNAME:エイリアスを定義する。例えば、domain.tldA DNSエントリがあり123.123.123.123を指している場合、CNAMEエントリを作成してwww.domain.tlddomain.tldを指すようにできます。こうすることで、サービスに使用するサーバーを変更したい場合、domain.tldのエントリのみを編集すれば済みます。
  • NS:ドメインのDNS設定を保存するネームサーバーを定義する
  • MX:メールサーバーのアドレスを取得する
  • TXT:説明テキストを共有する

このリストの最初の4項目も有用ですが、最も興味深いタイプはMXとTXTです。

MX DNSエントリタイプ
#

digコマンドによるMXクエリは、以下の例のような結果を返します(dig MX mozilla.comを実行した場合)。

;; ANSWER SECTION:
mozilla.com.		60	IN	MX	5 alt1.aspmx.l.google.com.
mozilla.com.		60	IN	MX	5 alt2.aspmx.l.google.com.
mozilla.com.		60	IN	MX	10 aspmx3.googlemail.com.
mozilla.com.		60	IN	MX	1 aspmx.l.google.com.

情報量はそれほど多くありませんが、Mozillaにはメールを受信できる複数のサーバーがあることがわかります。

  • aspmx.l.google.com(優先度値1)
  • alt1.aspmx.l.google.comalt2.aspmx.l.google.com(優先度5)
  • aspmx3.googlemail.com(優先度値10)

優先度は、メールをどのサーバーに送信するかを決定するために使用されます。優先度の数値が低いほど、優先度が高くなります。実際には、Mozillaにメールを送信しようとすると、メールプロバイダーはまずaspmx.l.google.comに連絡を試み、それがうまくいかなければalt1.aspmx.l.google.com、それでもうまくいかなければaspmx3.googlemail.comに連絡します。

ここで重要なポイントは、このフィールドによってターゲットに関するより多くの情報を取得できるということです。具体的には、メールの受信にどのサービスを使用しているかがわかります。この例では、MozillaがGoogle Mailを利用していることがわかります。ドメインによっては、より独創的な設定(例:複数のプロバイダーの使用)をしている場合もあり、ドメイン名同士を結び付ける手がかりになることがあります。

TXT DNSエントリタイプ
#

MXエントリタイプと同様に、TXTエントリも有用です。ターゲットが使用しているサービスに関するより多くの情報を取得できるからです。TXTエントリは、サードパーティサービスに対してドメインの所有権を証明する手段としてよく使用されます。

例えば、google.com、twitter.com、apple.comのTXTエントリを問い合わせると、レスポンスに以下の行が含まれていることがわかります(可読性を向上させるために省略しています)。

;; ANSWER SECTION:
google.com.		3600	IN	TXT	"docusign=[code]"
google.com.		3600	IN	TXT	"facebook-domain-verification=[code]"
google.com.		3600	IN	TXT	"google-site-verification=[code]"
google.com.		3600	IN	TXT	"apple-domain-verification=[code]"

;; ANSWER SECTION:
twitter.com.		3600	IN	TXT	"google-site-verification=[code]"
twitter.com.		3600	IN	TXT	"adobe-idp-site-verification=[code]"
twitter.com.		3600	IN	TXT	"atlassian-domain-verification=[code]"

;; ANSWER SECTION:
apple.com.		3600	IN	TXT	"adobe-idp-site-verification=[code]"
apple.com.		3600	IN	TXT	"webexdomainverification.8GVC5=[code]"
apple.com.		3600	IN	TXT	"cisco-ci-domain-verification=[code]"

これにより、GoogleがDocusignを使って契約書に署名している可能性があること、TwitterがAtlassianを使用していること(コードやドキュメントの保存用かもしれません)、TwitterとAppleがAdobe Enterpriseを使用していること、そしてAppleがCisco Webexでビデオ会議を行っていることがわかります。

これらの要素はすべて、ターゲットが何を使用しているかをより深く理解し、さらなる情報を探したり(またはペネトレーションテストを行う場合に悪用を試みるサービスを見つけたり)するための手がかりになります。

過去のデータ
#

ここまでで、ドメインの現在の状態から情報を取得する方法を学びましたが、調査を行う際に役立つもう一つのツールがあります。それが過去のデータです。そのメリットには以下のようなものがあります:

  • WHOISの連絡先情報が現在は非表示になっていても、所有者がドメインを作成した時点では非表示にしていなかった可能性があります。
  • 複数のドメイン名を調査して関連性を見つけようとしている場合、すべてのドメインの過去のデータを調べて、類似のデータが同時に変更されていることがわかれば、良い手がかりになります。
  • ある時点でドメインが何に使用されていたかを把握できます。

過去のデータは非常に価値が高いため、優れたサービスのほとんどは有料です(そして通常、安くはありません)。無料のオプションとしては以下があります:

  • spyse.com:DNSレコードエントリと使用されているサブドメインのかなり広範な履歴
  • whoisrequest.com:ネームサーバーの変更のみを時系列で表示
  • securitytrails.com:過去のDNSレコードデータとサブドメイン
  • osint.sh:過去のWHOISデータ。いくつかの便利なツールもホスティング
  • viewdns.info:便利なツールボックスだが過去のデータは少ない(ある程度、所有者名でドメインを検索できるReverse Whois lookupがある)
  • whoxy.com:無料のWHOIS履歴(レート制限あり)
  • whoisology.com:登録メンバー向けに一部無料のWHOIS履歴
  • whoisxmlapi.com:デモで一部のWHOIS履歴を取得可能

さらに、WayBack Machineや類似のサービスを活用してDNSツールボックスにクエリを実行することも可能です。例えば、このリンクでは、2013年時点のFacebookのWHOISを確認できます。この方法の欠点は、広く利用されているサービスに属さないドメイン名はアーカイブされている可能性が低いことです。


クレジット:
#