External Recon Methodology
ハッキングキャリアに興味がある方や、解読不能なものをハックしたい方 - 採用中です!(流暢なポーランド語の読み書きが必要です)。
資産の発見
ある企業に属するすべてのものが対象に含まれていると言われ、この企業が実際に何を所有しているのかを把握したいと思っています。
このフェーズの目標は、まず主要企業が所有する企業をすべて取得し、その後これらの企業の資産をすべて取得することです。これを行うために、以下の手順を実行します:
主要企業の買収を見つけることで、対象に含まれる企業を取得します。
各企業のASN(あれば)を見つけることで、各企業が所有するIP範囲を取得します。
逆whois検索を使用して、最初のエントリ(組織名、ドメインなど)に関連する他のエントリを検索します(これは再帰的に行うことができます)。
他の手法(shodan
org
およびssl
フィルターなど)を使用して、他の資産を検索します(ssl
トリックは再帰的に行うことができます)。
買収
まず最初に、主要企業が所有する他の企業を知る必要があります。 https://www.crunchbase.com/ にアクセスし、主要企業を検索し、「acquisitions」をクリックすると、主要企業が取得した他の企業が表示されます。 他のオプションとしては、主要企業のWikipediaページを訪れ、買収を検索することがあります。
この時点で、対象に含まれるすべての企業を把握するはずです。それでは、彼らの資産を見つける方法を考えてみましょう。
ASNs
自律システム番号(ASN)は、インターネット割り当て番号機関(IANA)によって自律システム(AS)に割り当てられた一意の番号です。 ASは、外部ネットワークへのアクセスに対する明確に定義されたポリシーを持つIPアドレスのブロックで構成され、単一の組織によって管理されますが、複数のオペレータで構成されている場合があります。
企業がどのようなASNを割り当てているかを見つけることは興味深いです。その企業のIP範囲を見つけるために脆弱性テストを実行し、対象内のすべてのホストに対して実行し、これらのIP内のドメインを検索します。 https://bgp.he.net/ で企業の名前、IP、またはドメインで検索できます。 企業の地域に応じて、これらのリンクはより多くのデータを収集するのに役立つ可能性があります: AFRINIC (アフリカ)、Arin (北アメリカ)、APNIC (アジア)、LACNIC (ラテンアメリカ)、RIPE NCC (ヨーロッパ)。とにかく、おそらくすべての**有用な情報(IP範囲とWhois)**は最初のリンクに既に表示されています。
また、BBOTのサブドメインの列挙は、スキャンの最後にASNを自動的に集約および要約します。
組織のIP範囲を見つけることもできます http://asnlookup.com/(無料APIを提供)。 ドメインのIPとASNを見つけることができます http://ipv4info.com/。
脆弱性を探す
この時点で、スコープ内のすべての資産を把握しているので、許可されている場合は、すべてのホストに対して 脆弱性スキャナ(Nessus、OpenVAS)を実行することができます。 また、ポートスキャンを実行したり、shodan のようなサービスを使用して 開いているポートを見つけ、見つけた内容に応じて、この書籍で実行する可能性のある複数のサービスのペンテスト方法を確認することができます。 また、デフォルトのユーザー名とパスワードのリストを用意して、https://github.com/x90skysn3k/brutespray を使用してサービスをブルートフォースすることもできます。
ドメイン
スコープ内のすべての企業とその資産を把握しています。スコープ内のドメインを見つける時が来ました。
以下の提案された技術を使用すると、サブドメインも見つけることができ、その情報は過小評価されるべきではありません。
まず、各企業の メインドメイン を探す必要があります。例えば、Tesla Inc. の場合は tesla.com になります。
逆引きDNS
ドメインのすべてのIP範囲を見つけたので、それらの IPに逆引きDNSルックアップを試みて、スコープ内の追加のドメインを見つけることができます。被害者のDNSサーバーまたは一般的に知られているDNSサーバー(1.1.1.1、8.8.8.8)を使用してみてください。
リバースWhois(ループ)
whoisの中には、組織名、住所、メールアドレス、電話番号など、多くの興味深い情報が含まれています。しかし、さらに興味深いのは、これらのフィールドのいずれかでリバースWhois検索を実行すると(たとえば、同じメールアドレスが登場する他のwhoisレジストリ)、企業に関連するさらなる資産を見つけることができるということです。 以下のようなオンラインツールを使用できます:
https://www.whoxy.com/ - 無料 web、APIは無料ではありません。
https://drs.whoisxmlapi.com/reverse-whois-search - 有料(100回無料検索)
DomLink を使用してこのタスクを自動化できます(whoxy APIキーが必要です)。
また、amassを使用して自動的なリバースWhois検出を行うこともできます: amass intel -d tesla.com -whois
新しいドメインを見つけるたびに、このテクニックを使用してさらに多くのドメイン名を発見できることに注意してください。
トラッカー
2つの異なるページで同じトラッカーの同じIDを見つけた場合、両方のページが同じチームによって管理されていると推測できます。 たとえば、複数のページで同じGoogle Analytics IDや同じAdsense IDを見た場合です。
これらのトラッカーやその他の情報を検索できるいくつかのページやツールがあります:
Favicon
ターゲットに関連するドメインやサブドメインを見つけるために、同じfaviconアイコンハッシュを探すことができることを知っていましたか?これは、@m4ll0k2によって作成されたfavihash.pyツールが行うことです。以下は、その使用方法です:
単純に言えば、favihashを使用すると、ターゲットと同じファビコンアイコンハッシュを持つドメインを発見できます。
さらに、このブログ投稿で説明されているように、ファビコンハッシュを使用して技術を検索することもできます。つまり、Webテクノロジーの脆弱なバージョンのファビコンのハッシュを知っている場合、shodanで検索してより多くの脆弱な場所を見つけることができます。
これがウェブのファビコンハッシュを計算する方法です:
著作権 / ユニークな文字列
同じ組織内の異なるウェブ間で共有される可能性のある文字列をウェブページ内で検索します。著作権文字列は良い例です。その文字列をGoogle、他のブラウザ、またはShodanで検索します: shodan search http.html:"著作権文字列"
CRT 時間
次のようなクーロンジョブを持つことが一般的です。
メールDMARC情報
https://dmarc.live/info/google.com のようなウェブサイトやhttps://github.com/Tedixx/dmarc-subdomains のようなツールを使用して、同じdmarc情報を共有するドメインとサブドメインを見つけることができます。
パッシブテイクオーバー
一般的に、人々はクラウドプロバイダーに属するIPにサブドメインを割り当て、そのIPアドレスをいつの間にか失い、DNSレコードを削除するのを忘れることがよくあります。したがって、クラウド(例:Digital Ocean)でVMを起動するだけで、実際にはいくつかのサブドメインを引き継ぐことができます。
この記事 では、そのことについて説明し、DigitalOceanでVMを起動し、新しいマシンのIPv4を取得し、それを指すサブドメインレコードをVirustotalで検索するスクリプトを提案しています。
その他の方法
新しいドメインを見つけるたびにこのテクニックを使用できることに注意してください。
Shodan
すでにIPスペースを所有している組織の名前を知っている場合、org:"Tesla, Inc."
を使用してShodanでそのデータを検索できます。TLS証明書で新しい予期しないドメインを見つけてください。
メインウェブページのTLS証明書にアクセスし、組織名を取得してから、shodanで知られているすべてのウェブページのTLS証明書内でその名前を検索します。フィルター:ssl:"Tesla Motors"
を使用するか、sslsearch のようなツールを使用します。
Assetfinder
Assetfinder は、メインドメインに関連するドメインとそれらのサブドメインを探すツールで、非常に素晴らしいです。
脆弱性を探す
ドメインテイクオーバーをチェックしてください。会社がドメインを使用しているが所有権を失っている可能性があります。安価であれば登録し、会社に通知してください。
アセットの発見で見つけたIPとは異なるIPを持つドメインを見つけた場合、基本的な脆弱性スキャン(NessusやOpenVASを使用)とnmap/masscan/shodanでのポートスキャンを実行する必要があります。実行されているサービスに応じて、この書籍でそれらを"攻撃"するためのトリックを見つけることができます。 クライアントが制御していないIP内にホストされている場合があるため、スコープ外の場合がありますので、注意してください。
サブドメイン
スコープ内のすべての企業、各企業のすべての資産、および企業に関連するすべてのドメインを知っています。
見つかった各ドメインの可能なすべてのサブドメインを見つける時が来ました。
ドメインを見つけるための一部のツールやテクニックは、サブドメインを見つけるのにも役立つ場合があります!
DNS
DNSレコードからサブドメインを取得しましょう。ゾーン転送も試してみるべきです(脆弱性がある場合は報告する必要があります)。
OSINT
大量のサブドメインを取得する最速の方法は、外部ソースで検索することです。最もよく使われるツールは以下のものです(より良い結果を得るためには、APIキーを設定してください):
次のような、サブドメインを見つけることに直接特化していないが、サブドメインを見つけるのに役立つかもしれない他の興味深いツール/APIがあります:
Crobat: サブドメインを取得するためにAPI https://sonar.omnisint.io を使用
RapidDNS 無料API
gau: 特定のドメインからAlienVaultのOpen Threat Exchange、Wayback Machine、Common Crawlに既知のURLを取得します。
SubDomainizer & subscraper: 彼らはWebをスクレイピングし、JSファイルからサブドメインを抽出します。
securitytrails.com は、サブドメインやIPの履歴を検索するための無料APIを提供しています
このプロジェクトは、バグバウンティプログラムに関連するすべてのサブドメインを無料で提供しています。このデータには、chaospyを使用したり、このプロジェクトで使用されているスコープにアクセスすることもできます https://github.com/projectdiscovery/chaos-public-program-list
これらのツールの比較をここで見つけることができます: https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off
DNSブルートフォース
可能なサブドメイン名を使用してDNSサーバーをブルートフォースし、新しいサブドメインを見つけてみましょう。
このアクションには、次のような一般的なサブドメインのワードリストが必要です:
さらに、信頼できるDNSリゾルバのIPアドレスも必要です。信頼できるDNSリゾルバのリストを生成するには、https://public-dns.info/nameservers-all.txt からリゾルバをダウンロードし、dnsvalidator を使用してフィルタリングします。または、https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt を使用することもできます。
DNSブルートフォースに最も推奨されるツールは次のとおりです:
massdns: これは効果的なDNSブルートフォースを実行した最初のツールです。非常に高速ですが、誤検知しやすいです。
gobuster: これは1つのリゾルバを使用していると思います
shuffledns は、
massdns
をラップしたもので、有効なサブドメインをアクティブなブルートフォースを使用して列挙し、ワイルドカード処理と簡単な入出力サポートを備えています。Go言語で書かれています。
puredns: それは
massdns
も使用します。
aiodnsbruteは、ドメイン名を非同期でブルートフォースするためにasyncioを使用します。
第二のDNSブルートフォースラウンド
オープンソースとブルートフォースを使用してサブドメインを見つけた後、見つかったサブドメインの変更を生成してさらに見つけることができます。この目的にはいくつかのツールが役立ちます:
dnsgen: ドメインとサブドメインを与えられた場合、順列を生成します。
gotator: ドメインとサブドメインが与えられた場合、順列を生成します。順列ファイルが指定されていない場合、gotator は独自のファイルを使用します。
dmut: サブドメインの順列、変異、および変更を実行する別のツール。このツールは結果を総当たり攻撃します(dnsワイルドカードはサポートされていません)。
こちらからdmutの順列ワードリストを入手できます。
alterx: ドメインに基づいて、指定されたパターンに基づいて新しい潜在的なサブドメイン名を生成し、より多くのサブドメインを発見しようとします。
スマートな順列生成
subzuf: _subzuf_は、極めてシンプルで効果的なDNS応答ガイドアルゴリズムと組み合わされたサブドメインブルートフォースファズツールです。_subzuf_は、カスタマイズされたワードリストや過去のDNS/TLSレコードなどの提供された入力データを利用して、より対応するドメイン名を正確に合成し、DNSスキャン中に収集された情報に基づいてさらにループで拡張します。
サブドメイン発見ワークフロー
このブログ記事をチェックしてください。Trickestワークフローを使用してドメインからサブドメインの発見を自動化する方法について書いています。これにより、コンピュータで手動で多くのツールを起動する必要がありません。
VHosts / バーチャルホスト
サブドメインを持つ1つ以上のウェブページを含むIPアドレスを見つけた場合、そのIP内の他のサブドメインを見つけるために、IP内のドメインを検索するか、そのIP内のVHostドメイン名をブルートフォースすることができます。
OSINT
HostHunter やその他のAPIを使用して、IP内のVHostを見つけることができます。
ブルートフォース
Webサーバーにいくつかのサブドメインが隠されている可能性がある場合、ブルートフォースしてみることができます。
このテクニックを使用すると、内部/非表示のエンドポイントにアクセスできるかもしれません。
CORS Brute Force
時々、有効なドメイン/サブドメインが Origin ヘッダーに設定されている場合にのみ Access-Control-Allow-Origin ヘッダーを返すページが見つかります。 これらのシナリオでは、この動作を悪用して、新しい サブドメイン を 発見 することができます。
バケットのブルートフォース
サブドメインを探している間に、そのサブドメインがどの種類のバケットを指しているかを確認し、その場合は権限をチェックしてください。 また、この時点でスコープ内のすべてのドメインを把握しているため、可能なバケット名をブルートフォースし、権限をチェックしてください。
モニタリング
ドメインの新しいサブドメインが作成されたかどうかをモニタリングすることができます。これは[Certificate Transparencyログを監視することで行うことができます。sublertが行っています。
脆弱性の探索
可能なサブドメイン乗っ取りをチェックしてください。 サブドメインがS3バケットを指している場合は、権限をチェックしてください。
アセットの発見で見つけたIPとは異なるIPを持つサブドメインを見つけた場合、基本的な脆弱性スキャン(NessusまたはOpenVASを使用)とnmap/masscan/shodanを使用したいくつかのポートスキャンを実行する必要があります。実行中のサービスに応じて、この書籍でそれらを"攻撃"するためのヒントを見つけることができます。 サブドメインがクライアントによって制御されていないIP内にホストされている場合があるため、スコープ外にある可能性があることに注意してください。
IPs
初期段階でいくつかのIP範囲、ドメイン、およびサブドメインを見つけたかもしれません。 これらの範囲からすべてのIPと**ドメイン/サブドメイン(DNSクエリ)**を再収集する時が来ました。
以下の無料APIを使用すると、ドメインとサブドメインが以前に使用していたIPを見つけることもできます。これらのIPはクライアントが所有している可能性があります(そしてCloudFlareのバイパスを見つけることができるかもしれません)
また、ツールhakip2hostを使用して特定のIPアドレスを指すドメインをチェックすることもできます。
脆弱性の探索
CDNに属さないすべてのIPにポートスキャンを実行してください(そこに興味深いものはほとんど見つからない可能性が高いです)。発見された実行中のサービスで脆弱性を見つけることができるかもしれません。
ホストをスキャンする方法についてのガイド を見つけてください。
Webサーバーの探索
すべての企業とその資産を見つけ、IP範囲、ドメイン、およびスコープ内のサブドメインを把握しています。Webサーバーを検索する時が来ました。
前のステップでおそらくすでに発見したIPとドメインの調査を実行しているかもしれませんので、すでに可能なすべてのWebサーバーを見つけているかもしれません。しかし、まだ見つけていない場合は、スコープ内のWebサーバーを検索するための高速なトリックを見ていきます。
これはWebアプリの発見に向けられているため、スコープで許可されている場合は脆弱性とポートスキャンも実行する必要があります。
masscanを使用して関連するWebサーバーのオープンポートを発見する高速な方法はこちらにあります。 Webサーバーを探すためのもう1つの便利なツールはhttprobe、fprobe、およびhttpxです。ドメインのリストを渡すと、ポート80(http)および443(https)に接続しようとします。さらに、他のポートを試すように指示することもできます。
スクリーンショット
スコープ内のすべてのWebサーバー(企業のIPアドレス、すべてのドメイン、サブドメインを含む)を発見したので、どこから始めればよいかわからないかもしれません。ですので、単純にすべてのWebサイトのスクリーンショットを撮影してみましょう。メインページを見るだけで、奇妙なエンドポイントを見つけることができ、それらは脆弱性を抱えやすい可能性が高いです。
提案されたアイデアを実行するために、EyeWitness、HttpScreenshot、Aquatone、Shutter、Gowitness、またはwebscreenshotを使用できます。
さらに、その後eyeballerを使用して、すべてのスクリーンショットを実行し、脆弱性を含んでいそうなものとそうでないものを教えてもらうことができます。
パブリッククラウド資産
企業に関連する潜在的なクラウド資産を見つけるためには、その企業を識別するためのキーワードリストから始める必要があります。たとえば、暗号通貨企業の場合、"crypto"、"wallet"、"dao"、"<domain_name>"、<"subdomain_names">などの単語を使用するかもしれません。
また、バケツで使用される一般的な単語のワードリストが必要です:
その後、これらの単語を使用して順列を生成する必要があります(詳細はSecond Round DNS Brute-Forceを参照)。
生成されたワードリストを使用して、cloud_enum、CloudScraper、cloudlist または S3Scannerなどのツールを使用できます。
クラウド資産を探す際には、AWSのバケツだけでなく他のものも探す必要があります。
脆弱性を探す
オープンなバケツや露出されたクラウド機能などが見つかった場合は、それらにアクセスして、提供されているものを確認し、悪用できるかどうかを試してみてください。
メール
スコープ内のドメインとサブドメインを持っていると、企業のメールを検索を開始するために必要なものがすべて揃っています。これらは私にとって最も効果的だった企業のメールを見つけるためのAPIとツールです:
theHarvester - with APIs
https://hunter.io/のAPI(無料版)
https://app.snov.io/のAPI(無料版)
https://minelead.io/のAPI(無料版)
脆弱性を探す
後でメールは、Webログインや認証サービス(SSHなど)をブルートフォース攻撃するために役立ちます。また、フィッシングにも必要です。さらに、これらのAPIは、メールの背後にいる人物についてのさらなる情報を提供し、フィッシングキャンペーンに役立ちます。
資格情報の漏洩
ドメイン、サブドメイン、およびメールを持っている場合、過去にそのメールに関連する漏洩した資格情報を探すことができます:
脆弱性を探す
有効な漏洩した資格情報を見つけた場合、これは非常に簡単な勝利です。
シークレットの漏洩
資格情報の漏洩は、機密情報が漏洩して販売された企業のハッキングに関連しています。ただし、企業はそのデータベースにない情報が含まれる他の漏洩にも影響を受ける可能性があります:
Githubの漏洩
資格情報やAPIが、企業またはそのgithub企業の開発者のパブリックリポジトリに漏洩している可能性があります。 Leakosツールを使用して、組織とその開発者のすべてのパブリックリポジトリをダウンロードし、gitleaksを自動的に実行できます。
Leakosは、渡されたURLのすべてのテキストにgitleaksを実行するためにも使用できます。なぜなら、ウェブページにも秘密が含まれることがあるからです。
Github Dorks
攻撃対象の組織で検索する可能性のあるgithub dorksを見つけるために、このページもチェックしてください:
pageGithub Dorks & Leaksペーストの漏洩
攻撃者や単なる作業者が企業のコンテンツをペーストサイトに公開することがあります。これには機密情報が含まれる可能性がありますが、含まれない場合もあります。 Pastosツールを使用して、80以上のペーストサイトで検索できます。
Google Dorks
古くからあるが有用なGoogle Dorksは、そこにあってはならない情報を見つけるのに常に役立ちます。唯一の問題は、google-hacking-databaseには数千ものクエリが含まれており、手動で実行することはできないことです。したがって、お気に入りの10個を選ぶか、Gorksのようなツールを使用してすべてを実行することができます。
通常のGoogleブラウザを使用してデータベース全体を実行することを期待しているツールは、Googleが非常にすぐにブロックするため、決して終了しません。
脆弱性を探す
有効な漏洩した資格情報やAPIトークンを見つけた場合、これは非常に簡単な勝利です。
パブリックコードの脆弱性
企業がオープンソースコードを持っている場合、それを分析して脆弱性を検索できます。
言語によって異なるツールがあります:
pageSource code Review / SAST Toolsまた、次のような無料のサービスを使用してパブリックリポジトリをスキャンすることもできます:
バグハンターによって見つかった脆弱性の大部分はWebアプリケーション内に存在するため、この時点でWebアプリケーションのテスト手法について話したいと思います。この情報はこちらで見つけることができます。
また、Web Automated Scannersオープンソースツールセクションに特別な言及をしたいと思います。非常に機密性の高い脆弱性を見つけることは期待できないかもしれませんが、ワークフローに実装して初期のWeb情報を得るのに便利です。
要点
おめでとうございます!この時点で、すでにすべての基本的な列挙を行っています。はい、基本的な列挙ですが、さらに多くの列挙ができます(後でさらなるトリックを見ることになります)。
したがって、すでに次のことを行っています:
スコープ内のすべての企業を見つけました
企業に属するすべての資産を見つけました(スコープ内であればいくつかの脆弱性スキャンを実行)
企業に属するすべてのドメインを見つけました
ドメインのすべてのサブドメインを見つけました(サブドメインの乗っ取りはありましたか?)
スコープ内のCDNからでないIPを含むすべてのIPを見つけました
すべてのWebサーバーを見つけ、スクリーンショットを取りました(深く調査する価値のある奇妙なものはありましたか?)
企業に属する潜在的なパブリッククラウド資産をすべて見つけました
簡単に大きな勝利をもたらす可能性のあるメール、資格情報の漏洩、および秘密の漏洩を見つけました
見つけたすべてのWebをペンテストしました
完全なRecon自動ツール
さまざまなツールがあり、指定されたスコープに対して提案されたアクションの一部を実行します。
https://github.com/hackerspider1/EchoPwn - 少し古く、更新されていません
参考文献
ハッキングキャリアに興味がある方や、解読不能なものをハックしたい方 - 採用中です!(流暢なポーランド語の読み書きが必要です)。
Last updated