AWS - CloudFront Enum

HackTricks 지원

CloudFront

CloudFront은 AWS의 콘텐츠 전송 네트워크로, 전 세계의 엣지 위치 네트워크를 통해 정적 및 동적 콘텐츠의 배포 속도를 높입니다. Amazon CloudFront를 통해 호스팅하는 콘텐츠에 대한 요청을 사용할 때, 해당 요청은 최단 지연 시간을 제공하는 가장 가까운 엣지 위치로 라우팅되어 최상의 성능을 제공합니다. CloudFront 액세스 로그가 활성화되면 웹 사이트 및 배포에 액세스를 요청하는 각 사용자의 요청을 기록할 수 있습니다. S3 액세스 로그와 마찬가지로 이러한 로그는 Amazon S3에 내구성 및 지속적인 저장을 위해 저장됩니다. 로깅 자체를 활성화하는 데 추가 비용은 없지만, 로그가 S3에 저장되므로 S3에서 사용된 저장 공간에 대한 요금이 청구됩니다.

로그 파일은 시간에 따라 데이터를 캡처하며 해당 배포에 대한 Amazon CloudFront로부터 수신된 요청의 양에 따라 생성되는 로그 파일의 양이 달라집니다. 이러한 로그 파일은 S3에 생성되거나 기록되지 않습니다. 로그 파일이 가득 차면 S3로 전달됩니다. Amazon CloudFront는 이러한 로그를 S3로 전달할 준비가 될 때까지 이러한 로그를 보관합니다. 다시 말하지만, 이러한 로그 파일의 크기에 따라 이러한 전달에는 1시간에서 24시간이 소요될 수 있습니다.

기본적으로 쿠키 로깅이 비활성화되어 있지만 활성화할 수 있습니다.

기능

CloudFront에서 함수를 생성할 수 있습니다. 이러한 함수는 cloudfront에서 엔드포인트를 정의하고 선언된 NodeJS 코드를 실행합니다. 이 코드는 AWS 관리 기계에서 실행되는 샌드박스 내에서 실행됩니다 (하부 OS로 탈출하려면 샌드박스 우회가 필요합니다).

함수는 사용자의 AWS 계정에서 실행되지 않으므로 IAM 역할이 연결되지 않으므로이 기능을 남용하여 직접 권한 상승이 불가능합니다.

열거

aws cloudfront list-distributions
aws cloudfront get-distribution --id <id> # Just get 1
aws cloudfront get-distribution-config --id <id>

aws cloudfront list-functions
aws cloudfront get-function --name TestFunction function_code.js

aws cloudfront list-distributions | jq ".DistributionList.Items[] | .Id, .Origins.Items[].Id, .Origins.Items[].DomainName, .AliasICPRecordals[].CNAME"

인증되지 않은 액세스

AWS - Cloudfront Unauthenticated Enum

사후 공격

AWS - CloudFront Post Exploitation
HackTricks 지원

Last updated