External Recon Methodology
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
ハッキングキャリアに興味があり、ハッキング不可能なものをハッキングしたい方 - 私たちは採用しています! (流暢なポーランド語の読み書きが必要です)。
資産の発見
ある会社に属するすべてのものがスコープ内にあると言われ、その会社が実際に所有しているものを把握したいと思っています。
このフェーズの目標は、主要な会社が所有するすべての会社を取得し、次にこれらの会社の資産を取得することです。そのために、私たちは以下を行います:
主要な会社の買収を見つけます。これにより、スコープ内の会社がわかります。
各会社のASN(あれば)を見つけます。これにより、各会社が所有するIP範囲がわかります。
逆Whois検索を使用して、最初のものに関連する他のエントリ(組織名、ドメインなど)を検索します(これは再帰的に行うことができます)。
shodanの
org
およびssl
フィルターなどの他の技術を使用して、他の資産を検索します(ssl
トリックは再帰的に行うことができます)。
買収
まず、主要な会社が所有する他の会社を知る必要があります。 1つのオプションは、https://www.crunchbase.com/を訪れ、主要な会社を検索し、「買収」をクリックすることです。そこでは、主要な会社によって取得された他の会社が表示されます。 もう1つのオプションは、主要な会社の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を自動的に集約し要約します。
You can find the IP ranges of an organisation also using http://asnlookup.com/ (it has free API). You can find the IP and ASN of a domain using 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)を使用してみてください。
For this to work, the administrator has to enable manually the PTR. You can also use a online tool for this info: http://ptrarchive.com/
Reverse Whois (loop)
Inside a whois you can find a lot of interesting information like organisation name, address, emails, phone numbers... But which is even more interesting is that you can find more assets related to the company if you perform reverse whois lookups by any of those fields (for example other whois registries where the same email appears). You can use online tools like:
https://www.whoxy.com/ - 無料 web, not free API.
http://reversewhois.domaintools.com/ - 無料ではない
https://drs.whoisxmlapi.com/reverse-whois-search - 無料ではない (only 100 free searches)
https://www.domainiq.com/ - 無料ではない
You can automate this task using DomLink (requires a whoxy API key).
You can also perform some automatic reverse whois discovery with amass: amass intel -d tesla.com -whois
Note that you can use this technique to discover more domain names every time you find a new domain.
Trackers
If find the same ID of the same tracker in 2 different pages you can suppose that both pages are managed by the same team. For example, if you see the same Google Analytics ID or the same Adsense ID on several pages.
There are some pages and tools that let you search by these trackers and more:
Favicon
Did you know that we can find related domains and sub domains to our target by looking for the same favicon icon hash? This is exactly what favihash.py tool made by @m4ll0k2 does. Here’s how to use it:
簡単に言うと、favihashはターゲットと同じファビコンアイコンハッシュを持つドメインを発見することを可能にします。
さらに、このブログ記事で説明されているように、ファビコンハッシュを使用して技術を検索することもできます。つまり、脆弱なバージョンのウェブ技術のファビコンのハッシュを知っていれば、shodanで検索してより多くの脆弱な場所を見つけることができます。
これはウェブのファビコンハッシュを計算する方法です:
Copyright / Uniq string
異なるウェブサイト間で同じ組織内で共有される可能性のある文字列をウェブページ内で検索します。著作権文字列は良い例です。その後、google、他のブラウザ、またはshodanでその文字列を検索します: shodan search http.html:"Copyright string"
CRT Time
cronジョブを持つことは一般的です。
to renew the all the domain certificates on the server. This means that even if the CA used for this doesn't set the time it was generated in the Validity time, it's possible to find domains belonging to the same company in the certificate transparency logs. Check out this writeup for more information.
Mail DMARC情報
You can use a web such as https://dmarc.live/info/google.com or a tool such as https://github.com/Tedixx/dmarc-subdomains to find 同じdmarc情報を共有するドメインとサブドメイン.
パッシブテイクオーバー
Apparently is common for people to assign subdomains to IPs that belongs to cloud providers and at some point lose that IP address but forget about removing the DNS record. Therefore, just spawning a VM in a cloud (like Digital Ocean) you will be actually taking over some subdomains(s).
この投稿 explains a store about it and propose a script that spawns a VM in DigitalOcean, gets the IPv4 of the new machine, and searches in Virustotal for subdomain records pointing to it.
他の方法
Note that you can use this technique to discover more domain names every time you find a new domain.
Shodan
As you already know the name of the organisation owning the IP space. You can search by that data in shodan using: org:"Tesla, Inc."
Check the found hosts for new unexpected domains in the TLS certificate.
You could access the TLS certificate of the main web page, obtain the Organisation name and then search for that name inside the TLS certificates of all the web pages known by shodan with the filter : ssl:"Tesla Motors"
or use a tool like sslsearch.
Assetfinder
Assetfinder is a tool that look for メインドメインに関連するドメインとそのサブドメインを探す、非常に素晴らしいです。
脆弱性の探索
Check for some domain takeover. Maybe some company is using some a domain but they lost the ownership. Just register it (if cheap enough) and let know the company.
If you find any domain with an IP different from the ones you already found in the assets discovery, you should perform a basic vulnerability scan (using Nessus or OpenVAS) and some port scan with nmap/masscan/shodan. Depending on which services are running you can find in this book some tricks to "attack" them. Note that sometimes the domain is hosted inside an IP that is not controlled by the client, so it's not in the scope, be careful.
バグバウンティのヒント: サインアップしてIntigritiに参加しましょう。ハッカーによって、ハッカーのために作られたプレミアムバグバウンティプラットフォームです!今日、https://go.intigriti.com/hacktricksに参加して、最大**$100,000**の報酬を得始めましょう!
サブドメイン
We know all the companies inside the scope, all the assets of each company and all the domains related to the companies.
It's time to find all the possible subdomains of each found domain.
Note that some of the tools and techniques to find domains can also help to find subdomains!
DNS
Let's try to get サブドメイン from the DNS records. We should also try for ゾーン転送 (If vulnerable, you should report it).
OSINT
多くのサブドメインを迅速に取得する最も簡単な方法は、外部ソースを検索することです。最も使用されるツールは以下の通りです(より良い結果を得るためにAPIキーを設定してください):
他にも興味深いツール/APIがあり、サブドメインを見つけることに特化していなくても、サブドメインを見つけるのに役立つかもしれません。例えば:
Crobat: API https://sonar.omnisint.ioを使用してサブドメインを取得します。
RapidDNS 無料API
gau: 任意のドメインに対して、AlienVaultのOpen Threat Exchange、Wayback Machine、およびCommon Crawlから既知のURLを取得します。
SubDomainizer & subscraper: これらはウェブをスクレイピングして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は独自のファイルを使用します。
altdns: サブドメインの順列を生成するだけでなく、それらを解決しようとすることもできます(ただし、前述のツールを使用する方が良いです)。
altdnsの順列のwordlistはこちらで入手できます。
dmut: サブドメインの順列、変異、変更を行うための別のツール。このツールは結果をブルートフォースします(DNSワイルドカードはサポートしていません)。
dmutの順列ワードリストはこちらから取得できます。
alterx: 指定されたパターンに基づいて、新しい潜在的なサブドメイン名を生成し、より多くのサブドメインを発見しようとします。
スマートな順列生成
subzuf: subzuf は、非常にシンプルで効果的なDNS応答ガイドアルゴリズムと組み合わされたサブドメインブルートフォースファズザーです。提供された入力データセット(カスタマイズされた単語リストや過去のDNS/TLSレコードなど)を利用して、より対応するドメイン名を正確に合成し、DNSスキャン中に収集した情報に基づいてループ内でさらに拡張します。
サブドメイン発見ワークフロー
私が書いたブログ記事をチェックしてください。Trickestワークフローを使用してドメインからサブドメイン発見を自動化する方法について説明しています。これにより、コンピュータでツールを手動で起動する必要がなくなります:
VHosts / バーチャルホスト
サブドメインに属する1つまたは複数のウェブページを含むIPアドレスを見つけた場合、そのIP内のウェブがある他のサブドメインを見つけるために、OSINTソースでIP内のドメインを探すか、そのIP内のVHostドメイン名をブルートフォースすることを試みることができます。
OSINT
HostHunter や他のAPIを使用してIP内のいくつかのVHostsを見つけることができます。
ブルートフォース
ウェブサーバーに隠されたサブドメインがあると疑う場合、それをブルートフォースすることを試みることができます:
この技術を使うことで、内部/隠れたエンドポイントにアクセスできる場合があります。
CORSブルートフォース
時には、Origin ヘッダーに有効なドメイン/サブドメインが設定されている場合にのみ、Access-Control-Allow-Origin ヘッダーを返すページを見つけることがあります。このようなシナリオでは、この動作を悪用して新しい サブドメイン を 発見 することができます。
バケットブルートフォース
サブドメインを探しているときは、バケットのいずれかにポイントしているかどうかに注意し、その場合は権限を確認してください。 また、この時点でスコープ内のすべてのドメインを知っているので、可能なバケット名をブルートフォースし、権限を確認してみてください。
モニタリング
新しいサブドメインが作成されたかどうかを監視するには、Certificate Transparencyログを監視することができます。sublertがそれを行います。
脆弱性の検索
可能なサブドメインテイクオーバーを確認してください。 もしサブドメインがS3バケットを指している場合は、権限を確認してください。
もし資産発見で見つけたものとは異なるIPを持つサブドメインを見つけた場合は、基本的な脆弱性スキャン(NessusやOpenVASを使用)と、ポートスキャン(nmap/masscan/shodanを使用)を実行する必要があります。実行中のサービスに応じて、この本で「攻撃」するためのいくつかのトリックを見つけることができます。 サブドメインがクライアントによって制御されていないIP内にホストされていることがあるため、スコープ外であることに注意してください。
IPs
初期のステップでいくつかのIP範囲、ドメイン、サブドメインを見つけたかもしれません。 これらの範囲からすべてのIPを収集し、**ドメイン/サブドメイン(DNSクエリ)**のための時間です。
以下の無料APIのサービスを使用すると、ドメインとサブドメインによって使用された以前のIPも見つけることができます。これらのIPはクライアントによってまだ所有されている可能性があり、CloudFlareのバイパスを見つける手助けになるかもしれません。
特定のIPアドレスを指すドメインを確認するには、hakip2hostツールを使用できます。
脆弱性の検索
CDNに属さないすべてのIPをポートスキャンしてください(そこでは興味深いものは見つからない可能性が高いです)。発見された実行中のサービスで脆弱性を見つけることができるかもしれません。
ホストをスキャンする方法についてのガイドを見つけてください。
ウェブサーバーハンティング
すべての企業とその資産を見つけ、スコープ内のIP範囲、ドメイン、サブドメインを知っています。ウェブサーバーを探す時間です。
前のステップで、発見されたIPとドメインのいくつかのリコンをすでに実行しているかもしれませんので、すでにすべての可能なウェブサーバーを見つけているかもしれません。しかし、見つけていない場合は、スコープ内のウェブサーバーを検索するための迅速なトリックを見ていきます。
これはウェブアプリの発見に向けられているため、脆弱性とポートスキャンも実行する必要があります(スコープによって許可されている場合)。
ウェブサーバーに関連するオープンポートを発見するための迅速な方法は、masscanを使用してここにあります。 ウェブサーバーを探すためのもう一つの便利なツールは、httprobe、fprobeおよびhttpxです。ドメインのリストを渡すだけで、ポート80(http)と443(https)に接続しようとします。さらに、他のポートを試すように指示することもできます:
スクリーンショット
スコープ内に存在するすべてのウェブサーバー(会社のIPやすべてのドメイン、サブドメインの中から)を発見したので、どこから始めればよいかわからないかもしれません。そこで、シンプルにして、すべてのサーバーのスクリーンショットを撮ることから始めましょう。メインページを見るだけで、脆弱性がある可能性の高い奇妙なエンドポイントを見つけることができます。
提案されたアイデアを実行するには、EyeWitness、HttpScreenshot、Aquatone、Shutter、Gowitnessまたはwebscreenshotを使用できます。
さらに、eyeballerを使用して、すべてのスクリーンショットを確認し、脆弱性を含む可能性が高いものとそうでないものを教えてもらうことができます。
パブリッククラウド資産
会社に属する潜在的なクラウド資産を見つけるためには、その会社を特定するキーワードのリストから始めるべきです。たとえば、暗号会社の場合、次のような単語を使用することがあります:"crypto", "wallet", "dao", "<domain_name>", <"subdomain_names">
。
バケットで使用される一般的な単語のワードリストも必要です:
次に、それらの単語を使用して順列を生成する必要があります(詳細については第二ラウンドDNSブルートフォースを確認してください)。
得られたワードリストを使用して、cloud_enum、CloudScraper、cloudlist または S3Scannerを使用できます。
クラウド資産を探す際には、AWSのバケットだけでなく、他のものも探すべきです。
脆弱性の検索
オープンバケットや公開されたクラウド機能などを見つけた場合は、それにアクセスして、何を提供しているのか、悪用できるかどうかを確認するべきです。
メール
スコープ内のドメインとサブドメインを持っているので、メールを検索するために必要なすべてのものがあります。これらは、会社のメールを見つけるために私が最も効果的だと感じたAPIとツールです:
theHarvester - APIを使用
https://hunter.io/のAPI(無料版)
https://app.snov.io/のAPI(無料版)
https://minelead.io/のAPI(無料版)
脆弱性の検索
メールは後でウェブログインや認証サービス(SSHなど)をブルートフォースするのに役立ちます。また、フィッシングにも必要です。さらに、これらのAPIは、フィッシングキャンペーンに役立つメールの背後にいる人物に関する情報をさらに提供します。
資格情報の漏洩
ドメイン、 サブドメイン、 メールを使用して、過去に漏洩した資格情報を探し始めることができます:
脆弱性の検索
有効な漏洩した資格情報を見つけた場合、これは非常に簡単な勝利です。
秘密の漏洩
資格情報の漏洩は、機密情報が漏洩して販売された企業のハッキングに関連しています。ただし、企業は、これらのデータベースに情報がない他の漏洩の影響を受ける可能性があります:
Githubの漏洩
資格情報やAPIは、会社やそのユーザーの公開リポジトリで漏洩する可能性があります。 Leakosというツールを使用して、組織とその開発者のすべての公開リポジトリをダウンロードし、自動的にgitleaksを実行できます。
Leakosは、提供されたURLに対してgitleaksを実行するためにも使用でき、時にはウェブページにも秘密が含まれていることがあります。
Github Dorks
攻撃している組織で検索できる潜在的なgithub dorksについては、このページも確認してください:
Github Dorks & Leaksペーストの漏洩
時には攻撃者や単なる従業員が会社のコンテンツをペーストサイトに公開します。これには機密情報が含まれている場合もあれば、含まれていない場合もありますが、検索するのは非常に興味深いです。 Pastosというツールを使用して、80以上のペーストサイトを同時に検索できます。
Google Dorks
古くても金の価値があるGoogle Dorksは、そこにあるべきでない情報を見つけるのに常に役立ちます。唯一の問題は、google-hacking-databaseに、手動で実行できない数千の可能なクエリが含まれていることです。したがって、お気に入りの10個を取得するか、Gorksのようなツールを使用してすべてを実行することができます。
すべてのデータベースを通常のGoogleブラウザを使用して実行しようとするツールは、Googleが非常に早くブロックするため、決して終わらないことに注意してください。
脆弱性の検索
有効な漏洩した資格情報やAPIトークンを見つけた場合、これは非常に簡単な勝利です。
公開コードの脆弱性
会社がオープンソースコードを持っていることがわかった場合、それを分析して脆弱性を探すことができます。
言語によって異なるツールを使用できます:
Source code Review / SAST Toolsまた、公開リポジトリをスキャンするための無料サービスもあります:
バグハンターによって見つかった脆弱性の大多数はウェブアプリケーション内に存在するため、この時点でウェブアプリケーションテスト手法について話したいと思います。詳細はこちらで確認できます。
また、Web Automated Scannersオープンソースツールのセクションにも特別な言及をしたいと思います。非常に機密性の高い脆弱性を見つけることを期待すべきではありませんが、初期のウェブ情報を得るためのワークフローに実装するのに役立ちます。
再確認
おめでとうございます!この時点で、すべての基本的な列挙をすでに実行しています。はい、基本的なことです。さらに多くの列挙が可能です(後でさらにトリックを見ていきます)。
したがって、すでに次のことを行いました:
スコープ内のすべての会社を見つけた
会社に属するすべての資産を見つけた(スコープ内で脆弱性スキャンを実行)
会社に属するすべてのドメインを見つけた
ドメインのすべてのサブドメインを見つけた(サブドメインの乗っ取りはありますか?)
スコープ内のすべてのIP(CDNからのものとそうでないもの)を見つけた
すべてのウェブサーバーを見つけ、スクリーンショットを撮った(より深く見る価値のある奇妙なものはありますか?)
会社に属するすべての潜在的なパブリッククラウド資産を見つけた
メール、資格情報の漏洩、および秘密の漏洩があり、非常に簡単に大きな勝利を得ることができる。
見つけたすべてのウェブをペンテストする
フルリコン自動ツール
特定のスコープに対して提案されたアクションの一部を実行するツールがいくつかあります。
https://github.com/hackerspider1/EchoPwn - 少し古く、更新されていません
参考文献
ハッキングキャリアに興味があり、ハッキング不可能なものをハッキングしたい方 - 私たちは採用しています!(流暢なポーランド語の読み書きが必要)。
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Last updated