CloudFlare を特定する

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をサポートする

Cloudflare を特定する一般的な手法

  • ドメインの過去のDNSレコードを提供するサービスを使えます。ウェブページは以前使われていたIPアドレスで動作している可能性があります。
  • 同様に、過去のSSL証明書を調べることで origin のIPアドレスを指しているものが見つかることがあります。
  • IPに直接向いている他のサブドメインのDNSレコードも確認してください。FTP、mail、その他のサービスのために別サブドメインが同じサーバを指している可能性があります。
  • ウェブアプリケーション内でSSRFを見つけた場合、それを悪用してサーバのIPアドレスを取得できます。
  • ウェブページのユニークな文字列を shodan のような検索エンジン(おそらく google 等でも)で検索します。該当コンテンツを返すIPアドレスが見つかるかもしれません。
  • 同様にユニークな文字列の代わりに favicon を使って検索することもできます。ツール: https://github.com/karma9874/CloudFlare-IP または https://github.com/pielco11/fav-up
  • サーバがIPアドレスでアクセスされたときに同じレスポンスを返す必要があるため、これは頻繁にはうまくいかないことが多いですが、試す価値はあります。

Cloudflare を特定するツール

  • ドメインを http://www.crimeflare.org:82/cfs.html または https://crimeflare.herokuapp.com で検索します。あるいはそのAPIを利用するツール CloudPeler を使います。
  • ドメインを https://leaked.site/index.php?resolver/cloudflare.0/ で検索します。
  • CF-Hero は、Cloudflare に保護されたウェブアプリケーションの実際のIPアドレスを発見するために開発された包括的なreconツールです。複数の手法を通じてマルチソースのインテリジェンス収集を行います。
  • CloudFlair は、ドメイン名を含むCensysの証明書を検索し、それらの証明書内のIPv4を探して、最終的にそのIP上のウェブページにアクセスを試みるツールです。
  • CloakQuest3r: CloakQuest3r は、Cloudflare や他の類似サービスによって保護されたウェブサイトの真のIPアドレスを明らかにするために精巧に作られた強力な Python ツールです。その主な目的は、Cloudflare の保護の背後に隠されたウェブサーバの実際のIPアドレスを正確に特定することです。
  • Censys
  • Shodan
  • Bypass-firewalls-by-DNS-history
  • ウェブページが存在すると推定されるIPの候補群を持っている場合は、https://github.com/hakluke/hakoriginfinder を使用できます。
# You can check if the tool is working with
prips 1.0.0.0/30 | hakoriginfinder -h one.one.one.one

# If you know the company is using AWS you could use the previous tool to search the
## web page inside the EC2 IPs
DOMAIN=something.com
WIDE_REGION=us
for ir in `curl https://ip-ranges.amazonaws.com/ip-ranges.json | jq -r '.prefixes[] | select(.service=="EC2") | select(.region|test("^us")) | .ip_prefix'`; do
echo "Checking $ir"
prips $ir | hakoriginfinder -h "$DOMAIN"
done

クラウドインフラからCloudflareを特定する

これはAWSのインスタンスで行われた例ですが、他のクラウドプロバイダでも同様に行えます。

このプロセスの詳細については、次を参照してください:

https://trickest.com/blog/cloudflare-bypass-discover-ip-addresses-aws/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks

# Find open ports
sudo masscan --max-rate 10000 -p80,443 $(curl -s https://ip-ranges.amazonaws.com/ip-ranges.json | jq -r '.prefixes[] | select(.service=="EC2") | .ip_prefix' | tr '\n' ' ') | grep "open"  > all_open.txt
# Format results
cat all_open.txt | sed 's,.*port \(.*\)/tcp on \(.*\),\2:\1,' | tr -d " " > all_open_formated.txt
# Search actual web pages
httpx -silent -threads 200 -l all_open_formated.txt -random-agent -follow-redirects -json -no-color -o webs.json
# Format web results and remove eternal redirects
cat webs.json | jq -r "select((.failed==false) and (.chain_status_codes | length) < 9) | .url" | sort -u > aws_webs.json

# Search via Host header
httpx -json -no-color -list aws_webs.json -header Host: cloudflare.malwareworld.com -threads 250 -random-agent -follow-redirects -o web_checks.json

Bypassing Cloudflare through Cloudflare

Authenticated Origin Pulls

この仕組みは、client SSL certificates を用いて Cloudflare’s reverse-proxy サーバーと origin サーバー間の接続を認証する、いわゆる mTLS に依存しています。

自分の証明書を設定する代わりに、顧客は Cloudflare’s certificate を使って Cloudflare からの任意の接続を許可でき、regardless of the tenant

Caution

したがって、攻撃者は単に自分のドメインを Cloudflare に設定し、Cloudflare’s certificate を使ってそれを victim ドメインの IP アドレスに向けることができます。こうすることで、自分のドメインを完全に保護されていない状態にしても、Cloudflare は送信されるリクエストを保護しません。

More info here.

Allowlist Cloudflare IP Addresses

これは Cloudflare’s IP アドレスレンジから発信されていない接続を拒否します。これも前述のセットアップに対して脆弱で、攻撃者が単に自分のドメインを Cloudflare に設定して victims IP アドレスを指し示し、攻撃を行うことができます。

More info here.

Bypass Cloudflare for scraping

Cache

単にページをスクレイピングするために Cloudflare をバイパスしたい場合があります。そのためのオプションはいくつかあります:

  • Use Google cache: https://webcache.googleusercontent.com/search?q=cache:https://www.petsathome.com/shop/en/pets/dog
  • Use other cache services such as https://archive.org/web/

Tools

以下のようなツールはいくつか Cloudflare の scraping に対する保護をバイパス(またはバイパスできた)できます:

Cloudflare Solvers

いくつかの Cloudflare solver が開発されています:

Fortified Headless Browsers

自動化ブラウザとして検出されない headless browser を使用します(そのためにカスタマイズが必要な場合があります)。いくつかの選択肢は次の通りです:

  • Puppeteer: The stealth plugin for puppeteer.
  • Playwright: The stealth plugin is coming to Playwright soon. Follow developments here and here.
  • Selenium: SeleniumBase は組み込みのステルス機能を備えたモダンなブラウザ自動化フレームワークです。UC Mode(undetected-chromedriver に基づく最適化された Selenium ChromeDriver パッチ)と CDP Mode(bot 検知のバイパス、CAPTCHA の解決、Chrome DevTools Protocol の高度な手法を利用可能)の2つのモードを提供します。

Smart Proxy With Cloudflare Built-In Bypass

Smart proxies は専門会社によって継続的に更新され、Cloudflare のセキュリティ対策を上回ることを目的としています(それが彼らのビジネスです)。

例として:

最適化されたソリューションを求める場合、ScrapeOps Proxy Aggregator が際立ちます。このサービスは20以上のプロキシプロバイダを単一の API に統合し、ターゲットドメインに対して最適でコスト効率の高いプロキシを自動的に選択するため、Cloudflare の防御を回避する際に優れた選択肢を提供します。

Reverse Engineer Cloudflare Anti-Bot Protection

Cloudflare の anti-bot 対策をリバースエンジニアリングすることは、smart proxy プロバイダが用いる戦術であり、多数の headless browser を動かす高コストを避けつつ大規模なスクレイピングを行うのに適しています。

Advantages: この方法は Cloudflare のチェックを特異的にターゲットにした極めて効率的なバイパスを作成でき、大規模運用に理想的です。

Disadvantages: 欠点は、Cloudflare が意図的に難読化している anti-bot システムを理解し欺くための複雑さにあり、異なる戦略をテストし、Cloudflare が保護を強化するたびにバイパスを更新する継続的な労力が必要になることです。

Find more info about how to do this in the original article.

References

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をサポートする