Top Nav

CloudFrunt – Identify Misconfigured CloudFront Domains

Last updated: May 19, 2018 | 3,027 views

CloudFrunt is a Python-based tool for identifying misconfigured CloudFront domains, it uses DNS and looks for CNAMEs which may be allowed to be associated with CloudFront distributions. This effectively allows for domain hijacking.

How CloudFrunt Works For Misconfigured CloudFront

Each CloudFront distribution has a unique endpoint for users to point their DNS records to (ex. d111111abcdef8.cloudfront.net). All of the domains using a specific distribution need to be listed in the “Alternate Domain Names (CNAMEs)” field in the options for that distribution.

When a CloudFront endpoint receives a request, it does NOT automatically serve content from the corresponding distribution. Instead, CloudFront uses the HOST header of the request to determine which distribution to use. This means two things:

If the HOST header does not match an entry in the “Alternate Domain Names (CNAMEs)” field of the intended distribution, the request will fail.

Any other distribution that contains the specific domain in the HOST header will receive the request and respond to it normally.

This is what allows the domains to be hijacked. There are many cases where a CloudFront user fails to list all the necessary domains that might be received in the HOST header. For example:

The domain “test.disloops.com” is a CNAME record that points to “disloops.com”.

The “disloops.com” domain is set up to use a CloudFront distribution.

Because “test.disloops.com” was not added to the “Alternate Domain Names (CNAMEs)” field for the distribution, requests to “test.disloops.com” will fail.

Another user can create a CloudFront distribution and add “test.disloops.com” to the “Alternate Domain Names (CNAMEs)” field to hijack the domain.

This means that the unique endpoint that CloudFront binds to a single distribution is effectively meaningless. A request to one specific CloudFront subdomain is not limited to the distribution it is associated with.

CloudFrunt Usage to Identify Misconfigured CloudFront

After installing CloudFrunt and its dependencies you can run it with the following options: