
잘못 구성된 CloudFront 도메인을 식별하는 도구
CloudFrunt는 잘못 구성된 CloudFront 도메인을 식별하는 도구입니다.
CloudFront는 Amazon Web Services(AWS)에서 제공하는 콘텐츠 전송 네트워크(CDN)입니다. CloudFront 사용자는 특정 소스(예: S3 버킷)에서 콘텐츠를 제공하는 '배포(distribution)'를 생성합니다.
각 CloudFront 배포에는 사용자가 DNS 레코드를 지정할 수 있는 고유한 엔드포인트(예: d111111abcdef8.cloudfront.net)가 있습니다. 특정 배포를 사용하는 모든 도메인은 해당 배포의 옵션에서 '대체 도메인 이름(CNAMEs)' 필드에 나열되어야 합니다.
CloudFront 엔드포인트가 요청을 수신하면 자동으로 해당 배포의 콘텐츠를 제공하지 않습니다. 대신 CloudFront는 요청의 HOST 헤더를 사용하여 사용할 배포를 결정합니다. 이는 두 가지를 의미합니다:
이것이 도메인이 하이재킹될 수 있는 이유입니다. CloudFront 사용자가 HOST 헤더에서 수신될 수 있는 모든 필수 도메인을 나열하지 못하는 경우가 많습니다. 예를 들어:
이는 CloudFront가 단일 배포에 바인딩하는 고유한 엔드포인트가 사실상 의미 없음을 의미합니다. 특정 CloudFront 하위 도메인에 대한 요청은 연결된 배포로 제한되지 않습니다.
본 소프트웨어는 저작권자에 의해 '있는 그대로' 제공되며, 상품성 및 특정 목적에의 적합성에 대한 묵시적 보증을 포함하되 이에 국한되지 않는 모든 명시적 또는 묵시적 보증이 부인됩니다. 어떠한 경우에도 저작권자는 본 소프트웨어의 사용으로 인해 발생하는 직접적, 간접적, 우발적, 특별, 예시적 또는 결과적 손해(대체 상품 또는 서비스의 조달; 사용, 데이터 또는 이익의 손실; 또는 영업 중단을 포함하되 이에 국한되지 않음)에 대해 책임을 지지 않으며, 이는 계약, 엄격한 책임 또는 불법 행위(과실 포함)에 기반한 책임 이론에 따른 경우와 손해 가능성을 사전에 인지한 경우에도 마찬가지입니다.
$ git clone --recursive https://github.com/MindPointGroup/cloudfrunt
$ pip install -r requirements.txt
CloudFrunt는 dnsrecon 스크립트가 dnsrecon이라는 하위 디렉토리에 클론되어 있어야 합니다.
cloudfrunt.py [-h] [-l TARGET_FILE] [-d DOMAINS] [-o ORIGIN] [-i ORIGIN_ID] [-s] [-N]
-h, --help 이 메시지를 표시하고 종료
-s, --save 결과를 results.txt에 저장
-N, --no-dns dnsrecon을 사용하여 범위 확장 안 함
-l, --target-file TARGET_FILE 도메인 목록이 포함된 파일 (한 줄에 하나)
-d, --domains DOMAINS 쉼표로 구분된 스캔할 도메인 목록
-o, --origin ORIGIN 취약한 도메인을 이 오리진으로 새 배포에 추가
-i, --origin-id ORIGIN_ID 새 배포에 사용할 오리진 ID
$ python cloudfrunt.py -o cloudfrunt.com.s3-website-us-east-1.amazonaws.com -i S3-cloudfrunt -l list.txt
CloudFrunt v1.0.4
[+] google.com에 대한 DNS 항목 열거 중
[-] google.com에 대해 문제 없음
[+] disloops.com에 대한 DNS 항목 열거 중
[+] CloudFront 도메인 발견 --> cdn.disloops.com
[+] CloudFront 도메인 발견 --> test.disloops.com
[-] 잠재적으로 잘못 구성된 CloudFront 도메인:
[#] --> test.disloops.com
[+] 새 CloudFront 배포 EXBC12DE3F45G 생성됨
[+] test.disloops.com을 CloudFront 배포 EXBC12DE3F45G에 추가함