
Uma ferramenta para identificar domínios CloudFront mal configurados
CloudFrunt é uma ferramenta para identificar domínios CloudFront mal configurados.
CloudFront é uma Rede de Distribuição de Conteúdo (CDN) fornecida pela Amazon Web Services (AWS). Usuários do CloudFront criam "distribuições" que servem conteúdo de fontes específicas (um bucket S3, por exemplo).
Cada distribuição do CloudFront tem um endpoint único para que os usuários apontem seus registros DNS (ex.: d111111abcdef8.cloudfront.net). Todos os domínios que usam uma distribuição específica precisam ser listados no campo "Nomes de Domínio Alternativos (CNAMEs)" nas opções dessa distribuição.
Quando um endpoint do CloudFront recebe uma requisição, ele NÃO serve automaticamente conteúdo da distribuição correspondente. Em vez disso, o CloudFront usa o cabeçalho HOST da requisição para determinar qual distribuição usar. Isso significa duas coisas:
É isso que permite que os domínios sejam sequestrados. Existem muitos casos em que um usuário do CloudFront não lista todos os domínios necessários que podem ser recebidos no cabeçalho HOST. Por exemplo:
Isso significa que o endpoint único que o CloudFront associa a uma única distribuição é efetivamente inútil. Uma requisição a um subdomínio específico do CloudFront não se limita à distribuição à qual está associada.
ESTE SOFTWARE É FORNECIDO PELO AUTOR "NO ESTADO EM QUE SE ENCONTRA" E TODAS AS GARANTIAS EXPRESSAS OU IMPLÍCITAS, INCLUINDO, MAS NÃO SE LIMITANDO ÀS, GARANTIAS IMPLÍCITAS DE COMERCIALIZAÇÃO E ADEQUAÇÃO A UM FIM ESPECÍFICO SÃO REJEITADAS. EM NENHUM CASO O AUTOR SERÁ RESPONSÁVEL POR QUAISQUER DANOS DIRETOS, INDIRETOS, INCIDENTAIS, ESPECIAIS, EXEMPLARES OU CONSEQUENCIAIS (INCLUINDO, MAS NÃO SE LIMITANDO A, AQUISIÇÃO DE BENS OU SERVIÇOS SUBSTITUTOS; PERDA DE USO, DADOS OU LUCROS; OU INTERRUPÇÃO DE NEGÓCIOS) CAUSADOS POR QUALQUER TEORIA DE RESPONSABILIDADE, SEJA POR CONTRATO, RESPONSABILIDADE OBJETIVA OU ATO ILÍCITO (INCLUINDO NEGLIGÊNCIA OU OUTROS) DECORRENTES DE QUALQUER FORMA DO USO DESTE SOFTWARE, MESMO SE AVISADO DA POSSIBILIDADE DE TAIS DANOS.
$ git clone --recursive https://github.com/MindPointGroup/cloudfrunt
$ pip install -r requirements.txt
CloudFrunt espera que o script dnsrecon seja clonado em um subdiretório chamado dnsrecon.
cloudfrunt.py [-h] [-l TARGET_FILE] [-d DOMAINS] [-o ORIGIN] [-i ORIGIN_ID] [-s] [-N]
-h, --help Show this message and exit
-s, --save Save the results to results.txt
-N, --no-dns Do not use dnsrecon to expand scope
-l, --target-file TARGET_FILE File containing a list of domains (one per line)
-d, --domains DOMAINS Comma-separated list of domains to scan
-o, --origin ORIGIN Add vulnerable domains to new distributions with this origin
-i, --origin-id ORIGIN_ID The origin ID to use with new distributions
$ python cloudfrunt.py -o cloudfrunt.com.s3-website-us-east-1.amazonaws.com -i S3-cloudfrunt -l list.txt
CloudFrunt v1.0.4
[+] Enumerating DNS entries for google.com
[-] No issues found for google.com
[+] Enumerating DNS entries for disloops.com
[+] Found CloudFront domain --> cdn.disloops.com
[+] Found CloudFront domain --> test.disloops.com
[-] Potentially misconfigured CloudFront domains:
[#] --> test.disloops.com
[+] Created new CloudFront distribution EXBC12DE3F45G
[+] Added test.disloops.com to CloudFront distribution EXBC12DE3F45G