External Recon Methodology
Last updated
Last updated
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ページを訪れ、買収を検索することです。
さて、この時点でスコープ内のすべての会社を知っているはずです。彼らの資産を見つける方法を考えましょう。
自律システム番号(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_になります。
ドメインの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/
Inside a whois you can find a lot of interesting 情報 like 組織名, 住所, メールアドレス, 電話番号... しかし、さらに興味深いのは、これらのフィールドのいずれかで逆whois検索を行うと、会社に関連する より多くの資産を見つけることができることです(例えば、同じメールが表示される他のwhoisレジストリ)。 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 - 無料ではない(100回の無料検索のみ)
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.
If find the 同じトラッカーの同じID in 2 different pages you can suppose that 両方のページ are 同じチームによって管理されている. 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:
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はターゲットと同じfaviconアイコンハッシュを持つドメインを発見することを可能にします。
さらに、このブログ記事で説明されているように、faviconハッシュを使用して技術を検索することもできます。つまり、脆弱なバージョンのウェブ技術のfaviconのハッシュを知っていれば、shodanで検索してより多くの脆弱な場所を見つけることができます。
これはウェブのファビコンハッシュを計算する方法です:
異なるウェブサイト間で同じ組織内で共有される可能性のある文字列をウェブページ内で検索します。著作権文字列は良い例です。その後、google、他のブラウザ、またはshodanでその文字列を検索します: shodan search http.html:"Copyright string"
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.
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. &#xNAN;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.
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!
Let's try to get サブドメイン from the DNS records. We should also try for ゾーン転送 (If vulnerable, you should report it).
多くのサブドメインを迅速に取得する最も効果的な方法は、外部ソースで検索することです。最も使用されるツールは以下の通りです(より良い結果を得るために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リゾルバの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 を使用します。
オープンソースとブルートフォースを使用してサブドメインを見つけた後、見つかったサブドメインの変種を生成してさらに多くを見つけることができます。この目的のために役立つツールがいくつかあります:
dnsgen: ドメインとサブドメインを与えると、順列を生成します。
gotator: ドメインとサブドメインを与えると、順列を生成します。順列ファイルが指定されていない場合、gotatorは独自のファイルを使用します。
altdns: サブドメインの順列を生成するだけでなく、それらを解決しようとすることもできます(ただし、前述のツールを使用する方が良いです)。
altdnsの順列のwordlistはこちらで入手できます。
dmut: サブドメインの順列、変異、変更を行うための別のツール。このツールは結果をブルートフォースします(DNSワイルドカードはサポートしていません)。
dmutの順列ワードリストはこちらで入手できます。
alterx: 指定されたパターンに基づいて、新しい潜在的なサブドメイン名を生成し、より多くのサブドメインを発見しようとします。
subzuf: subzuf は、非常にシンプルで効果的なDNS応答ガイドアルゴリズムを備えたサブドメインブルートフォースファズァです。提供された入力データセット(カスタマイズされた単語リストや過去のDNS/TLSレコードなど)を利用して、より対応するドメイン名を正確に合成し、DNSスキャン中に収集した情報に基づいてループ内でさらに拡張します。
私が書いたブログ記事をチェックしてください。Trickestワークフローを使用してドメインからサブドメイン発見を自動化する方法について説明しています。これにより、コンピュータでツールを手動で起動する必要がなくなります:
サブドメインに属する1つまたは複数のウェブページを含むIPアドレスを見つけた場合、そのIP内のウェブを持つ他のサブドメインを見つけるために、OSINTソースでIP内のドメインを探すか、そのIP内のVHostドメイン名をブルートフォースすることを試みることができます。
HostHunter や他のAPIを使用してIP内のいくつかのVHostsを見つけることができます。
ブルートフォース
ウェブサーバーに隠されたサブドメインがあると疑う場合、ブルートフォースを試みることができます:
この技術を使うことで、内部/隠れたエンドポイントにアクセスできる場合があります。
時には、Origin ヘッダーに有効なドメイン/サブドメインが設定されているときにのみ、Access-Control-Allow-Origin ヘッダーを返すページを見つけることがあります。このようなシナリオでは、この動作を悪用して新しい サブドメイン を 発見 することができます。
サブドメインを探しているときは、バケットのいずれかにポイントしているかどうかに注意し、その場合は権限を確認してください。 また、この時点でスコープ内のすべてのドメインを知っているので、可能なバケット名をブルートフォースし、権限を確認してみてください。
新しいサブドメインが作成されたかどうかをCertificate Transparencyログを監視することでモニタできます。sublertがそれを行います。
可能なサブドメインテイクオーバーを確認してください。 もしサブドメインがS3バケットを指している場合は、権限を確認してください。
もし資産発見で見つけたものとは異なるIPを持つサブドメインを見つけた場合は、基本的な脆弱性スキャン(NessusまたはOpenVASを使用)と、nmap/masscan/shodanを使ったポートスキャンを実行するべきです。実行中のサービスによっては、この本にあるいくつかのトリックで「攻撃」することができるかもしれません。 &#xNAN;Noteとして、サブドメインがクライアントによって制御されていないIP内にホストされている場合があるため、スコープ外であることに注意してください。
初期のステップでいくつかの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は、フィッシングキャンペーンに役立つ、メールの背後にいる人物に関するさらなる情報を提供します。
ドメイン、サブドメイン、およびメールを使用して、過去に漏洩した資格情報を探し始めることができます:
有効な漏洩した資格情報を見つけた場合、これは非常に簡単な勝利です。
資格情報の漏洩は、機密情報が漏洩して販売された企業のハッキングに関連しています。ただし、企業は、これらのデータベースに情報がない他の漏洩の影響を受ける可能性があります:
資格情報やAPIは、会社やそのユーザーの公開リポジトリで漏洩する可能性があります。 Leakosというツールを使用して、組織とその開発者のすべての公開リポジトリをダウンロードし、自動的にgitleaksを実行できます。
Leakosは、提供されたURLに対してgitleaksを実行するためにも使用でき、時にはウェブページにも秘密が含まれていることがあります。
攻撃している組織で検索できる潜在的なgithub dorksについては、このページも確認してください:
Github Dorks & Leaks時には攻撃者や単なる従業員が会社のコンテンツをペーストサイトに公開します。これには機密情報が含まれている場合もあれば、含まれていない場合もありますが、検索するのは非常に興味深いです。 Pastosというツールを使用して、80以上のペーストサイトを同時に検索できます。
古いですが有用な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 - 少し古く、更新されていません
ハッキングキャリアに興味があり、ハッキング不可能なものをハッキングしたい - 私たちは採用しています!(流暢なポーランド語の読み書きが必要)。
バグバウンティのヒント: サインアップしてIntigritiに参加しましょう。ハッカーによって、ハッカーのために作られたプレミアムバグバウンティプラットフォームです!今日、https://go.intigriti.com/hacktricksに参加して、最大**$100,000**の報酬を得始めましょう!
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)