Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
findcdn — Analyse les domaines pour identifier quel réseau de distribution de contenu (CDN) ils utilisent en effectuant une empreinte des en-têtes HTTPS, des enregistrements CNAME et des données WHOIS, avec une sortie JSON et la prise en charge de modules. | Kitploit
Outils/GitHubGitHub/cisagov/findcdn
OSINT (Renseignement de Sources Ouvertes)ReconnaissanceCartographie RéseauCollecte d'InformationsUtilitaires et FrameworksUsurpation d'Empreinte NumériqueAnalyse DNS
GitHubcisagov/findcdn

findcdn

Analyse les domaines pour identifier quel réseau de distribution de contenu (CDN) ils utilisent en effectuant une empreinte des en-têtes HTTPS, des enregistrements CNAME et des données WHOIS, avec une sortie JSON et la prise en charge de modules.

Voir le dépôt
1232313il y a 1 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

findcdn

GitHub Build Status Coverage Status Total alerts Language grade: Python Known Vulnerabilities

findcdn, est un outil qui peut scanner et détecter le type de Content Distribution Network (CDN) qu'un domaine utilise. findcdn peut enregistrer les résultats dans un fichier, être utilisé comme module, ou simplement afficher sur stdout.

findcdn aide les utilisateurs de l'outil à déterminer avec précision quel CDN un domaine utilise. La liste des domaines pris en charge est répertoriée dans le fichier cdn_config.py du dépôt. La bibliothèque peut être implémentée comme un outil autonome ou un module importable dans votre projet. Dans les deux cas, les résultats peuvent être écrits dans un fichier de sortie.

Pour commencer

findcdn nécessite Python 3.7+. Python 2 n'est pas pris en charge.

findcdn peut être installé comme module en utilisant pip et le fichier requirements.txt du dépôt.

Installation en tant que module

findcdn peut être installé via pip :

root@kitploit:~
pip install --requirement requirements.txt

Il peut ensuite être exécuté directement :

root@kitploit:~
findcdn list github.com

Alternativement, vous pouvez l'installer rapidement dans n'importe quel projet avec :

root@kitploit:~
pip install git+https://github.com/cisagov/findcdn.git

Remarque : Il est recommandé d'utiliser un environnement virtuel Python pour installer les modules et garder votre environnement propre. Si vous souhaitez le faire, vous aurez besoin de pyenv et du plugin pyenv-virtualenv avant d'installer le module.

Utilisation autonome et exemples

root@kitploit:~
findcdn file <fileIn> [options]
findcdn list  <domain>... [options]
findcdn (-h | --help)

findcnd -h
findcdn file domains.txt -o output_cdn.txt -t 17 -d
findcdn list dhs.gov cisa.gov -o output_cnd.txt -v
findcdn list cisa.gov

Options

root@kitploit:~
  -h --help                    Affiche ce message.
  --version                    Affiche la version actuelle.
  -o FILE --output=FILE        Si spécifié, alors le fichier de sortie JSON sera
                               créé à la valeur spécifiée.
  -v --verbose                 Inclut des instructions d'affichage supplémentaires.
  --all                        Inclut les domaines avec et sans CDN
                               dans la sortie.
  -d --double                  Exécute les vérifications deux fois pour augmenter la précision.
  -t --threads=<thread_count>  Nombre de threads, sinon utilise la valeur par défaut.
  --timeout=<timeout>          Durée maximale en secondes pour attendre qu'un domaine
                               termine le traitement, sinon utilise la valeur par défaut.
  --user_agent=<user_agent>    Définit l'agent utilisateur à utiliser, sinon
                               utilise la valeur par défaut.

Exemple de sortie

root@kitploit:~
user2@ubuntu:~$ findcdn list asu.edu -t 7 --double
Using 7 threads.
[Pending: 0 jobs]==[Threads: 2]: 100%|███████████████████████████████| 2/2 [00:00<00:00,  2.22it/s]
{
    "date": "06/19/2020, 13:00:38",
    "CDN_count": "1",
    "domains": {
        "asu.edu": {
            "IP": "'104.16.50.14'",
            "cdns": "'.cloudflare.com'",
            "cdns_by_names": "'Cloudflare'"
        }
    }
}
Domain processing completed.
1 domains had CDN's out of 1.

asciicast

Utilisation en tant que bibliothèque

Puisque findcdn peut être installé comme module, sa capacité de détection de CDN peut être appelée et implémentée dans n'importe quel projet. D'abord, importez findcdn dans votre projet, comme montré ci-dessus. Ensuite, passez-lui une liste de domaines à analyser. Après traitement, le programme retournera un objet JSON contenant les domaines fournis et les CDN qu'ils utilisent.

Le fonctionnement de findcdn est déterminé par les options passées ; les options possibles actuelles et un exemple sont écrits ci-dessous pour votre commodité :

root@kitploit:~
findcdn.main(
    domain_list: List[str],  # List of domains to search
    output_path: str = None,  # if included, output results to JSON
    verbose: bool = False,  # Verbose mode (more printing!)
    all_domains: bool = False,  # Includes domains that dont have cdn's in the output
    interactive: bool = False,  # Includes a progress bar (normally used for command line)
    double_in: bool = False,  #D ouble the number of tries on a domain to increase accuracy
    threads: int = THREADS,  # Number of threads to use
    timeout: int = TIMEOUT,  # How long to wait on a domain
    user_agent: str = USER_AGENT,  # User Agent to use
)

Exemple

root@kitploit:~
import findcdn
import json

domains = ['google.com', 'cisa.gov', 'censys.io', 'yahoo.com', 'pbs.org', 'github.com']
resp_json = findcdn.main(domains, output_path="output.json", double_in=True, threads=23)

dumped_json = json.loads(resp_json)

for domain in dumped_json['domains']:
    print(f"{domain} has CDNs:\n {dumped_json['domains'][domain]['cdns']}")

Comment ça fonctionne

findcdn est divisé en trois sections :

  • Le fichier principal d'exécution de findcdn
    • Valide et organise les domaines fournis
    • Orchestre l'utilisation du CDN Engine en utilisant une liste de domaines
    • Affiche les CDN des domaines en JSON sur stdout et dans un fichier si sélectionné
  • Le CDN Engine
    • Organise tous les domaines dans un "pot"
    • Chef utilisera la bibliothèque CDN Detection pour obtenir tous les CDN de chaque domaine
    • Chef exécute ensuite une analyse pour définir la valeur booléenne has_cdn s'il détecte qu'un domaine possède un CDN, puis retourne la liste des domaines au fichier principal
  • CDN Detection
    • Extraira les données de :
      • En-têtes de serveur HTTPS
      • Enregistrements CNAME
      • Données WHOIS
    • À partir de chacun de ces éléments, il exécute une analyse d'empreinte pour identifier les CDN définis dans cdn_config.py.

Historique

L'objectif initial de cet outil était de détecter automatiquement si un domaine qui utilise un CDN est frontable. En raison de la surcharge importante pour la détection de fronting, nous avons réorienté le développement de cet outil pour qu'il soit exclusivement un outil de détection de CDN. Nous utilisons notre wiki pour décrire plus en détail ce qu'est le Domain Fronting, nos notes de recherche, nos décisions de conception et nos playbooks pour le fronting de domaines spécifiques. Si vous trouvez d'autres domaines frontables ou des failles dans les playbooks actuels, veuillez envisager de contribuer !

Résumé des changements du projet

  • Le projet est maintenant destiné à la détection de CDN.
    • Déterminer la frontabilité était irréalisable pour chaque fournisseur de CDN.
  • Les ressources, notes et playbooks sont maintenant disponibles dans le wiki de ce dépôt.
  • Tout retour, amélioration ou playbook supplémentaire est toujours apprécié.

Plus d'informations

Il y a plus d'informations disponibles sur notre page wiki. Nous vous encourageons à faire des demandes de fonctionnalités ou à contribuer à tout ce que vous souhaitez voir ajouté dans le projet ou le wiki.

Cela peut être l'un des éléments suivants :

  • Informations relatives au domain fronting
  • Playbooks pour le fronting de différents domaines
  • Meilleures méthodes de détection pour les CDN
  • Mises à jour générales des pages wiki actuelles

Contribution

Nous accueillons les contributions ! Veuillez consulter CONTRIBUTING.md pour plus de détails.

Licence

Ce projet est dans le domaine public mondial.

Ce projet est dans le domaine public aux États-Unis, et les droits d'auteur et droits connexes sur l'œuvre dans le monde entier sont renoncés par la dédicace au domaine public CC0 1.0 Universal.

Toutes les contributions à ce projet seront publiées sous la dédicace CC0. En soumettant une pull request, vous acceptez de vous conformer à cette renonciation aux intérêts de droit d'auteur.

Télécharger l’outil