13 KiB
Uncovering CloudFlare
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Common Techniques to Uncover Cloudflare
- 도메인의 과거 DNS 기록을 제공하는 서비스를 사용할 수 있습니다. 웹 페이지가 이전에 사용된 IP 주소에서 실행되고 있을 수 있습니다.
- 과거 SSL 인증서를 확인하여 원본 IP 주소를 가리킬 수 있습니다.
- IP를 직접 가리키는 다른 서브도메인의 DNS 기록도 확인하세요. 다른 서브도메인이 같은 서버를 가리킬 가능성이 있습니다(FTP, 메일 또는 기타 서비스를 제공하기 위해).
- 웹 애플리케이션 내에서 SSRF를 찾으면 이를 악용하여 서버의 IP 주소를 얻을 수 있습니다.
- shodan과 같은 브라우저에서 웹 페이지의 고유 문자열을 검색하세요(아마도 구글 및 유사한 서비스도?). 해당 콘텐츠로 IP 주소를 찾을 수 있을지도 모릅니다.
- 고유 문자열을 찾는 대신, 도구를 사용하여 파비콘 아이콘을 검색할 수 있습니다: https://github.com/karma9874/CloudFlare-IP 또는 https://github.com/pielco11/fav-up
- 서버가 IP 주소로 접근할 때 동일한 응답을 보내야 하므로 이 방법은 자주 작동하지 않을 수 있지만, 알 수 없습니다.
Tools to uncover Cloudflare
- http://www.crimeflare.org:82/cfs.html 또는 https://crimeflare.herokuapp.com에서 도메인을 검색하세요. 또는 해당 API를 사용하는 도구 CloudPeler를 사용하세요.
- https://leaked.site/index.php?resolver/cloudflare.0/에서 도메인을 검색하세요.
- 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
Uncovering Cloudflare from Cloud infrastructure
이 과정이 AWS 머신을 위해 수행되었더라도, 다른 클라우드 제공업체에 대해서도 수행될 수 있습니다.
이 프로세스에 대한 더 나은 설명은 다음을 확인하세요:
{% embed url="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
Cloudflare 우회하기
인증된 오리진 풀
이 메커니즘은 클라이언트 SSL 인증서 를 사용하여 Cloudflare의 리버스 프록시 서버와 오리진 서버 간의 연결을 인증하는 데 의존합니다. 이를 mTLS라고 합니다.
고객은 자체 인증서를 구성하는 대신 Cloudflare의 인증서를 사용하여 Cloudflare에서 오는 모든 연결을 허용할 수 있습니다. 테넌트와 관계없이 말이죠.
{% hint style="danger" %} 따라서 공격자는 Cloudflare의 인증서를 사용하여 Cloudflare에 도메인을 설정하고 이를 피해자 도메인 IP 주소로 포인팅할 수 있습니다. 이렇게 하면 자신의 도메인이 완전히 보호되지 않게 되어 Cloudflare는 전송된 요청을 보호하지 않습니다. {% endhint %}
자세한 정보는 여기에서 확인하세요.
Cloudflare IP 주소 허용 목록
이 설정은 Cloudflare의 IP 주소 범위에서 발생하지 않는 연결을 거부합니다. 이는 공격자가 자신의 도메인을 Cloudflare에 피해자의 IP 주소로 포인팅하고 공격하는 이전 설정에 취약합니다.
자세한 정보는 여기에서 확인하세요.
스크래핑을 위한 Cloudflare 우회
캐시
때때로 웹 페이지를 스크래핑하기 위해 Cloudflare를 우회하고 싶을 수 있습니다. 이를 위한 몇 가지 옵션이 있습니다:
- Google 캐시 사용:
https://webcache.googleusercontent.com/search?q=cache:https://www.petsathome.com/shop/en/pets/dog
- https://archive.org/web/와 같은 다른 캐시 서비스 사용
도구
다음과 같은 도구는 Cloudflare의 스크래핑 방어를 우회할 수 있습니다(또는 우회할 수 있었습니다):
Cloudflare 솔버
여러 가지 Cloudflare 솔버가 개발되었습니다:
- FlareSolverr
- cloudscraper 가이드는 여기
- cloudflare-scrape
- CloudflareSolverRe
- Cloudflare-IUAM-Solver
- cloudflare-bypass [아카이브됨]
- CloudflareSolverRe
강화된 헤드리스 브라우저
자동화된 브라우저로 감지되지 않는 헤드리스 브라우저를 사용하세요(이를 위해 사용자 정의가 필요할 수 있습니다). 몇 가지 옵션은 다음과 같습니다:
- Puppeteer: puppeteer용 스텔스 플러그인.
- Playwright: 스텔스 플러그인이 곧 Playwright에 추가됩니다. 개발 상황은 여기와 여기에서 확인하세요.
- Selenium: undetected-chromedriver 최적화된 Selenium Chromedriver 패치.
Cloudflare 내장 우회 기능이 있는 스마트 프록시
스마트 프록시는 전문 회사에 의해 지속적으로 업데이트되어 Cloudflare의 보안 조치를 우회하는 것을 목표로 합니다(그들이 하는 일이죠).
그 중 일부는 다음과 같습니다:
- ScraperAPI
- Scrapingbee
- Oxylabs
- Smartproxy는 독점적인 Cloudflare 우회 메커니즘으로 주목받고 있습니다.
최적화된 솔루션을 찾는 분들을 위해 ScrapeOps Proxy Aggregator가 두드러집니다. 이 서비스는 20개 이상의 프록시 제공업체를 단일 API로 통합하여, 대상 도메인에 대해 가장 좋고 비용 효율적인 프록시를 자동으로 선택하여 Cloudflare의 방어를 우회하는 데 우수한 옵션을 제공합니다.
Cloudflare 안티봇 보호 리버스 엔지니어링
Cloudflare의 안티봇 조치를 리버스 엔지니어링하는 것은 스마트 프록시 제공업체가 사용하는 전술로, 많은 헤드리스 브라우저를 운영하는 높은 비용 없이 대규모 웹 스크래핑에 적합합니다.
장점: 이 방법은 Cloudflare의 검사를 특정적으로 목표로 하는 매우 효율적인 우회를 생성할 수 있습니다. 대규모 작업에 이상적입니다.
단점: 단점은 Cloudflare의 의도적으로 모호한 안티봇 시스템을 이해하고 속이는 데 복잡성이 수반되며, Cloudflare가 보호를 강화함에 따라 다양한 전략을 테스트하고 우회를 업데이트하는 지속적인 노력이 필요하다는 것입니다.
이 방법에 대한 자세한 내용은 원본 기사에서 확인하세요.
참고 문헌
{% hint style="success" %}
AWS 해킹 배우고 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우고 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud GitHub 리포지토리에 PR을 제출하여 해킹 팁을 공유하세요.