
Un outil pour identifier les domaines CloudFront mal configurés
CloudFrunt est un outil pour identifier les domaines CloudFront mal configurés.
CloudFront est un réseau de diffusion de contenu (CDN) fourni par Amazon Web Services (AWS). Les utilisateurs de CloudFront créent des « distributions » qui servent du contenu à partir de sources spécifiques (par exemple, un compartiment S3).
Chaque distribution CloudFront a un point de terminaison unique pour que les utilisateurs pointent leurs enregistrements DNS (ex. d111111abcdef8.cloudfront.net). Tous les domaines utilisant une distribution spécifique doivent être listés dans le champ « Alternate Domain Names (CNAMEs) » dans les options de cette distribution.
Lorsqu'un point de terminaison CloudFront reçoit une requête, il ne sert PAS automatiquement le contenu de la distribution correspondante. Au lieu de cela, CloudFront utilise l'en-tête HOST de la requête pour déterminer quelle distribution utiliser. Cela signifie deux choses :
Si l'en-tête HOST ne correspond à aucune entrée dans le champ « Alternate Domain Names (CNAMEs) » de la distribution visée, la requête échoue.
Toute autre distribution qui contient le domaine spécifique dans l'en-tête HOST recevra la requête et y répondra normalement.
C'est ce qui permet le détournement des domaines. Il existe de nombreux cas où un utilisateur CloudFront omet de lister tous les domaines nécessaires qui pourraient être reçus dans l'en-tête HOST. Par exemple :
Cela signifie que le point de terminaison unique que CloudFront associe à une seule distribution est en réalité inutile. Une requête vers un sous-domaine CloudFront spécifique n'est pas limitée à la distribution à laquelle il est associé.
CE LOGICIEL EST FOURNI PAR L'AUTEUR "AS IS" ET TOUTE GARANTIE EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS SANS S'Y LIMITER, LES GARANTIES IMPLICITES DE QUALITÉ MARCHANDE ET D'ADÉQUATION À UN USAGE PARTICULIER SONT DÉCLINÉES. EN AUCUN CAS L'AUTEUR NE POURRAIT ÊTRE TENU RESPONSABLE DE TOUT DOMMAGE DIRECT, INDIRECT, ACCESSOIRE, SPÉCIAL, EXEMPLAIRE OU CONSÉCUTIF (Y COMPRIS, MAIS SANS S'Y LIMITER, L'APPROVISIONNEMENT EN BIENS OU SERVICES DE SUBSTITUTION, LA PERTE D'UTILISATION, DE DONNÉES OU DE PROFITS, OU L'INTERRUPTION D'ACTIVITÉ) QUELLE QU'EN SOIT LA CAUSE ET SUR UNE QUELCONQUE THÉORIE DE RESPONSABILITÉ, QUE CE SOIT PAR CONTRAT, RESPONSABILITÉ STRICTE OU DÉLIT (INCLUANT LA NÉGLIGENCE OU AUTRE) DÉCOULANT DE L'UTILISATION DE CE LOGICIEL, MÊME SI LA POSSIBILITÉ DE TELS DOMMAGES A ÉTÉ SIGNALÉE.
$ git clone --recursive https://github.com/MindPointGroup/cloudfrunt
$ pip install -r requirements.txt
CloudFrunt s'attend à ce que le script dnsrecon soit cloné dans un sous-répertoire appelé dnsrecon.
cloudfrunt.py [-h] [-l TARGET_FILE] [-d DOMAINS] [-o ORIGIN] [-i ORIGIN_ID] [-s] [-N]
-h, --help Afficher ce message et quitter
-s, --save Enregistrer les résultats dans results.txt
-N, --no-dns Ne pas utiliser dnsrecon pour élargir la portée
-l, --target-file TARGET_FILE Fichier contenant une liste de domaines (un par ligne)
-d, --domains DOMAINS Liste de domaines séparés par des virgules à scanner
-o, --origin ORIGIN Ajouter les domaines vulnérables à de nouvelles distributions avec cette origine
-i, --origin-id ORIGIN_ID L'ID d'origine à utiliser avec les nouvelles distributions
$ python cloudfrunt.py -o cloudfrunt.com.s3-website-us-east-1.amazonaws.com -i S3-cloudfrunt -l list.txt
CloudFrunt v1.0.4
[+] Énumération des entrées DNS pour google.com
[-] Aucun problème trouvé pour google.com
[+] Énumération des entrées DNS pour disloops.com
[+] Domaine CloudFront trouvé --> cdn.disloops.com
[+] Domaine CloudFront trouvé --> test.disloops.com
[-] Domaines CloudFront potentiellement mal configurés :
[#] --> test.disloops.com
[+] Nouvelle distribution CloudFront créée EXBC12DE3F45G
[+] test.disloops.com ajouté à la distribution CloudFront EXBC12DE3F45G