Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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
SUNBURST — Détection de SUNBURST C2 Stage-1 à l'aide de l'entropie de Shannon | Kitploit
Outils/GitHubGitHub/malwaremorghulis/sunburst
Sécurité RéseauAnalyse de MalwareCommandement et ContrôleRenseignement sur les MenacesAnalyse DNSDétection d'Anomalies
GitHubmalwaremorghulis/sunburst

SUNBURST

Détection de SUNBURST C2 Stage-1 à l'aide de l'entropie de Shannon

Voir le dépôt
31il y a 3 ansPas encore vérifié

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

SUNBURST

Détection du C2 Stage-1 de SUNBURST à l'aide de l'entropie de Shannon

À propos :

Utilisation de l'entropie de Shannon pour détecter les algorithmes de génération de domaines (DGA). Seuls des FQDN doivent être fournis à la fonction ou lus à partir d'un fichier CSV. SYNTAXE : Prefix_or_subdomain.Domain.TLD Conçu en raison des APT exploitant les DGA à chaîne longue pour la Kill Chain : C2. Identifier les URL à chaîne longue qui présentent une entropie élevée > 2 écarts-types. En examinant la limite supérieure de 2,5 % des URL avec de longs préfixes/sous-domaines. Enregistrement de métadonnées supplémentaires si les analystes CND en ont besoin (c.-à-d. la longueur du préfixe).

Prérequis :

  1. Python 3.9+
  2. Python existe dans la variable PATH
  3. Toutes les importations répertoriées (pip install, si nécessaire)
  4. Le journal DNS d'entrée contient 1 FQDN par ligne (aucune autre ponctuation)
  5. Les fichiers Cisco Top-1M (CSV, ZIP) ou Majestic Top-1M (CSV) doivent exister dans le même dossier que le script.

Comment exécuter (MODE INTERACTIF ACTIVÉ, voir VARIABLES) :

  1. Installer Python 3.9.x
  2. Préparer tous les fichiers d'entrée avec le format correct (domaines dans un fichier texte, 1 par ligne, sans ponctuation)
  3. S'assurer que les fichiers d'entrée se trouvent dans le même répertoire/dossier que ce script. 4a) (Windows) Ouvrir ce script dans Python IDLE ou Visual Studio Code. 4b) (Linux) $~: python3 shannon.py
  4. Saisir le fichier journal DNS d'entrée à examiner.
  5. Saisir le fichier Cisco Umbrella (CSV/ZIP) ou Majestic Top-1M (CSV) à utiliser.
  6. Attendre que les valeurs de fréquence et d'entropie de Shannon soient générées.
  7. Examiner les fichiers de sortie.

Comment exécuter (MODE INTERACTIF DÉSACTIVÉ, voir VARIABLES) :

  1. Installer Python 3.9.x
  2. Préparer tous les fichiers d'entrée avec le format correct (domaines dans un fichier texte, 1 par ligne, sans ponctuation)
  3. S'assurer que les fichiers d'entrée se trouvent dans le même répertoire/dossier que ce script. 4a) (Windows) Ouvrir ce script dans Python IDLE ou Visual Studio Code. 4b) (Linux) $~: python3 shannon.py
  4. Le journal d'entrée à analyser est « domains.txt », voir VARIABLES.
  5. Choisir le fichier Top-N pour construire la probabilité du dictionnaire, voir VARIABLES.
  6. Attendre que les valeurs de fréquence et d'entropie de Shannon soient générées.
  7. Examiner les fichiers de sortie.

Hypothèses :

  1. Les lettres majuscules et minuscules ont la même probabilité d'apparition. a) En négligeant le fait que les nœuds TOR modifient la sensibilité à la casse dans les requêtes DNS et l'encodage 0x20.
  2. Le tableau de fréquence des caractères ETOAN est insuffisant car il manque : 0-9, « - » et « _ » a) Les domaines peuvent contenir des traits d'union (-), des underscores (_) et des chiffres.
  3. Non conçu pour contrer le DGA d'ExploderBot.
  4. Entrée : simple fichier texte, chaque URL est sur sa propre ligne - rien d'autre.
  5. L'entrée est composée strictement de chaînes URL sans caractères interdits.
  6. Les fichiers d'entrée et de sortie doivent se trouver dans le même dossier que ce script.
  7. Python3 est dans la variable PATH.

Jeu de données (Domaines) :

Le jeu de données utilisé a été dérivé du journal des requêtes Pi-Hole (fenêtre de 12 heures) extrait de SQLite.

BASH:

$~: sqlite3 /etc/pihole/pihole-FTL.db "SELECT domain FROM queries WHERE timestamp >='$(($(date +%s) - 43200))'" > domains.txt

Les données ont été dédupliquées à l'aide d'Excel > Données > Supprimer les doublons. Les données pour les recherches inverses (PTR) in-addr.arpa ont également été supprimées.

Jeu de données (Probabilités) :

En s'appuyant sur les résultats de RedCanary pour l'analyse des DGA, ce script prend une URL et calcule l'entropie de Shannon.

Étapes de test DevOps :

  1. shannon.py (1.0) - Faire fonctionner les calculs avec le dictionnaire statique de RedCanary.
  2. shannon.py (1.1) - Tests mineurs fusionnés dans la 1.0.
  3. dictionary.py (1.0) - Tester l'ouverture/fermeture de Cisco + Majestic Top-1M.
  4. shannon.py (2.0) - Combinaison de la 1.0 avec les fonctions testées de dictionary.py.

Références :

Entropie de Shannon selon Splunk - d'où vient l'idée* https://www.splunk.com/en_us/blog/tips-and-tricks/when-entropy-meets-shannon.html

SANS Mark Baggett - Outil utilisé par RedCanary pour analyser Alexa Top 1M https://github.com/markbaggett/freq

RedCanary - Blog d'où proviennent les scores de probabilité https://redcanary.com/blog/threat-hunting-entropy/

Top 1M d'Alexa - Corpus de données utilisé par RedCanary https://www.alexa.com/topsites

Détecteur de DGA https://github.com/exp0se/dga_detector

Entropie de Shannon - Formule https://towardsdatascience.com/the-intuition-behind-shannons-entropy-e74820fe9800

Télécharger l’outil