.. | ||
github-leaked-secrets.md | ||
README.md | ||
wide-source-code-search.md |
外部リコンの方法論
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- サイバーセキュリティ企業で働いていますか? HackTricksで会社を宣伝したいですか?または、最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
- The PEASS Familyを見つけてください。独占的なNFTのコレクションです。
- 公式のPEASS&HackTricksのグッズを手に入れましょう。
- 💬 Discordグループまたはtelegramグループに参加するか、Twitterで🐦@carlospolopmをフォローしてください。
- ハッキングのトリックを共有するには、hacktricks repo と hacktricks-cloud repo にPRを提出してください。
バグバウンティのヒント: Intigritiにサインアップしてください。これは、ハッカーによって作成されたプレミアムなバグバウンティプラットフォームです!今すぐhttps://go.intigriti.com/hacktricksに参加して、最大**$100,000**のバウンティを獲得しましょう!
{% embed url="https://go.intigriti.com/hacktricks" %}
資産の発見
あなたは、ある会社に属するすべてのものが対象範囲に含まれていると言われ、この会社が実際に所有しているものを特定したいと思っています。
このフェーズの目標は、まず主要な会社が所有する他の会社を取得し、それらの会社の資産をすべて取得することです。これを行うために、次の手順を実行します。
- 主要な会社の買収を見つけることで、対象範囲内の会社を特定します。
- 各会社の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)**は、最初のリンクにすでに表示されています。
#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を自動的に集約し、要約します。
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: +----------+---------------------+--------------+----------------+----------------------------+-----------+
組織の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)を使用してみてください。
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
逆引き (ループ)
whoisの中には、組織名、住所、メールアドレス、電話番号など、興味深い情報がたくさん含まれています。しかし、さらに興味深いのは、これらのフィールドのいずれかで逆引きの検索を行うと、会社に関連するさらなる資産を見つけることができることです(たとえば、同じメールアドレスが登録されている他のwhoisレジストリ)。
以下のようなオンラインツールを使用することができます:
- https://viewdns.info/reversewhois/ - 無料
- https://domaineye.com/reverse-whois - 無料
- https://www.reversewhois.io/ - 無料
- https://www.whoxy.com/ - 無料(ウェブは無料ですが、APIは有料です)
- http://reversewhois.domaintools.com/ - 有料
- https://drs.whoisxmlapi.com/reverse-whois-search - 有料(100回まで無料)
- https://www.domainiq.com/ - 有料
DomLink を使用して、このタスクを自動化することもできます(whoxy APIキーが必要です)。
また、amassを使用して、自動的な逆引きの検出を行うこともできます:amass intel -d tesla.com -whois
新しいドメインを見つけるたびに、この技術を使用してさらに多くのドメイン名を発見することができることに注意してください。
トラッカー
2つの異なるページで同じトラッカーのIDを見つけた場合、両方のページが同じチームによって管理されていると推測できます。
たとえば、複数のページで同じGoogle AnalyticsのIDや同じAdsenseのIDを見つけた場合です。
これらのトラッカーやその他の情報を検索できるいくつかのページやツールがあります:
Favicon
同じfaviconアイコンのハッシュを探すことで、ターゲットと関連するドメインやサブドメインを見つけることができることを知っていましたか?これは、@m4ll0k2が作成したfavihash.pyツールがまさにそれを行うものです。以下は、その使い方です:
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は、ターゲットと同じファビコンアイコンハッシュを持つドメインを発見することができます。
さらに、このブログポストで説明されているように、ファビコンハッシュを使用して技術を検索することもできます。つまり、脆弱なバージョンのウェブ技術のファビコンのハッシュを知っている場合、shodanで検索してより多くの脆弱な場所を見つけることができます。
shodan search org:"Target" http.favicon.hash:116323821 --fields ip_str,port --separator " " | awk '{print $1":"$2}'
これは、ウェブのファビコンハッシュを計算する方法です。
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:"著作権の文字列"
CRT時間
よくあるcronジョブの例として、以下のようなものがあります。
# /etc/crontab
37 13 */10 * * certbot renew --post-hook "systemctl reload nginx"
サーバー上のすべてのドメイン証明書を更新します。これは、このために使用されるCAが有効期間内に生成された時間を設定しない場合でも、証明書透明性ログで同じ会社に所属するドメインを見つけることができます。 詳細については、こちらの記事をご覧ください。
パッシブな乗っ取り
おそらく、人々はクラウドプロバイダーに属するIPにサブドメインを割り当て、ある時点でそのIPアドレスを失い、DNSレコードを削除することを忘れることがよくあります。したがって、Digital OceanのようなクラウドでVMを起動するだけで、実際にはいくつかのサブドメインを乗っ取ることができます。
この記事では、それについてのストーリーを説明し、DigitalOceanでVMを起動し、新しいマシンのIPv4を取得し、それを指すサブドメインレコードをVirustotalで検索するスクリプトを提案しています。
その他の方法
新しいドメインを見つけるたびに、この技術を使用してさらに多くのドメイン名を発見できることに注意してください。
Shodan
すでにIPスペースを所有している組織の名前を知っているので、そのデータでShodanで検索できます: org:"Tesla, Inc."
TLS証明書で新しい予期しないドメインを見つけてください。
メインのウェブページのTLS証明書にアクセスし、組織名を取得し、shodanで知られているすべてのウェブページのTLS証明書内でその名前を検索します。フィルターは次のとおりです: ssl:"Tesla Motors"
Assetfinder
Assetfinderは、メインドメインに関連するドメインとそのサブドメインを探すツールです。
脆弱性の検索
ドメイン乗っ取りをチェックしてください。おそらく会社がドメインを使用しているが、所有権を失っているかもしれません。安価な場合は登録して、会社に知らせてください。
アセットの発見で既に見つかったIPとは異なるIPを持つドメインを見つけた場合、基本的な脆弱性スキャン(NessusまたはOpenVASを使用)とポートスキャン(nmap/masscan/shodanを使用)を実行する必要があります。実行中のサービスに応じて、この本にはそれらを"攻撃"するためのトリックがいくつかあります。 なお、ドメインがクライアントによって制御されていないIP内にホストされている場合は、対象外ですので注意してください。
バグバウンティのヒント: ハッカーによって作成されたプレミアムのバグバウンティプラットフォームであるIntigritiに登録してください!今すぐhttps://go.intigriti.com/hacktricksに参加し、最大**$100,000**の報奨金を獲得しましょう!
{% embed url="https://go.intigriti.com/hacktricks" %}
サブドメイン
スコープ内のすべての企業、各企業のアセット、および企業に関連するすべてのドメインを知っています。
見つかった各ドメインの可能なサブドメインをすべて見つける時が来ました。
DNS
DNSレコードからサブドメインを取得しましょう。また、ゾーン転送についても試してみてください(脆弱性がある場合は報告してください)。
dnsrecon -a -d tesla.com
OSINT
大量のサブドメインを取得する最速の方法は、外部ソースで検索することです。最もよく使われるツールは以下のものです(より良い結果を得るためには、APIキーを設定してください):
# 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 .
amass enum [-active] [-ip] -d tesla.com
amass enum -d tesla.com | grep tesla.com # To just list subdomains
# Subfinder, use -silent to only have subdomains in the output
./subfinder-linux-amd64 -d tesla.com [-silent]
# findomain, use -silent to only have subdomains in the output
./findomain-linux -t tesla.com [--quiet]
python3 oneforall.py --target tesla.com [--dns False] [--req False] [--brute False] run
assetfinder --subs-only <domain>
# It requires that you create a sudomy.api file with API keys
sudomy -d tesla.com
vita -d tesla.com
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があります。これらは直接的にはサブドメインを見つけることに特化していませんが、サブドメインを見つけるのに役立つかもしれません。
- Crobat: https://sonar.omnisint.ioのAPIを使用してサブドメインを取得します。
# 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 ".[]"
curl https://jldc.me/anubis/subdomains/tesla.com | jq -r ".[]"
- RapidDNSは無料のAPIです。
# 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
# 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を取得します。
# Get subdomains from GAUs found URLs
gau --subs tesla.com | cut -d "/" -f 3 | sort -u
- SubDomainizer & subscraper: ウェブをスクラップし、JSファイルからサブドメインを抽出します。
# 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
# Get info about the domain
shodan domain <domain>
# Get other pages with links to subdomains
shodan search "http.html:help.domain.com"
export CENSYS_API_ID=...
export CENSYS_API_SECRET=...
python3 censys-subdomain-finder.py tesla.com
- securitytrails.comは、サブドメインとIPの履歴を検索するための無料のAPIを提供しています。
- chaos.projectdiscovery.ioは、バグバウンティプログラムに関連するすべてのサブドメインを無料で提供しています。このデータには、chaospyを使用してアクセスすることもできます。また、このプロジェクトが使用するスコープにもアクセスできます。https://github.com/projectdiscovery/chaos-public-program-list
ここでは、これらのツールの比較を見つけることができます:https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off
DNSブルートフォース
可能なサブドメイン名を使用して、DNSサーバーをブルートフォースして新しいサブドメインを見つけてみましょう。
この作業には、次のような一般的なサブドメインのワードリストが必要です:
- https://gist.github.com/jhaddix/86a06c5dc309d08580a018c66354a056
- https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt
- https://localdomain.pw/subdomain-bruteforce-list/all.txt.zip
- https://github.com/pentester-io/commonspeak
- https://github.com/danielmiessler/SecLists/tree/master/Discovery/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ブルートフォースを実行した最初のツールです。非常に高速ですが、誤検知のリスクがあります。
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は、goで書かれた
massdns
のラッパーであり、アクティブなブルートフォースを使用して有効なサブドメインを列挙することができます。また、ワイルドカードの処理や簡単な入出力のサポートを行うこともできます。
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: ドメインとサブドメインを与えられた場合、順列を生成します。
cat subdomains.txt | dnsgen -
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の組み合わせのワードリストはこちらで入手できます。
altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3
- dmut: サブドメインのパーミュテーション、変異、および変更を実行するための別のツールです。このツールは結果をブルートフォース攻撃します(DNSワイルドカードはサポートされていません)。
- こちらからdmutのパーミュテーションワードリストを取得できます。
cat subdomains.txt | dmut -d /tmp/words-permutations.txt -w 100 \
--dns-errorLimit 10 --use-pb --verbose -s /tmp/resolvers-trusted.txt
- alterx: ドメインに基づいて、指定されたパターンに基づいて新しい潜在的なサブドメイン名を生成し、より多くのサブドメインを発見しようとします。
スマートな順列生成
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ワークフローを使用してドメインからのサブドメインの発見を自動化する方法について書いています。これにより、手動で複数のツールを起動する必要がありません。
{% embed url="https://trickest.com/blog/full-subdomain-discovery-using-workflow/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/blog/full-subdomain-brute-force-discovery-using-workflow/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
VHosts / 仮想ホスト
サブドメインに属する1つまたは複数のウェブページを含むIPアドレスを見つけた場合、そのIP内の他のサブドメインを見つけるために、OSINTソースでIP内のドメインを検索するか、そのIP内のVHostドメイン名をブルートフォースすることができます。
OSINT
HostHunter や他のAPIを使用して、いくつかのIP内のVHostを見つけることができます。
ブルートフォース
ウェブサーバーに隠されている可能性のあるいくつかのサブドメインを疑っている場合は、ブルートフォースしてみることができます。
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
{% hint style="info" %} このテクニックを使えば、内部/非公開のエンドポイントにアクセスすることもできるかもしれません。 {% endhint %}
CORSブルートフォース
時には、有効なドメイン/サブドメインが_Originヘッダーに設定されている場合にのみ、ページがヘッダーAccess-Control-Allow-Origin_を返すページがあります。このようなシナリオでは、この動作を悪用して、新しいサブドメインを発見することができます。
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
バケットのブルートフォース
サブドメインを探している間に、それがどの種類のバケットを指しているかを確認し、その場合はアクセス許可をチェックしてください。
また、この時点でスコープ内のすべてのドメインを知っているので、可能なバケット名をブルートフォースし、アクセス許可をチェックしてみてください。
モニタリング
ドメインの新しいサブドメインが作成されたかどうかを証明書の透過性ログを監視することでモニタリングできます。sublertを使用してください。
脆弱性の探索
サブドメインの乗っ取りの可能性をチェックしてください。
もしサブドメインがS3バケットを指している場合は、アクセス許可をチェックしてください。
アセットの発見で既に見つかったIPとは異なるIPを持つサブドメインを見つけた場合は、基本的な脆弱性スキャン(NessusやOpenVASを使用)とポートスキャン(nmap/masscan/shodanを使用)を実行する必要があります。実行中のサービスによっては、この本にはそれらを"攻撃"するためのトリックがいくつかあります。
なお、サブドメインがクライアントによって制御されていないIP内にホストされている場合は、スコープ外なので注意してください。
IP
初期のステップでいくつかのIP範囲、ドメイン、サブドメインを見つけたかもしれません。
これらの範囲からすべてのIPと**ドメイン/サブドメイン(DNSクエリ)**を収集する時が来ました。
以下の無料APIのサービスを使用すると、ドメインとサブドメインが使用した以前のIPも見つけることができます。これらのIPはクライアントが所有している可能性があります(そしてCloudFlareのバイパスを見つけることができるかもしれません)。
脆弱性の探索
CDNに所属していないすべてのIPにポートスキャンを実行してください(おそらくそこに興味深いものは見つからないでしょう)。見つかった実行中のサービスには、脆弱性が見つかるかもしれません。
ホストのスキャン方法についてのガイド を見つけてください。
Webサーバーの探索
すべての企業とその資産を見つけ、スコープ内のIP範囲、ドメイン、サブドメインを知っています。Webサーバーを検索する時が来ました。
前のステップでおそらく既に発見したIPとドメインの情報を収集しているので、おそらくすべての可能なWebサーバーを既に見つけているかもしれません。ただし、まだ見つけていない場合は、スコープ内のWebサーバーを検索するための高速なトリックを見ていきます。
これはWebアプリの発見に特化しているため、スコープによっては脆弱性スキャンとポートスキャンも実行する必要があります(許可されている場合)。
masscanを使用してWebサーバーに関連するオープンポートを発見する高速な方法はこちらです。
Webサーバーを検索するためのもう一つの便利なツールはhttprobe、fprobe、httpxです。ドメインのリストを渡すだけで、ポート80(http)と443(https)に接続しようとします。さらに、他のポートを試すように指示することもできます:
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
スクリーンショット
スコープ内のすべてのウェブサーバー(会社のIPアドレス、ドメイン、サブドメインを含む)を発見したので、おそらくどこから始めればいいかわからないでしょう。だから、簡単にするために、まずはそれらのすべてのスクリーンショットを撮りましょう。メインページを見るだけで、より脆弱性のある奇妙なエンドポイントを見つけることができます。
提案されたアイデアを実行するために、EyeWitness、HttpScreenshot、Aquatone、Shutter、またはwebscreenshotを使用できます。
さらに、eyeballerを使用して、すべてのスクリーンショットを実行し、脆弱性の可能性のあるものとそうでないものを判断することもできます。
パブリッククラウドの資産
会社の潜在的なクラウド資産を見つけるためには、その会社を特定するキーワードのリストから始める必要があります。たとえば、暗号通貨会社の場合、"crypto"、"wallet"、"dao"、"<domain_name>"、"<subdomain_names>"などの単語を使用することがあります。
また、バケットで使用される一般的な単語のワードリストも必要です。
- https://raw.githubusercontent.com/cujanovic/goaltdns/master/words.txt
- https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt
- https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt
それから、それらの単語を使用して順列を生成する必要があります(詳細については、Second Round DNS Brute-Forceを参照してください)。
生成されたワードリストを使用して、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が、会社の公開リポジトリまたはそのgithub会社で働くユーザーの公開リポジトリで漏洩している場合があります。Leakosツールを使用して、組織とその開発者のすべての公開リポジトリをダウンロードし、自動的にgitleaksを実行することができます。
Leakosは、URLが提供されたテキスト全体に対してgitleaksを実行するためにも使用できます。
Github Dorks
攻撃対象の組織で検索することもできる潜在的なgithub dorksについては、次のページも参照してください。
{% content-ref url="github-leaked-secrets.md" %} github-leaked-secrets.md {% endcontent-ref %}
Pastes Leaks
攻撃者または作業者が企業のコンテンツをペーストサイトに公開することがあります。これには機密情報が含まれている場合もあります。Pastosツールを使用して、80以上のペーストサイトで一度に検索することができます。
Google Dorks
古くても有用なGoogle Dorksは、そこにあってはならない公開情報を見つけるのに常に役立ちます。ただし、google-hacking-databaseには数千ものクエリが含まれているため、手動で実行することはできません。お気に入りの10個を選ぶか、Gorksなどのツールを使用してすべて実行することができます。
データベース全体を通常のGoogleブラウザを使用して実行することを期待するツールは、Googleが非常にすぐにブロックするため、終了しないでしょう。
脆弱性の探索
もし有効な漏洩した資格情報やAPIトークンを見つけた場合、これは非常に簡単な勝利です。
公開コードの脆弱性
もし会社がオープンソースのコードを持っていることがわかった場合、それを分析して脆弱性を探すことができます。
言語によって異なるツールを使用することができます:
{% content-ref url="../../network-services-pentesting/pentesting-web/code-review-tools.md" %} code-review-tools.md {% endcontent-ref %}
また、以下のような無料のサービスを使用して公開リポジトリをスキャンすることもできます:
Webペンテスト方法論
バグハンターが見つける脆弱性の大部分は、Webアプリケーション内に存在しているため、この段階でWebアプリケーションのテスト方法論について説明したいと思います。詳細はこちらで見つけることができます。
また、Web自動スキャナのオープンソースツールにも特別な言及をしたいと思います。非常に重要な脆弱性を見つけることは期待できませんが、初期のWeb情報を取得するためのワークフローに役立ちます。
総括
おめでとうございます!この時点で、すでに基本的な列挙を実行しました。はい、基本的な列挙です。さらに多くの列挙ができます(後でさらなるトリックを見ることができます)。
したがって、すでに以下を行いました:
- スコープ内のすべての会社を見つけました。
- 会社に所属するすべての資産を見つけました(スコープ内で脆弱性スキャンも実行しました)。
- 会社に所属するすべてのドメインを見つけました。
- ドメインのすべてのサブドメインを見つけました(サブドメインの乗っ取りはありましたか?)。
- スコープ内のCDNを使用しないIPをすべて見つけました。
- Webサーバーをすべて見つけ、それらのスクリーンショットを撮りました(深く調べる価値のある奇妙なものはありましたか?)。
- 会社に所属する潜在的なパブリッククラウドの資産をすべて見つけました。
- メール、資格情報の漏洩、および秘密の漏洩を見つけました。これらは非常に簡単に大きな勝利をもたらす可能性があります。
- 見つけたすべてのWebをペンテストしました。
完全な自動リコンツール
与えられたスコープに対して提案されたアクションの一部を実行するいくつかのツールが存在します。
- https://github.com/yogeshojha/rengine
- https://github.com/j3ssie/Osmedeus
- https://github.com/six2dez/reconftw
- https://github.com/hackerspider1/EchoPwn - 少し古く、更新されていません
参考文献
バグバウンティのヒント: ハッカーによって作成されたプレミアムなバグバウンティプラットフォームであるIntigritiに登録してください!今すぐhttps://go.intigriti.com/hacktricksに参加し、最大**$100,000**の報奨金を獲得しましょう!
{% embed url="https://go.intigriti.com/hacktricks" %}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- サイバーセキュリティ企業で働いていますか? HackTricksであなたの会社を宣伝したいですか?または、最新バージョンのPEASSを入手したいですか?または、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
- The PEASS Family、私たちの独占的なNFTのコレクションを発見してください。
- 公式のPEASS&HackTricksグッズを手に入れましょう。
- 💬 DiscordグループまたはTelegramグループに参加するか、Twitter 🐦@carlospolopmをフォローしてください。
- ハッキングのトリックを共有するには、hacktricks repo と hacktricks-cloud repo にPRを提出してください。