本サイトは、快適にご利用いただくためにクッキー(Cookie)を使用しております。
Cookieの使用に同意いただける場合は「同意する」ボタンを押してください。
なお本サイトのCookie使用については、「個人情報保護方針」をご覧ください。

最新情報

2023.08.22

ドメインやサブドメインを調査する話(前編)

気がついたら数年ぶりのBlog投稿でした。お手柔らかにお願いします。

さて、今回取り上げるのは、ドメインやサブドメイン、保有ネットワークを調査する手法(相手方に影響を与えない縛りです)を思いつくままに紹介していきます。ドキュメントとして纏まっているものもあまり見かけなかったので、重い腰を上げて書いてみました。この他にもこんな方法がある!などフィードバックを頂ければとても喜びますので、是非よろしくお願いします。

目次

<後編>

サブドメインを調査する方法  ・IPアドレスを起点にサブドメインを探す   ・公開ポートへのアクセス(Webポート)     ・<通常コンテンツの返却>     ・<エラーページの返却>     ・<リダイレクト>   ・公開ポートへのアクセス(Webポート以外)   ・証明書の確認     ・<Webサーバの場合>     ・<SSL/TLSで保護されたプロトコルの場合>     ・<プロトコル内で暗号化(STARTTLS)の場合>   ・PTRレコード   ・公開情報を用いた調査(Passive型の検索エンジン)     ・<Robtex>     ・<BGP Toolkit>     ・<Spyonweb>     ・<Microsoft Defender Threat Intelligence>     ・<Shodan>     ・<Censys>     ・<Bing search>  ・ドメインを起点にサブドメインを探す   ・検索エンジンを使った調査、GoogleDorks、BingDorking     ・<site演算子>     ・<link演算子>   ・Webサイトのクローリング     ・<robots.txt>     ・<crossdomain.xml>     ・<security.txt>   ・WebArchiveから探す   ・Certificate Transparency     ・<crt.sh>   ・PassiveDNS     ・<Microsoft Defender Threat Intelligence>  ・サブドメイン列挙サービスの利用   ・ゾーン転送   ・SRVレコード

ドメイン・ネットワーク帯を調査する手法

ドメインやネットワーク帯(IPアドレス)から特定する必要があるケースはあまり多くないかもしれませんが、ペネトレーションテストでの対象の洗い出し(Attack Surface)や、組織で把握しきれていない情報資産(シャドーIT)の洗い出しなどで調査が必要な場合があります(OSINTの一環)。こういったケースにおいては、ドメインやネットワーク帯(IPアドレス)の洗い出しも必要となってきます。

では具体的に見てみます。

所有しているドメインやネットワーク帯(IPアドレス)を調査するためには、起点とする何かしらの情報が必要となります。今回は起点の情報としては、会社名やコーポレートサイトのURL、コーポレートのドメインとして、これらの情報を使って情報を収集していきます。

ドメインの調査

ドメインの登録情報を調査する方法の1つとしてwhoisコマンドによる調査があります。whois情報にはドメインを取得する際に登録した情報が登録されており、whoisコマンドによって情報を取得することができます。

# whois mbsd.jp [ JPRS database provides information on network administration. Its use is ] [ restricted to network administration purposes. For further information, ] [ use 'whois -h whois.jprs.jp help'. To suppress Japanese output, add'/e' ] [ at the end of command, e.g. 'whois -h whois.jprs.jp xxx/e'. ]
Domain Information:
[Domain Name] MBSD.JP
[Registrant] Mitsui Bussan Secure Directions,inc.
[Name Server] ns1-05.azure-dns.com
[Name Server] ns2-05.azure-dns.net
[Name Server] ns3-05.azure-dns.org
[Name Server] ns4-05.azure-dns.info
[Signing Key]
[Created on] 2004/06/11
[Expires on] 2023/06/30
[Status] Active
[Last Updated] 2022/09/01 11:35:38 (JST)
Contact Information:
[Name] Mitsui Bussan Secure Directions, Inc. [Email] it@mbsd.jp [Web Page] [Postal code] 103-0013
[Postal Address] Chuo-ku
1-14-8 NihonbashiNingyo-Cho
JP Suitengumae Bldg. 6F
[Phone] 03-5649-1961
[Fax] 03-5649-1970

色々と情報がでてきますね。上記ではドメインの登録者情報(Registrant)として会社名(Mitsui Bussan Secure Directions,inc.)が取得できました。この情報を使ってまずはjpドメインを調査してみます。jpドメインはJPRSにて管理されていますので、JPRS whoisに問い合わせることで更なる情報を取得することができます。

JPRS whois(https://whois.jprs.jp/)

JPRS whoisでは、ドメイン名の登録者情報の検索が可能です。検索キーワードとして、「ドメイン名情報」や「ドメイン名情報(登録者名)」などが提供されており、先程取得した会社名を「ドメイン名情報(登録者名)」で検索すると以下のように、取得した会社名で登録されているjpドメインの一覧を得ることができます。

jprs_whois_1.png

Mitsui Bussan Secure Directions,inc.で検索した結果

しかしながら、この検索キーワードは「完全一致」である必要があります(悪用の観点を考えると正しい挙動ですが)。そのため、日本語で検索すると違う結果が得られたりもしますし、英語でもスペースの有無などで検索結果が変わります。

jprs_whois_2.png

日本語(三井物産セキュアディレクション株式会社)で検索した結果

検索結果を確認すると、Inc.の前にスペースがある場合とない場合と言った具合に、英語の表記が微妙に異なることが確認できます。新たに得られたMitsui Bussan Secure Directions, Inc.で検索することで、さらなるドメインを取得できる場合があります。

jprs_whois_3.png

日本語検索で得られた表記ゆれのMitsui Bussan Secure Directions, Inc.で検索した結果

実際の現場では、こういった表記ゆれをどれだけ想像できるか、少ないコストでドメインを洗い出せるか、というエスパースキルも必要そうです。この他にも、合併や分社を想定し過去の会社名で検索する、システムの業務委託先や関連子会社などの会社名から検索するなどの試行錯誤も必要ですし、検索の結果で得られた他ドメインの登録情報を確認し、情報を再帰的に検索するなどを行うことで、保有しているドメインを洗い出して行く必要があります。JPRS whoisの検索では、検索可能な項目が限られますが、PassiveDNSサービスなどでは、他のフィールド(住所、電話番号、Name Serverなど)の情報を検索できるものもあります。

ただし、お名前.comのようなドメイン取得代行業者による登録やWhoisガードによる情報の秘匿、資本関係のない業務委託先の情報で取得されるケースなどもありこれらの手法が万能ではないことも理解しておく必要があります。

ICANN Registry Listings(https://www.icann.org/resources/pages/listing-2012-02-25-en)

ここまでJPRS whoisでの調査を例にあげて紹介しました。.jpドメイン以外についても、TLDごとに検索のインターフェースや検索可能な範囲等が異なるものの、類似の手法で情報の収集やドメインの探索を行うことが可能です。検索可能なWHOIS Directory Serviceについては、ICANNのサイトにまとまっています。

icann_1.png

WHOIS Directory Service一覧

ネットワーク帯(IPアドレス)の調査

ここまでは、所有しているドメイン情報を調べるための方法ですが、次は、ネットワーク帯を特定するための調査方法です。IPアドレスをベースにした使った検索は、クラウド化が進み、思うような結果が得られないケースも増えましたが、オンプレ環境を特定する場合などには引き続き有効な方法です。

JPNIC whois Gateway(https://www.nic.ad.jp/ja/whois/ja-gateway.html)

日本国内で割り当てられているIPアドレスはJPNICにて管理されており、JPNIC whois Gatewayでは、IPアドレスに紐づく登録情報の検索が可能です。検索キーワードとして、IPアドレスやAS情報などが用意されており、取得したドメインやサブドメインのIPアドレスを検索することで、保有しているネットワーク帯やIPアドレスの割当情報を得ることができます。なお、過去のインターフェースでは、組織名(AS情報)で検索することも可能でしたが、現在はインターフェースが削除されています。

jpnic_whois_1.png

JPNIC whois Gateway検索画面

では、試しに有名なWIDEプロジェクトを例に見てみます。まずは、WIDEプロジェクトで公開しているサイト(https://www.wide.ad.jp/)で使用されているIPアドレスを確認します。

# dig +noall +answer www.wide.ad.jp www.wide.ad.jp. 228 IN A 203.178.139.57

結果からIPアドレスは203.178.139.57であることが確認できます。こちらの情報をもとにJPNIC whois Gatewayの「ネットワーク情報(IPアドレス)」で検索すると以下のような結果が得られます。

jpnic_whois_2.png

取得したIPアドレスで検索した結果

この結果から、203.178.139.57に割り当てられているネットワーク帯は203.178.136.0/21で、WIDEプロジェクトに割り当てられているネットワーク帯であること(保有していること)が確認できます。(ただし、このネットワーク帯にサーバ等が存在するかここからはわかりません)。さらに情報を確認していくと、このネットワーク帯はWIDE インターネット 203.178.128.0/17から割り当てられたネットワークであることが見て取れます。説明の詳細は割愛しますが(アドレス空間管理について詳しく知りたい方はJPNIC記事を参照してください)、割り当てられたネットワーク帯は分配することができ、ネットワークの割り当てを行った際に情報を登録している場合には、情報が表示されるため特定することができます。

しかしながら、情報の登録まで行っているケースは多くないため、必ずしも企業が保有しているネットワークを判別することはできませんが、調査として有効な場合があります。また、JPNIC whois Gatewayの検索ではJPNICが管理/分配しているIPアドレスしか検索が行えませんので、検索を行う際は、適切なレジストリで検索を行う必要があります。

■RIRWHOISサーバ

・APNIC WHOIS(whois.apnic.net)
・ARIN WHOIS(whois.arin.net)
・RIPE WHOIS(whois.ripe.net)
・LACNIC WHOIS(whois.lacnic.net)
・AfriNIC WHOIS(whois.afrinic.net)

BGP Tool kit(https://bgp.he.net/)

このIPアドレスを使ってネットワーク帯を探す方法ですが、次に少し別の?アプローチでも見てみます。当時のJPNIC whois Gateway組織名(AS情報/AS番号)で検索することができましたので、所有するネットワーク帯を一覧で表示するといったことも簡単でしたが、現在はインターフェースが閉じられているため、AS情報(AS情報の詳細はJPNIC記事を参照してください)や各ISP事業者の経路情報から追いかけて、ネットワーク帯を調査する必要があります。このAS番号ですが、同じポリシーで管理されるネットワーク帯の塊になり、BGPなどのルーティングプロトコルで接続される単位となっています。そのため、同じAS番号であれば、同一組織が管理している可能性が高いものとなっています。

先程のWIDEプロジェクトの例であれば、203.178.139.57を検索することで、AS番号を得ることができます。

bgp_1.png

IPアドレスからAS番号を取得する例

得られたAS番号で更に検索することで、先程のネットワーク帯の他に管理しているネットワーク帯の一覧を取得することができます。なお、実際には割り当てられたネットワーク帯を分配している可能性もあるため、全て所有していることは保証できない点は考慮しておく必要があります。

bgp_2.png

AS番号をもとに管理しているネットワーク帯を取得する例

その他の調査

ここまでドメインやネットワーク帯を調査する色々な手法を紹介してきましたが、更に精度を上げるための情報収集や調査方法も存在します(ただし結果が出るとは限りません)。

検索エンジンを使った調査

一番単純な手法は、検索エンジンに会社名を入力し結果を確認することです。

当然、結果には関係の無い情報も多数含まれてきますが、「三井物産セキュアディレクション株式会社 -site:mbsd.jp」と言ったように、既に判明しているドメインを除外しながら検索を続けることで、新しい情報が見つかるケースがあります。

この他にも、Webサイトのフッター等にあるコピーライト表記を狙って「Mitsui Bussan Secure Directions, Inc. All rights reserved.」というキーワードで検索することも有効だったりしますし、異なる検索エンジン(Bingなど)で試すことでも違う結果が得られたりします。

etc_search_1.png
実際のGoogle検索でSecu-ciseAIディフェンス研究所が見つかった例

etc_search_2.png

実際のBing検索でCAAVが見つかった例

Webサイトのクローリング

Webサイトを確認することも大きな収穫を得られる可能性があります。

特に、会社概要ページには、「グループ会社情報」や「沿革」、「提供サービスサイト」の情報などが記載されていることが多く、調査のためのキーワードを多く収集することが可能です。

例えば弊社の沿革であれば、過去「E3ネットワークス株式会社」と合併しており、「E3ネットワークス株式会社」名義で取得または管理され続けているドメインやネットワーク帯が存在しないか、過去使用していたドメインは何であるかといった調査も有効です。

etc_crawling_1.png

会社の沿革画面

過去使用していたドメインは検索エンジンを駆使して調べたり、WebArchiveなどで過去のサイトを覗いてみたりすることでも新たな発見があるかもしれません。

etc_crawling_2.png

過去使用していたドメインの過去サイト(WebArchive)

また、サイトマップやrobots.txt、security.txt、sitemap.xml、crossdomain.xmlのようなファイルから情報を得られることもあるため、合わせて見ておきたいところです。これらのファイルはサブドメインの調査にも使えます(後編にて紹介します)。

Google AdSense

クローリングの一環でGoogle AdSenseの情報を確認することも有益です。

Google AdSenseでは、AdSense アカウントに一意に割り当てられる識別子である、サイト運営者用のID(パブリッシャーID)が割り当てられる仕様になっており、例えば以下のような広告コードに埋め込まれています。

<script async src="https://pagead2.googlesyndication.com/
pagead/js/adsbygoogle.js"></script>
<!-- leaderboard -->
<ins class="adsbygoogle"
style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-xxxxxxxxxxxxxxxx"
data-ad-slot="1234567890"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>

Google AdSenseヘルプに記載されたサンプルコード

パブリッシャーIDは、一意に割り当てられる識別子であり同じ管理者のサイトであれば、同じパブリッシャーIDが設定されている可能性が高いため、このIDをキーに検索することで、所有しているWebサイトを列挙(ドメイン/サブドメインの収集)が可能です。

一昔前であれば、検索エンジン(Google)でパブリッシャーIDを検索すると検索結果に並んで表示されるというありがたい?仕様でしたが、現在では、表示されなくなっています。

しかしながら、パブリッシャーIDを検索できるSpyOnWebのようなサイトもあるため引き続きドメインやサブドメインを収集できる可能性があります。

etc_googlead_1.png

SypOnWebでパブリッシャーIDを検索した結果の例

公的データベースの活用

特に、日本の企業であれば、官公庁が提供するデータベースを見ることで有益な情報を得られる場合があります。

gBizINFO(https://info.gbiz.go.jp/)

例えば、経済産業省が提供している「gBizINFO」であれば、会社名をKeyに法人情報を取得できます。同じ会社名や似た会社名の企業が持つサイトに遭遇した際、ここに記載される代表者名や住所の情報などから、最終的な正否判定ができる場合があります。

etc_public_1.png

法人基本情報を検索した結果の例

公開情報調査(Passive型の検索サービス)

とりあえず簡単にドメインやIPアドレスに関して纏まった情報が見たいときには、情報をDB化して提供しているサービスを利用することも有効です。ただし、使う検索エンジンがPassive型であるのか、オンアクセス型(検索クエリを投げたタイミングで調査が発生するもの)であるかは適切に見極める必要があります。筆者は実際にオンアクセス型のツールによりサービスが停止したことがあるという事例も耳にしたことがあり、契約に基づかない調査の場合は特に法律に抵触する可能性があるため注意が必要です。

Robtex(https://www.robtex.com)

IPアドレスやドメイン/サブドメイン、AS番号、DNS情報などのまとまった情報を提供しているサイトの一例としてとして、Robtexのようなサイトがあります。Robtexでは、NSサーバの情報などのDNSに関する情報やAS情報を含むルーティングに関する情報など様々な情報を見ることができます。サブドメインの探索方法は後編にて紹介しますが、一部のサブドメインについてはここからも取得することも可能です。

etc_passive_1.pngドメインをもとに検索した場合の例

etc_passive_2.png

IPアドレスをもとに検索した場合の例

PassiveDNS

PassiveDNSサービスの情報を検索することでも、ドメインの洗い出しを行うことができます。PassiveDNSサービスにより提供される検索可能なフィールドは異なりますが、会社名やメールアドレスで検索可能なものや、住所、電話番号などwhois情報で返るレコードを検索できるものなど様々です。また、過去のデータを検索するといったことも可能なサービスもあります。

viewdns.info(https://viewdns.info/)

viewdns.infoはReverse whoisサービスを提供しているサイトの1つで、無償利用が可能です。検索可能なフィールドは登録者名(≒会社名)やメールアドレスになっています。

etc_pDNS_1.png

viewdns.infoで検索した結果

Microsoft Defender Threat Intelligence(https://ti.defender.microsoft.com/)

Microsoft Defender Threat Intelligenceでは、脅威インテリジェンス情報として、様々な情報を提供しており、登録者名(≒会社名)やメールアドレス、住所、NSサーバなど検索のフィールドを指定した検索が可能です。このMicrosoft Defender Threat Intelligenceは、PassiveDNSの情報も持っているため、IPに紐づいたドメイン/サブドメイン情報の列挙ドメイン情報からサブドメインを列挙するなど幅広く活用することができます。サブドメインを探す手法については後編にて紹介します。

etc_pDNS_2.png

Microsoft Defender Threat Intelligenceで検索した結果

違うTLDを試す

企業やサイトによってはブランドのイメージを守るなどの理由から、異なるTLDも取得(確保)しておくケースもあります。弊社であればmbsd.jp以外の.com.netなどを保有していないかを調査する形になります。所有ドメインを探すためには有効ではありますが、網羅的に試す以外に方法が思いつかず、お作法も悪いため、ここでは紹介のみとしておきます。もちろん列挙してくれるようなツールやサイトは存在しますが、ドメインの取得状況を確認するもの、DNSのクエリを投げるもの、whoisの情報を取得してくるものなど色々ありますので、相手方への影響などが無い手法であるか確認の上、実行するのが望ましいものとなります。

RDAP

まだまだ浸透していない印象ですが、whoisの後継であるRDAPも同様に情報を取得することができます。RDAPwhoisで問題視されていた点(暗号化されていない、フォーマットが統一されていないなど)を解消するプロトコルです。

JSONベースの応答が返ってくるため、機械的に処理しやすくなっています。whoisが平文であるなどの問題(GDPR対応)から今後置き換わっていくものと予想されますが、whoisの終了時期は執筆時点では未定となっており、RDAPもまだまだ普及していないという印象で、情報が取れないものも多くあるのが現状です。

# curl https://rdap.apnic.net/ip/203.178.136.0 {"rdapConformance":["nro_rdap_profile_0","cidr0","rdap_level_0"],"notices":[{"title":"Source","description":["Objects returned came from source","JPNIC"]},{"title":"Terms and Conditions","description":["This is the APNIC WHOIS Database query service. The objects are in RDAP format.","This information has been partially mirrored by APNIC from JPNIC. To obtain more specific information, please use the JPNIC WHOIS Gateway at http://www.nic.ad.jp/en/db/whois/en-gateway.html or whois.nic.ad.jp for WHOIS client. (The WHOIS client defaults to Japanese output, use the /e switch for English output)"],"links":[{"value":"https://jpnic.rdap.apnic.net/ip/203.178.136.0","rel":"terms-of-service","href":"http://www.apnic.net/db/dbcopyright.html","type":"text/html"}]},{"title":"Whois Inaccuracy Reporting","description":["If you see inaccuracies in the results, please visit: "],"links":[{"value":"https://jpnic.rdap.apnic.net/ip/203.178.136.0","rel":"inaccuracy-report","href":"https://www.apnic.net/manage-ip/using-whois/abuse-and-spamming/invalid-contact-form","type":"text/html"}]}],"country":"JP","events":[{"eventAction":"last changed","eventDate":"2002-11-26T02:26:43Z"}],"name":"WIDE-BB","remarks": ..(snip)..

まとめ?

ここまでドメインやネットワーク帯を調査するための手法を取り上げてきました。続いてサブドメインを調査する手法の紹介を…と思いましたが、長くなってしまったので、続きは後編にて紹介したいと思います。

プロダクト&ソリューション事業部
AI&高度先端技術開発
米山俊嗣

おすすめ記事