hacktricks/network-services-pentesting/pentesting-web/uncovering-cloudflare.md

12 KiB

클라우드플레어 발견하기

htARTE (HackTricks AWS Red Team Expert)를 통해 **제로부터 영웅까지 AWS 해킹 배우기**!

HackTricks를 지원하는 다른 방법:

클라우드플레어 발견하는 일반적인 기술

  • 도메인의 과거 DNS 레코드를 제공하는 서비스를 사용할 수 있습니다. 웹 페이지가 이전에 사용된 IP 주소에서 실행 중일 수 있습니다.
  • 동일한 것을 확인할 수 있습니다. 과거 SSL 인증서는 원본 IP 주소를 가리킬 수 있습니다.
  • 또한 IP 주소를 직접 가리키는 다른 하위 도메인의 DNS 레코드를 확인하십시오. 다른 하위 도메인이 동일한 서버를 가리킬 수 있습니다 (아마도 FTP, 메일 또는 기타 서비스를 제공하기 위해).
  • 웹 애플리케이션 내에서 SSRF를 찾으면 해당 서버의 IP 주소를 얻기 위해 악용할 수 있습니다.
  • shodan(그리고 아마도 google 및 유사한 곳?)과 같은 브라우저에서 웹 페이지의 고유 문자열을 검색하십시오. 해당 콘텐츠가 포함된 IP 주소를 찾을 수 있습니다.
  • 고유 문자열을 찾는 대신 https://github.com/karma9874/CloudFlare-IP 또는 https://github.com/pielco11/fav-up 도구를 사용하여 파비콘 아이콘을 검색할 수 있습니다.
  • 이것은 서버가 IP 주소로 액세스될 때 동일한 응답을 보내야 하기 때문에 매우 자주 작동하지 않을 수 있지만, 알 수 없습니다.

클라우드플레어 발견하는 도구

# 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 기계를 위해 수행되었더라도 다른 클라우드 제공업체에 대해서도 수행할 수 있습니다.

이 프로세스에 대한 더 나은 설명을 위해 다음을 확인하십시오:

{% 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

클라우드플레어 우회하기

인증된 오리진 풀

이 메커니즘은 클라이언트 SSL 인증서를 활용하여 클라우드플레어의 리버스 프록시 서버와 오리진 서버 간의 연결을 인증하는데 사용됩니다. 이를 mTLS라고 합니다.

고객은 자체 인증서를 구성하는 대신 클라우드플레어의 인증서를 사용하여 클라우드플레어로부터의 모든 연결을 허용할 수 있습니다. 임차인에 관계없이.

{% hint style="danger" %} 따라서 공격자는 클라우드플레어의 인증서를 사용하여 클라우드플레어에 도메인을 설정하고 해당 도메인을 피해자 도메인 IP 주소로 지정할 수 있습니다. 이렇게 하면 공격자의 도메인이 완전히 무방비 상태가 되어 클라우드플레어가 보낸 요청을 보호하지 않습니다. {% endhint %}

자세한 정보는 여기에서 확인할 수 있습니다.

클라우드플레어 IP 주소 허용 목록

이는 클라우드플레어의 IP 주소 범위에서 비롯하지 않은 연결을 거부합니다. 이는 공격자가 클라우드플레어에 자신의 도메인을 피해자 IP 주소로 지정하고 공격하는 이전 설정에도 취약합니다.

자세한 정보는 여기에서 확인할 수 있습니다.

스크래핑을 위한 클라우드플레어 우회

캐시

가끔은 클라우드플레어를 우회하여 웹 페이지를 스크래핑하고 싶을 때가 있습니다. 이를 위한 몇 가지 옵션이 있습니다:

  • Google 캐시 사용: https://webcache.googleusercontent.com/search?q=cache:https://www.petsathome.com/shop/en/pets/dog
  • https://archive.org/web/와 같은 다른 캐시 서비스 사용

도구

다음과 같은 도구들은 클라우드플레어의 스크래핑에 대한 보호를 우회할 수 있었거나 우회할 수 있습니다:

클라우드플레어 솔버

다음과 같은 여러 클라우드플레어 솔버가 개발되었습니다:

강화된 헤드리스 브라우저

자동화된 브라우저로 감지되지 않는 헤드리스 브라우저를 사용합니다 (이를 위해 사용자 정의가 필요할 수 있습니다). 일부 옵션은 다음과 같습니다:

클라우드플레어 내장 우회 기능이 있는 스마트 프록시

스마트 프록시는 클라우드플레어의 보안 조치를 뛰어넘기 위해 전문 회사에 의해 지속적으로 업데이트되며, 이는 그들의 비즈니스입니다.

일부는 다음과 같습니다:

최적화된 솔루션을 찾는 사람들을 위해 ScrapeOps Proxy Aggregator가 두드러집니다. 이 서비스는 20개 이상의 프록시 제공업체를 단일 API로 통합하여 대상 도메인에 대해 최상의 및 가장 비용 효율적인 프록시를 자동으로 선택하므로 클라우드플레어의 방어에 대한 우수한 옵션을 제공합니다.

클라우드플레어 안티-봇 보호 역공학

클라우드플레어의 안티-봇 조치를 역공학하는 것은 스마트 프록시 제공업체가 사용하는 전략으로, 많은 헤드리스 브라우저를 실행하는 높은 비용 없이 광범위한 웹 스크래핑에 적합합니다.

장점: 이 방법은 클라우드플레어의 체크를 특정 대상으로 하는 매우 효율적인 우회 생성을 가능하게 하며 대규모 작업에 이상적입니다.

단점: 클라우드플레어의 의도적으로 모호한 안티-봇 시스템을 이해하고 속이는 복잡성이 있으며, 클라우드플레어가 보호를 강화함에 따라 다양한 전략을 테스트하고 우회를 업데이트하는 지속적인 노력이 필요합니다.

이에 대한 자세한 정보는 원문 기사에서 확인할 수 있습니다.

참고 자료