Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
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
DNSStager — Cacher votre payload dans le DNS | Kitploit
Outils/GitHubGitHub/mhaskar/dnsstager
Génération de PayloadsExploitationCommandement et ContrôleRed TeamingDéveloppement de Charges UtilesAnalyse DNS
GitHubmhaskar/dnsstager

DNSStager

Cacher votre payload dans le DNS

Voir le dépôt
62213322il y a 3 ansVé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

Qu'est-ce que DNSStager ?

DNSStager est un projet open source basé sur Python utilisé pour cacher et transférer votre payload en utilisant DNS.

DNSStager va créer un serveur DNS malveillant qui gère les requêtes DNS vers votre domaine et renvoie votre payload en réponse à des demandes d'enregistrements spécifiques comme les enregistrements AAAA ou TXT après l'avoir découpé en blocs et encodé le payload en utilisant différents algorithmes.

DNSStager peut générer un agent personnalisé écrit en C ou en GoLang qui résoudra une séquence de domaines, récupèrera le payload, le décodera et finalement l'injectera en mémoire selon la technique de votre choix.

Vous pouvez modifier le code de l'agent DNSStager comme vous le souhaitez et le construire en utilisant vos propres techniques d'exécution personnalisées.

L'objectif principal de l'utilisation de DNSStager est d'aider les red teamers / pentesters à livrer leurs payloads via un canal discret utilisant DNS.

Comment ça fonctionne ?

En fonction de votre option de résolution DNS, DNSStager découpera votre payload en blocs et enregistrera chaque bloc du payload en tant que réponse pour un sous-domaine.

Par exemple, si vous choisissez IPV6 comme option pour récupérer le payload, la réponse DNS ressemblera à ceci :

cloud-srv-1.test.mydnsserver.live. 300 IN AAAA 5648:31d2:6548:8b52:6048:8b52:1848:8b52

Où 5648:31d2:6548:8b52:6048:8b52:1848:8b52 est une partie de votre payload.

Ainsi, l'agent résoudra certains domaines pour récupérer le payload, puis le décodera et finalement l'injectera en mémoire.

Actuellement, DNSStager ne supporte que deux enregistrements, AAAA et TXT. Vous pouvez encoder votre payload en utilisant XOR pour l'enregistrement AAAA et par défaut il sera encodé en base64 si vous choisissez l'enregistrement TXT.

Principales fonctionnalités de DNSStager :

DNSStager possède certaines fonctionnalités clés telles que :

  • Cacher et résoudre votre payload dans des enregistrements IPV6.
  • Cacher et résoudre votre payload dans des enregistrements TXT.
  • Encodeur XOR pour encoder votre payload.
  • Encodeur Base64 pour encoder votre payload (uniquement pour les enregistrements TXT).
  • Agent pur écrit en C avec la possibilité de le personnaliser.
  • Agent pur écrit en GoLang avec la possibilité de le personnaliser.
  • La possibilité d'utiliser une pause entre chaque requête DNS.
  • ET BEAUCOUP D'AUTRES À VENIR !

Prérequis

Vous pouvez installer les dépendances Python de DNSStager via :

pip3 install -r requirements.txt

Vous devez installer GoLang version 1.16.3 et assurez-vous d'installer les paquets GoLang suivants :

  • golang.org/x/sys
  • github.com/miekg/dns

Assurez-vous également d'installer ming-w64 via :

apt install mingw-w64

Le script setup.sh devrait le faire pour vous, mais vérifiez les prérequis avant de l'utiliser !

Installation

Pour obtenir la dernière version de DNSStager, assurez-vous de la cloner depuis ce dépôt en utilisant la commande suivante :

git clone https://github.com/mhaskar/DNSStager

Ensuite, vous devez installer les dépendances avec la commande suivante :

pip3 install -r requirements.txt

Et assurez-vous d'installer tous les autres prérequis mentionnés précédemment.

Après avoir fait tout cela, vous êtes prêt à exécuter DNSStager en tant que root pour obtenir ce qui suit :

askar•/opt/redteaming/DNSStager(main⚡)» sudo ./dnsstager.py                                                                                                                 

    
                                                                                          
                                                                                          
██████  ███    ██ ███████ ███████ ████████  █████   ██████  ███████ ██████  
██   ██ ████   ██ ██      ██         ██    ██   ██ ██       ██      ██   ██ 
██   ██ ██ ██  ██ ███████ ███████    ██    ███████ ██   ███ █████   ██████  
██   ██ ██  ██ ██      ██      ██    ██    ██   ██ ██    ██ ██      ██   ██ 
██████  ██   ████ ███████ ███████    ██    ██   ██  ██████  ███████ ██   ██ 
                                                                            
                                                                                                                                                            
                                                                                              

    Stable v1.0                           Cachez votre payload dans DNS
    
[-] Veuillez spécifier un nom de domaine avec --domain

Utilisation

Pour commencer à utiliser DNSStager, configurez d'abord vos paramètres DNS : vous devez faire pointer votre domaine vers l'instance DNSStager en tant qu'enregistrement NS afin de gérer toutes les requêtes DNS vers votre domaine.

Vous pouvez lire cet article complet sur la configuration et l'utilisation de DNSStager.

Et vous pouvez vérifier les options en utilisant le commutateur -h comme ceci :

askar•/opt/redteaming/DNSStager(main⚡)» sudo ./dnsstager.py -h                                                                                                         
usage: dnsstager.py [-h] [--domain DOMAIN] [--payloads] [--prefix PREFIX] [--payload PAYLOAD] [--output OUTPUT] [--shellcode_path SHELLCODE_PATH] [--xorkey XORKEY] [--sleep SLEEP]
                    [--format FORMAT]

Analyseur principal de DNSStager

arguments optionnels :
  -h, --help            affiche ce message d'aide et quitte
  --domain DOMAIN       Le domaine que vous souhaitez utiliser comme hôte de staging
  --payloads            affiche tous les payloads
  --prefix PREFIX       Préfixe à utiliser dans le schéma de sous-domaine
  --payload PAYLOAD     Payload à utiliser, voir --payloads pour plus de détails
  --output OUTPUT       Chemin de sortie de l'agent
  --shellcode_path SHELLCODE_PATH
                        Chemin du fichier shellcode
  --xorkey XORKEY       Clé XOR pour encoder votre payload
  --sleep SLEEP         Dormir N secondes entre chaque requête DNS
  --format FORMAT       Format du payload (.dll ou .exe)
  --tcp                 Démarrer et utiliser le serveur DNS via le protocole TCP
  • --domain : vous pouvez utiliser cette option pour sélectionner le domaine principal que vous utiliserez pour gérer les requêtes DNS.

  • --prefix : Le préfixe que vous souhaitez utiliser pour le schéma des sous-domaines. Par exemple, si votre domaine principal est fakedns.live, vous pouvez spécifier le préfixe comme "cdn" par exemple. Ainsi, les domaines générés suivront un motif comme :

    • cdn0.fakedns.live
    • cdn1.fakedns.live
    • cdnN.fakedns.live

Où N est un nombre généré automatiquement représentant le nombre de blocs de votre payload.

  • --payload : le payload "agent" DNSStager que vous souhaitez générer en fonction de la technique, du langage de programmation et de l'architecture.

  • --output : Chemin de sortie pour sauvegarder l'exécutable du payload "agent" DNSStager.

  • --shellcode_path : Le chemin de votre shellcode raw/bin.

  • --xorkey : Clé XOR pour encoder le payload.

  • --sleep : Utilisé pour dormir N secondes entre chaque requête DNS.

  • --tcp : Démarrer et utiliser le serveur DNS via le protocole TCP

Payloads DNSStager

Pour vérifier les payloads DNSStager disponibles, utilisez ./dnsstager.py --payloads pour obtenir les résultats suivants :

askar•/opt/redteaming/DNSStager(main⚡)» sudo ./dnsstager.py --payloads                                                                                                

[+] 6 payloads DNSStager disponibles
Télécharger l’outil