外部リコンメソッド

Reading time: 48 minutes

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする

資産の発見

ある会社に属するすべてのものがスコープ内にあると言われており、その会社が実際に何を所有しているのかを把握したいと思っています。

このフェーズの目標は、主要な会社が所有するすべての会社を取得し、次にこれらの会社の資産を取得することです。そのために、私たちは以下を行います:

  1. 主要な会社の買収を見つけます。これにより、スコープ内の会社がわかります。
  2. 各会社のASN(もしあれば)を見つけます。これにより、各会社が所有するIP範囲がわかります。
  3. 逆whois検索を使用して、最初の会社に関連する他のエントリ(組織名、ドメインなど)を検索します(これは再帰的に行うことができます)。
  4. 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)は最初のリンクにすでに表示されています。

bash
#You can try "automate" this with amass, but it's not very recommended
amass intel -org tesla
amass intel -asn 8911,50313,394161

また、BBOTサブドメイン列挙は、スキャンの最後にASNを自動的に集約して要約します。

bash
bbot -t tesla.com -f subdomain-enum
...
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
[INFO] bbot.modules.asn: | AS394161 | 8.244.131.0/24      | 5            | TESLA          | Tesla Motors, Inc.         | US        |
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
[INFO] bbot.modules.asn: | AS16509  | 54.148.0.0/15       | 4            | AMAZON-02      | Amazon.com, Inc.           | US        |
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
[INFO] bbot.modules.asn: | AS394161 | 8.45.124.0/24       | 3            | TESLA          | Tesla Motors, Inc.         | US        |
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
[INFO] bbot.modules.asn: | AS3356   | 8.32.0.0/12         | 1            | LEVEL3         | Level 3 Parent, LLC        | US        |
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+
[INFO] bbot.modules.asn: | AS3356   | 8.0.0.0/9           | 1            | LEVEL3         | Level 3 Parent, LLC        | US        |
[INFO] bbot.modules.asn: +----------+---------------------+--------------+----------------+----------------------------+-----------+

あなたは、http://asnlookup.com/を使用して、組織のIP範囲を見つけることができます(無料の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)を使用してみてください。

bash
dnsrecon -r <DNS Range> -n <IP_DNS>   #DNS reverse of all of the addresses
dnsrecon -d facebook.com -r 157.240.221.35/24 #Using facebooks dns
dnsrecon -r 157.240.221.35/24 -n 1.1.1.1 #Using cloudflares dns
dnsrecon -r 157.240.221.35/24 -n 8.8.8.8 #Using google dns

この機能を利用するには、管理者が手動でPTRを有効にする必要があります。
この情報のためにオンラインツールを使用することもできます: http://ptrarchive.com/

逆Whois(ループ)

whoisの中には、組織名住所メール、電話番号などの多くの興味深い情報が含まれています... しかし、さらに興味深いのは、これらのフィールドのいずれかで逆whois検索を行うことで、会社に関連する他の資産を見つけることができることです(例えば、同じメールが表示される他のwhoisレジストリ)。
次のようなオンラインツールを使用できます:

DomLink を使用してこのタスクを自動化できます(whoxy APIキーが必要です)。
また、amassを使用して自動逆whois発見を行うこともできます: amass intel -d tesla.com -whois

新しいドメインを見つけるたびに、この技術を使用してさらに多くのドメイン名を発見できることに注意してください。

トラッカー

異なる2つのページで同じトラッカーの同じIDを見つけた場合、両方のページ同じチームによって管理されていると推測できます。
例えば、複数のページで同じGoogle Analytics IDや同じAdsense IDを見た場合です。

これらのトラッカーやその他の情報を検索できるページやツールがあります:

ファビコン

同じファビコンアイコンのハッシュを探すことで、ターゲットに関連するドメインやサブドメインを見つけることができることをご存知でしたか?これは、@m4ll0k2によって作成されたツールfavihash.pyが行うことです。使用方法は次のとおりです:

bash
cat my_targets.txt | xargs -I %% bash -c 'echo "http://%%/favicon.ico"' > targets.txt
python3 favihash.py -f https://target/favicon.ico -t targets.txt -s

favihash - 同じfaviconアイコンハッシュを持つドメインを発見する

簡単に言うと、favihashはターゲットと同じfaviconアイコンハッシュを持つドメインを発見することを可能にします。

さらに、このブログ記事で説明されているように、faviconハッシュを使用して技術を検索することもできます。つまり、脆弱なバージョンのウェブ技術のfaviconのハッシュを知っていれば、shodanで検索してより多くの脆弱な場所を見つけることができます。

bash
shodan search org:"Target" http.favicon.hash:116323821 --fields ip_str,port --separator " " | awk '{print $1":"$2}'

これはウェブのファビコンハッシュを計算する方法です:

python
import mmh3
import requests
import codecs

def fav_hash(url):
response = requests.get(url)
favicon = codecs.encode(response.content,"base64")
fhash = mmh3.hash(favicon)
print(f"{url} : {fhash}")
return fhash

異なるウェブサイト間で共有される可能性のある文字列をウェブページ内で検索します。同じ組織内での著作権文字列が良い例です。その後、googleや他のブラウザ、さらにはshodanでその文字列を検索します: shodan search http.html:"Copyright string"

CRT Time

cronジョブを持つことは一般的です。

bash
# /etc/crontab
37 13 */10 * * certbot renew --post-hook "systemctl reload nginx"

サーバー上のすべてのドメイン証明書を更新することです。これは、これに使用されるCAが有効期限に生成された時間を設定していなくても、証明書透明性ログで同じ会社に属するドメインを見つけることが可能であることを意味します。
この詳細情報のための書き込みをチェックしてください。

Mail 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スペースを所有する組織の名前がわかっているので、そのデータを使用してshodanで検索できます: org:"Tesla, Inc." 見つかったホストをチェックして、TLS証明書に新しい予期しないドメインがないか確認してください。

メインウェブページのTLS証明書にアクセスし、組織名を取得し、その名前を持つTLS証明書を持つすべてのウェブページをshodan内でフィルターを使用して検索できます: ssl:"Tesla Motors" またはsslsearchのようなツールを使用します。

Assetfinder

Assetfinderは、メインドメインに関連するドメインとそのサブドメインを探すツールで、非常に素晴らしいです。

脆弱性の検索

いくつかのドメインテイクオーバーをチェックしてください。ある会社がドメインを使用しているが、所有権を失った可能性があります。十分に安価であれば、それを登録し、会社に知らせてください。

もし、資産発見で見つけたものとは異なるIPを持つドメインを見つけた場合、基本的な脆弱性スキャン(NessusまたはOpenVASを使用)と、nmap/masscan/shodanを使用したいくつかのポートスキャンを実行するべきです。どのサービスが実行されているかに応じて、この本で「攻撃」するためのいくつかのトリックを見つけることができます
ドメインがクライアントによって制御されていないIP内にホストされていることがあるため、スコープ外であることに注意してください。注意が必要です。

サブドメイン

スコープ内のすべての会社、各会社のすべての資産、および会社に関連するすべてのドメインを知っています。

見つかった各ドメインのすべての可能なサブドメインを見つける時です。

tip

ドメインを見つけるためのいくつかのツールや技術は、サブドメインを見つけるのにも役立つことに注意してください。

DNS

DNSレコードからサブドメインを取得しようとしましょう。ゾーン転送も試みるべきです(脆弱な場合は報告する必要があります)。

bash
dnsrecon -a -d tesla.com

OSINT

多くのサブドメインを迅速に取得する最も効果的な方法は、外部ソースで検索することです。最も使用されるツールは以下の通りです(より良い結果を得るためにAPIキーを設定してください):

bash
# subdomains
bbot -t tesla.com -f subdomain-enum

# subdomains (passive only)
bbot -t tesla.com -f subdomain-enum -rf passive

# subdomains + port scan + web screenshots
bbot -t tesla.com -f subdomain-enum -m naabu gowitness -n my_scan -o .
bash
amass enum [-active] [-ip] -d tesla.com
amass enum -d tesla.com | grep tesla.com # To just list subdomains
bash
# Subfinder, use -silent to only have subdomains in the output
./subfinder-linux-amd64 -d tesla.com [-silent]
bash
# findomain, use -silent to only have subdomains in the output
./findomain-linux -t tesla.com [--quiet]
bash
python3 oneforall.py --target tesla.com [--dns False] [--req False] [--brute False] run
bash
assetfinder --subs-only <domain>
bash
# It requires that you create a sudomy.api file with API keys
sudomy -d tesla.com
vita -d tesla.com
bash
theHarvester -d tesla.com -b "anubis, baidu, bing, binaryedge, bingapi, bufferoverun, censys, certspotter, crtsh, dnsdumpster, duckduckgo, fullhunt, github-code, google, hackertarget, hunter, intelx, linkedin, linkedin_links, n45ht, omnisint, otx, pentesttools, projectdiscovery, qwant, rapiddns, rocketreach, securityTrails, spyse, sublist3r, threatcrowd, threatminer, trello, twitter, urlscan, virustotal, yahoo, zoomeye"

他にも興味深いツール/APIがあり、サブドメインの発見に特化していなくてもサブドメインを見つけるのに役立つことがあります。例えば:

bash
# Get list of subdomains in output from the API
## This is the API the crobat tool will use
curl https://sonar.omnisint.io/subdomains/tesla.com | jq -r ".[]"
bash
curl https://jldc.me/anubis/subdomains/tesla.com | jq -r ".[]"
bash
# Get Domains from rapiddns free API
rapiddns(){
curl -s "https://rapiddns.io/subdomain/$1?full=1" \
| grep -oE "[\.a-zA-Z0-9-]+\.$1" \
| sort -u
}
rapiddns tesla.com
bash
# Get Domains from crt free API
crt(){
curl -s "https://crt.sh/?q=%25.$1" \
| grep -oE "[\.a-zA-Z0-9-]+\.$1" \
| sort -u
}
crt tesla.com
  • gau: 指定されたドメインに対して、AlienVaultのOpen Threat Exchange、Wayback Machine、およびCommon Crawlから既知のURLを取得します。
bash
# Get subdomains from GAUs found URLs
gau --subs tesla.com | cut -d "/" -f 3 | sort -u
  • SubDomainizer & subscraper: これらはウェブをスクレイピングしてJSファイルを探し、そこからサブドメインを抽出します。
bash
# Get only subdomains from SubDomainizer
python3 SubDomainizer.py -u https://tesla.com | grep tesla.com

# Get only subdomains from subscraper, this already perform recursion over the found results
python subscraper.py -u tesla.com | grep tesla.com | cut -d " " -f
bash
# Get info about the domain
shodan domain <domain>
# Get other pages with links to subdomains
shodan search "http.html:help.domain.com"
bash
export CENSYS_API_ID=...
export CENSYS_API_SECRET=...
python3 censys-subdomain-finder.py tesla.com
bash
python3 DomainTrail.py -d example.com

このプロジェクトは、バグバウンティプログラムに関連するすべてのサブドメインを無料で提供しています。このデータには、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ブルートフォースを実行した最初のツールです。非常に高速ですが、誤検知が発生しやすいです。
bash
sed 's/$/.domain.com/' subdomains.txt > bf-subdomains.txt
./massdns -r resolvers.txt -w /tmp/results.txt bf-subdomains.txt
grep -E "tesla.com. [0-9]+ IN A .+" /tmp/results.txt
  • gobuster: これは1つのリゾルバを使用していると思います。
gobuster dns -d mysite.com -t 50 -w subdomains.txt
  • shuffledns は、massdns のラッパーで、Go で書かれており、アクティブブルートフォースを使用して有効なサブドメインを列挙することができ、ワイルドカード処理と簡単な入出力サポートを使用してサブドメインを解決することができます。
shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt
  • puredns: それは massdns も使用します。
puredns bruteforce all.txt domain.com
  • aiodnsbrute は、非同期にドメイン名をブルートフォースするために asyncio を使用します。
aiodnsbrute -r resolvers -w wordlist.txt -vv -t 1024 domain.com

第二のDNSブルートフォースラウンド

オープンソースとブルートフォースを使用してサブドメインを見つけた後、見つかったサブドメインの変種を生成してさらに多くを見つけることができます。この目的のために役立つツールがいくつかあります:

  • dnsgen: ドメインとサブドメインを与えると、順列を生成します。
bash
cat subdomains.txt | dnsgen -
  • goaltdns: ドメインとサブドメインを与えると、順列を生成します。
  • wordlist の goaltdns 順列は こちら で入手できます。
bash
goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3.txt
  • gotator: ドメインとサブドメインを与えると、順列を生成します。順列ファイルが指定されていない場合、gotatorは独自のファイルを使用します。
gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt]
  • altdns: サブドメインの順列を生成するだけでなく、それらを解決しようとすることもできます(ただし、前述のツールを使用する方が良いです)。
  • altdnsの順列のwordlistこちらで入手できます。
altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3
  • dmut: サブドメインの順列、変異、変更を行うための別のツールです。このツールは結果をブルートフォースします(DNSワイルドカードはサポートしていません)。
  • dmutの順列ワードリストはこちらから取得できます。
bash
cat subdomains.txt | dmut -d /tmp/words-permutations.txt -w 100 \
--dns-errorLimit 10 --use-pb --verbose -s /tmp/resolvers-trusted.txt
  • alterx: 指定されたパターンに基づいて、ドメインに基づいて新しい潜在的なサブドメイン名を生成し、より多くのサブドメインを発見しようとします。

スマートな順列生成

  • regulator: 詳細についてはこの投稿を読んでくださいが、基本的には発見されたサブドメイン主要部分を取得し、それらを混ぜてより多くのサブドメインを見つけます。
bash
python3 main.py adobe.com adobe adobe.rules
make_brute_list.sh adobe.rules adobe.brute
puredns resolve adobe.brute --write adobe.valid
  • subzuf: subzuf は、非常にシンプルで効果的なDNS応答ガイドアルゴリズムと組み合わされたサブドメインブルートフォースファズァです。提供された入力データセット(カスタマイズされた単語リストや過去のDNS/TLSレコードなど)を利用して、より対応するドメイン名を正確に合成し、DNSスキャン中に収集した情報に基づいてさらにループで拡張します。
echo www | subzuf facebook.com

サブドメイン発見ワークフロー

私が書いたブログ記事をチェックしてください。Trickest workflowsを使用してドメインからサブドメインの発見を自動化する方法について説明しています。これにより、コンピュータでツールを手動で起動する必要がなくなります:

https://trickest.com/blog/full-subdomain-discovery-using-workflow/

https://trickest.com/blog/full-subdomain-brute-force-discovery-using-workflow/

VHosts / バーチャルホスト

サブドメインに属する1つまたは複数のウェブページを含むIPアドレスを見つけた場合、そのIP内のウェブを持つ他のサブドメインを見つけるために、OSINTソースでIP内のドメインを探すか、そのIP内のVHostドメイン名をブルートフォースすることを試みることができます。

OSINT

HostHunter や他のAPIを使用して、IP内のいくつかのVHostsを見つけることができます

ブルートフォース

ウェブサーバーに隠されたサブドメインがあると疑う場合、それをブルートフォースすることを試みることができます:

bash
ffuf -c -w /path/to/wordlist -u http://victim.com -H "Host: FUZZ.victim.com"

gobuster vhost -u https://mysite.com -t 50 -w subdomains.txt

wfuzz -c -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-20000.txt --hc 400,404,403 -H "Host: FUZZ.example.com" -u http://example.com -t 100

#From https://github.com/allyshka/vhostbrute
vhostbrute.py --url="example.com" --remoteip="10.1.1.15" --base="www.example.com" --vhosts="vhosts_full.list"

#https://github.com/codingo/VHostScan
VHostScan -t example.com

note

この技術を使うことで、内部/隠れたエンドポイントにアクセスできる場合があります。

CORSブルートフォース

時々、Origin ヘッダーに有効なドメイン/サブドメインが設定されている場合にのみ、Access-Control-Allow-Origin ヘッダーを返すページを見つけることがあります。このようなシナリオでは、この動作を悪用して新しいサブドメイン発見することができます。

bash
ffuf -w subdomains-top1million-5000.txt -u http://10.10.10.208 -H 'Origin: http://FUZZ.crossfit.htb' -mr "Access-Control-Allow-Origin" -ignore-body

バケットブルートフォース

サブドメインを探しているときは、バケットポイントしているかどうかに注意し、その場合は権限を確認してください。
また、この時点でスコープ内のすべてのドメインを知っているので、可能なバケット名をブルートフォースし、権限を確認してください。

モニタリング

新しいサブドメインが作成されたかどうかをモニタリングするには、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を使用することができます
ウェブサーバーを探すためのもう一つの便利なツールは、httprobefprobeおよびhttpxです。ドメインのリストを渡すだけで、ポート80(http)と443(https)に接続しようとします。さらに、他のポートを試すように指示することもできます:

bash
cat /tmp/domains.txt | httprobe #Test all domains inside the file for port 80 and 443
cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 and 8080 and 8443

スクリーンショット

すべてのウェブサーバーを発見したので、どこから始めればよいかわからないかもしれません。そこで、シンプルにすべてのスクリーンショットを撮ることから始めましょう。メインページ見るだけで、脆弱性がある可能性の高い奇妙なエンドポイントを見つけることができます。

提案されたアイデアを実行するには、EyeWitnessHttpScreenshotAquatoneShutterGowitnessまたはwebscreenshotを使用できます。

さらに、eyeballerを使用して、すべてのスクリーンショットを確認し、脆弱性を含む可能性が高いものとそうでないものを教えてもらうことができます。

パブリッククラウド資産

企業に属する潜在的なクラウド資産を見つけるには、その企業を特定するキーワードのリストから始めるべきです。たとえば、暗号通貨会社の場合、次のような単語を使用することがあります:"crypto", "wallet", "dao", "<domain_name>", <"subdomain_names">

また、バケットで使用される一般的な単語のワードリストも必要です:

次に、それらの単語を使用して順列を生成する必要があります(詳細については第二ラウンドDNSブルートフォースを参照してください)。

生成されたワードリストを使用して、cloud_enum CloudScraper cloudlist または S3Scannerを使用できます。

クラウド資産を探す際には、AWSのバケットだけでなく、他のものも探すべきです。

脆弱性の検索

オープンバケットや公開されたクラウド機能などを見つけた場合は、それにアクセスして、何を提供しているのか、悪用できるかどうかを確認する必要があります。

メール

スコープ内のドメインサブドメインを持っているので、メールを検索するために必要なすべてのものがあります。これらは、企業のメールを見つけるために私が最も効果的だと感じたAPIツールです:

脆弱性の検索

メールは、ウェブログインや認証サービス(SSHなど)をブルートフォースする際に役立ちます。また、フィッシングにも必要です。さらに、これらのAPIは、メールの背後にいる人物に関するさらなる情報を提供してくれます。これはフィッシングキャンペーンに役立ちます。

資格情報の漏洩

ドメイン、 サブドメイン、 メールを使用して、過去に漏洩した資格情報を探し始めることができます:

脆弱性の検索

有効な漏洩した資格情報を見つけた場合、これは非常に簡単な勝利です。

秘密の漏洩

資格情報の漏洩は、機密情報が漏洩して販売された企業のハッキングに関連しています。ただし、企業は、これらのデータベースに情報がない他の漏洩の影響を受ける可能性があります:

Githubの漏洩

資格情報やAPIは、企業やそのユーザー公開リポジトリで漏洩する可能性があります。
Leakosというツールを使用して、組織とその開発者のすべての公開リポジトリダウンロードし、自動的にgitleaksを実行できます。

Leakosは、提供されたURLに渡されたすべてのテキストに対してgitleaksを実行するためにも使用できます。時にはウェブページにも秘密が含まれていることがあります。

Github Dorks

攻撃している組織で検索できる潜在的なgithub dorksについては、このページも確認してください:

Github Dorks & Leaks

Pasteの漏洩

時には攻撃者や単なる従業員が会社のコンテンツをペーストサイトに公開します。これには機密情報が含まれている場合もあれば、含まれていない場合もありますが、検索するのは非常に興味深いです。
Pastosというツールを使用して、80以上のペーストサイトを同時に検索できます。

Google Dorks

古くても金の価値があるGoogle Dorksは、そこにあるべきでない情報を見つけるのに常に役立ちます。唯一の問題は、google-hacking-databaseに、手動で実行できない数千の可能なクエリが含まれていることです。したがって、お気に入りの10個を取得するか、Gorksのようなツールを使用してすべてを実行することができます。

すべてのデータベースを通常のGoogleブラウザを使用して実行しようとするツールは、非常に早くGoogleにブロックされるため、決して終わらないことに注意してください。

脆弱性の検索

有効な漏洩した資格情報やAPIトークンを見つけた場合、これは非常に簡単な勝利です。

公開コードの脆弱性

企業がオープンソースコードを持っていることがわかった場合、それを分析して脆弱性を探すことができます。

言語によって異なるツールを使用できます:

Source code Review / SAST Tools

また、公開リポジトリをスキャンするための無料サービスもあります:

ウェブペンテスト手法

バグハンターによって見つかった脆弱性の大部分ウェブアプリケーション内に存在するため、この時点でウェブアプリケーションテスト手法について話したいと思います。詳細はこちらで確認できます

また、オープンソースツールのウェブ自動スキャナーのセクションにも特別な言及をしたいと思います。非常に機密性の高い脆弱性を見つけることを期待すべきではありませんが、初期のウェブ情報を得るためのワークフローに役立ちます。

再確認

おめでとうございます!この時点で、すべての基本的な列挙をすでに実行しています。はい、これは基本的なもので、さらに多くの列挙が可能です(後でさらにトリックを見ていきます)。

したがって、すでに次のことを行っています:

  1. スコープ内のすべての企業を見つけた
  2. 企業に属するすべての資産を見つけた(スコープ内で脆弱性スキャンを実行)
  3. 企業に属するすべてのドメインを見つけた
  4. ドメインのすべてのサブドメインを見つけた(サブドメインの乗っ取りはありますか?)
  5. スコープ内のすべてのIP(CDNからのものとそうでないもの)を見つけた
  6. すべてのウェブサーバーを見つけ、スクリーンショットを撮った(深く見る価値のある奇妙なものはありますか?)
  7. 企業に属するすべての潜在的なパブリッククラウド資産を見つけた
  8. メール資格情報の漏洩、および秘密の漏洩があり、非常に簡単に大きな勝利を得ることができる
  9. 見つけたすべてのウェブをペンテスト

フルリコン自動ツール

特定のスコープに対して提案されたアクションの一部を実行するツールがいくつかあります。

参考文献

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする