# CloudFlare 드러내기 {{#include ../../banners/hacktricks-training.md}} ## Cloudflare를 드러내기 위한 일반적인 기술 - 도메인의 **과거 DNS 기록**을 제공하는 서비스를 사용할 수 있습니다. 웹 페이지가 이전에 사용된 IP 주소에서 실행되고 있을 수 있습니다. - **과거 SSL 인증서**를 확인하여 원래 IP 주소를 가리키고 있을 수 있습니다. - **IP를 직접 가리키는 다른 서브 도메인의 DNS 기록**도 확인하세요. 다른 서브 도메인이 같은 서버를 가리키고 있을 가능성이 있습니다(FTP, 메일 또는 기타 서비스를 제공하기 위해). - 웹 애플리케이션 내에서 **SSRF를 찾으면** 이를 악용하여 서버의 IP 주소를 얻을 수 있습니다. - shodan과 같은 브라우저에서 웹 페이지의 고유 문자열을 검색하세요(아마도 google 및 유사한 사이트에서도?). 해당 콘텐츠로 IP 주소를 찾을 수 있을지도 모릅니다. - 고유 문자열을 찾는 대신 도구를 사용하여 파비콘 아이콘을 검색할 수 있습니다: [https://github.com/karma9874/CloudFlare-IP](https://github.com/karma9874/CloudFlare-IP) 또는 [https://github.com/pielco11/fav-up](https://github.com/pielco11/fav-up) - 서버가 IP 주소로 접근할 때 동일한 응답을 보내야 하므로 이 방법은 자주 작동하지 않을 수 있지만, 알 수 없습니다. ## Cloudflare를 드러내기 위한 도구 - [http://www.crimeflare.org:82/cfs.html](http://www.crimeflare.org:82/cfs.html) 또는 [https://crimeflare.herokuapp.com](https://crimeflare.herokuapp.com)에서 도메인을 검색하세요. 또는 [CloudPeler](https://github.com/zidansec/CloudPeler) 도구를 사용하세요(해당 API를 사용합니다). - [https://leaked.site/index.php?resolver/cloudflare.0/](https://leaked.site/index.php?resolver/cloudflare.0/)에서 도메인을 검색하세요. - [**CloudFlair**](https://github.com/christophetd/CloudFlair)는 도메인 이름이 포함된 Censys 인증서를 사용하여 검색한 후, 해당 인증서 내의 IPv4를 검색하고 마지막으로 해당 IP에서 웹 페이지에 접근하려고 시도하는 도구입니다. - [**CloakQuest3r**](https://github.com/spyboy-productions/CloakQuest3r): CloakQuest3r는 Cloudflare 및 기타 대안으로 보호된 웹사이트의 실제 IP 주소를 드러내기 위해 정교하게 제작된 강력한 Python 도구입니다. 이 도구의 핵심 임무는 Cloudflare의 보호막 뒤에 숨겨진 웹 서버의 실제 IP 주소를 정확하게 식별하는 것입니다. - [Censys](https://search.censys.io/) - [Shodan](https://shodan.io/) - [Bypass-firewalls-by-DNS-history](https://github.com/vincentcox/bypass-firewalls-by-DNS-history) - 웹 페이지가 위치할 가능성이 있는 IP 세트가 있다면 [https://github.com/hakluke/hakoriginfinder](https://github.com/hakluke/hakoriginfinder)를 사용할 수 있습니다. ```bash # 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 ``` ## Cloud 인프라에서 Cloudflare 드러내기 이 과정이 AWS 머신을 위해 수행되었더라도, 다른 클라우드 제공업체에 대해서도 수행될 수 있음을 유의하세요. 이 프로세스에 대한 더 나은 설명은 다음을 확인하세요: {{#ref}} https://trickest.com/blog/cloudflare-bypass-discover-ip-addresses-aws/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks {{#endref}} ```bash # 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 ``` ## 클라우드플레어 우회하기 ### 인증된 오리진 풀 이 메커니즘은 **클라이언트** [**SSL 인증서**](https://socradar.io/how-to-monitor-your-ssl-certificates-expiration-easily-and-why/) **를 사용하여** **Cloudflare의 리버스 프록시** 서버와 **오리진** 서버 간의 연결을 인증하는 데 의존합니다. 이를 **mTLS**라고 합니다. 고객은 자체 인증서를 구성하는 대신 Cloudflare의 인증서를 사용하여 **테넌트와 관계없이** Cloudflare에서 오는 모든 연결을 허용할 수 있습니다. > [!CAUTION] > 따라서 공격자는 **Cloudflare의 인증서를 사용하여 Cloudflare에 도메인을 설정하고** 이를 **피해자** 도메인 **IP** 주소로 지정할 수 있습니다. 이렇게 하면 자신의 도메인이 완전히 보호되지 않게 되어 Cloudflare는 전송된 요청을 보호하지 않습니다. 자세한 정보는 [**여기**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/)에서 확인하세요. ### 허용 목록 Cloudflare IP 주소 이 설정은 **Cloudflare의** IP 주소 범위에서 발생하지 않는 연결을 **거부**합니다. 이는 공격자가 **Cloudflare에서 자신의 도메인을** 피해자의 IP 주소로 지정하고 공격하는 이전 설정에 취약합니다. 자세한 정보는 [**여기**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/)에서 확인하세요. ## 스크래핑을 위한 Cloudflare 우회 ### 캐시 때때로 웹 페이지를 스크래핑하기 위해 Cloudflare를 우회하고 싶을 수 있습니다. 이를 위한 몇 가지 옵션이 있습니다: - Google 캐시 사용: `https://webcache.googleusercontent.com/search?q=cache:https://www.petsathome.com/shop/en/pets/dog` - [https://archive.org/web/](https://archive.org/web/)와 같은 다른 캐시 서비스 사용 ### 도구 다음과 같은 도구는 Cloudflare의 스크래핑 방어를 우회할 수 있습니다(또는 우회할 수 있었습니다): - [https://github.com/sarperavci/CloudflareBypassForScraping](https://github.com/sarperavci/CloudflareBypassForScraping) ### Cloudflare 솔버 여러 가지 Cloudflare 솔버가 개발되었습니다: - [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr) - [cloudscraper](https://github.com/VeNoMouS/cloudscraper) [가이드 여기](https://scrapeops.io/python-web-scraping-playbook/python-cloudscraper/) - [cloudflare-scrape](https://github.com/Anorov/cloudflare-scrape) - [CloudflareSolverRe](https://github.com/RyuzakiH/CloudflareSolverRe) - [Cloudflare-IUAM-Solver](https://github.com/ninja-beans/cloudflare-iuam-solver) - [cloudflare-bypass](https://github.com/devgianlu/cloudflare-bypass) \[아카이브됨\] - [CloudflareSolverRe](https://github.com/RyuzakiH/CloudflareSolverRe) ### 강화된 헤드리스 브라우저 자동화된 브라우저로 감지되지 않는 헤드리스 브라우저를 사용하세요(이를 위해 사용자 정의가 필요할 수 있습니다). 몇 가지 옵션은 다음과 같습니다: - **Puppeteer:** [puppeteer](https://github.com/puppeteer/puppeteer)용 [스텔스 플러그인](https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth). - **Playwright:** [스텔스 플러그인](https://www.npmjs.com/package/playwright-stealth)이 곧 Playwright에 추가됩니다. 개발 상황은 [여기](https://github.com/berstend/puppeteer-extra/issues/454)와 [여기](https://github.com/berstend/puppeteer-extra/tree/master/packages/playwright-extra)에서 확인하세요. - **Selenium:** 최적화된 Selenium Chromedriver 패치인 [undetected-chromedriver](https://github.com/ultrafunkamsterdam/undetected-chromedriver). ### Cloudflare 내장 우회 기능이 있는 스마트 프록시 **스마트 프록시**는 전문 회사에 의해 지속적으로 업데이트되어 Cloudflare의 보안 조치를 우회하는 것을 목표로 합니다(이것이 그들의 비즈니스입니다). 그 중 일부는 다음과 같습니다: - [ScraperAPI](https://www.scraperapi.com/?fp_ref=scrapeops) - [Scrapingbee](https://www.scrapingbee.com/?fpr=scrapeops) - [Oxylabs](https://oxylabs.go2cloud.org/aff_c?offer_id=7&aff_id=379&url_id=32) - [Smartproxy](https://prf.hn/click/camref:1100loxdG/[p_id:1100l442001]/destination:https%3A%2F%2Fsmartproxy.com%2Fscraping%2Fweb)는 독점적인 Cloudflare 우회 메커니즘으로 주목받고 있습니다. 최적화된 솔루션을 찾는 사람들을 위해 [ScrapeOps Proxy Aggregator](https://scrapeops.io/proxy-aggregator/)가 두드러집니다. 이 서비스는 20개 이상의 프록시 제공업체를 단일 API로 통합하여 대상 도메인에 대해 가장 좋고 비용 효율적인 프록시를 자동으로 선택하여 Cloudflare의 방어를 탐색하는 데 우수한 옵션을 제공합니다. ### Cloudflare 안티봇 보호 리버스 엔지니어링 Cloudflare의 안티봇 조치를 리버스 엔지니어링하는 것은 스마트 프록시 제공업체가 사용하는 전술로, 많은 헤드리스 브라우저를 운영하는 높은 비용 없이 대규모 웹 스크래핑에 적합합니다. **장점:** 이 방법은 Cloudflare의 검사를 특정적으로 목표로 하는 매우 효율적인 우회를 생성할 수 있어 대규모 작업에 이상적입니다. **단점:** 단점은 Cloudflare의 의도적으로 불투명한 안티봇 시스템을 이해하고 속이는 데 복잡성이 수반되며, Cloudflare가 보호를 강화함에 따라 다양한 전략을 테스트하고 우회를 업데이트하는 지속적인 노력이 필요하다는 것입니다. 이 방법에 대한 자세한 정보는 [원본 기사](https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/)에서 확인하세요. ## 참고 문헌 - [https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/](https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/) {{#include ../../banners/hacktricks-training.md}}