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
WAREED-DNS-C2 — Framework de commande et de contrôle exclusivement via DNS avec agent Windows, génération de payloads, exécution de shell à distance, injection de shellcode et prise en charge du proxy SOCKS5 pour les opérations furtives. | Kitploit
Outils/GitHubGitHub/faisal-p27/wareed-dns-c2
Génération de PayloadsÉvasion IDS/IPSPost-ExploitationCommandement et ContrôleOutil d'Accès à DistanceDéveloppement de Charges Utiles
GitHubfaisal-p27/wareed-dns-c2

WAREED-DNS-C2

Framework de commande et de contrôle exclusivement via DNS avec agent Windows, génération de payloads, exécution de shell à distance, injection de shellcode et prise en charge du proxy SOCKS5 pour les opérations furtives.

Voir le dépôt
1263410il y a 1 anVé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

Wareed DNS C2

entrez la description de l'image ici

WAREED est un framework de commande et de contrôle (C2) qui utilise le protocole DNS pour des communications sécurisées entre le serveur et la cible. Conçu pour minimiser les communications et limiter l'échange de données, il est destiné à être un C2 de première étape pour persister sur des machines qui n'ont pas accès à Internet via HTTP/HTTPS, mais où le DNS est autorisé.

développé par : @Fsalabduljabbar

Comment ça marche

entrez la description de l'image ici

Pourquoi Wareed

Bien que de nombreux frameworks de commande et de contrôle (C2) prennent en charge DNS comme protocole de transport, ils sont principalement conçus pour HTTP/HTTPS. Transposer ces frameworks vers DNS aboutit souvent à des opérations plus lentes et moins stables. Ayant été confronté à de nombreux défis liés à l'instabilité de ces frameworks pour les transactions DNS, j'ai été contraint de créer une solution spécifiquement adaptée à DNS. Le résultat est Wareed, un framework C2 exclusivement DNS. Cette spécialisation permet un fonctionnement plus stable et plus efficace, rendant Wareed plus rapide et plus fiable que les frameworks C2 traditionnels qui ne sont pas principalement conçus pour DNS. Cela fait de Wareed un choix idéal pour les environnements où le trafic DNS est autorisé mais où HTTP/HTTPS est restreint.

À propos

Il a été développé à l'aide de trois langages de programmation :

  1. Hams Agent en C
  2. Wareed Team server en Golang
  3. Ather Client GUI en C++

Explication des noms :

Hams (همس) signifie « murmure » en arabe

Wareed (وريد) signifie « veine » en arabe

Ather (أثر) signifie « trace » en arabe

Démo

TEXTE ALTERNATIF DE L'IMAGE ICI

Prérequis

  1. Un nom de domaine valide et contrôlé
  2. Kali Linux 2023+ ou Ubuntu 23+
  3. Un redirecteur (Ubuntu) pour gérer les connexions DNS (facultatif)

Installation

Étape 1 : Clonez le dépôt Wareed :

root@kitploit:~
git clone https://github.com/Faisal-P27/WAREED-DNS-C2.git

Étape 2 : Exécutez le script d'installation :

root@kitploit:~
cd WAREED-DNS-C2
chmod +x Run.sh
sudo ./Run.sh setup

Si le processus de compilation aboutit, deux fichiers exécutables seront générés dans le même répertoire :

  • WareedServer : Ce fichier sert d'exécutable pour le serveur d'équipe
  • Ather : Ce fichier est l'exécutable pour le client GUI.

il vérifie également l'état de compilation de l'Agent. En cas de succès, cela confirme que l'Agent est prêt à être déployé et opérationnel, ce qui est essentiel pour le fonctionnement du C2 Wareed.

Configuration

root@kitploit:~
{
    "magic_value": "cdn",
    "domains": ["2.example.net"],
    "listener_port": "111",
    "sleep": 5,
    "jitter": 50,
    "lookup_delay": 5,
    "default_dns_server": "1.1.1.1"
}
  • magic_value : Un identifiant unique utilisé par le C2.
  • domains : Un tableau de noms de domaine utilisés par le C2 pour les communications DNS.
  • listener_port : Le numéro de port sur lequel le serveur d'équipe DNS écoute les connexions entrantes.
  • sleep : Le délai de base entre les demandes de tâches.
  • jitter : Un pourcentage qui ajoute de l'aléatoire aux intervalles de sommeil pour masquer les modèles de trafic.
  • lookup_delay (désactivé) : Le délai avant d'effectuer une requête DNS pour espacer les requêtes DNS et éviter la détection.
  • **default_dns_server **: Le serveur DNS spécifié pour être utilisé par l'Agent si le DNS local ne répond pas.

magic_value: la longueur doit être égale à 3.

Infrastructure DNS

Configuration DNS : Pour utiliser Wareed, il est essentiel de posséder un nom de domaine valide. Après avoir acquis un domaine, deux enregistrements DNS doivent être configurés pour pointer vers le redirecteur :

  1. Enregistrement A : Il doit être configuré pour pointer vers l'adresse IP du redirecteur.
  2. Enregistrement NS : Il doit pointer vers l'enregistrement A que vous avez précédemment établi.

exemple

infrastructure

Configuration du redirecteur : Le redirecteur gérera le trafic DNS entrant sur le port 53 et le redirigera vers le serveur d'équipe. Pour ce faire, exécutez les commandes iptables suivantes sur la machine du redirecteur (R1) :

Accepter les requêtes DNS :
root@kitploit:~
iptables -I INPUT -p udp -m udp --dport 53 -j ACCEPT

Cette commande configure le pare-feu pour accepter les paquets UDP entrants sur le port 53, qui est le port standard pour les requêtes DNS.

Rediriger le trafic DNS :
root@kitploit:~
iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to-destination [TeamServer IP]:[teamserver listener port]

Remplacez [TeamServer IP] par l'adresse IP réelle de votre serveur d'équipe et [teamserver listener port] par le numéro de port sur lequel votre serveur d'équipe écoute. Cette commande dirige tout le trafic arrivant sur le port 53 vers l'adresse IP et le port spécifiés du serveur d'équipe.

entrez la description de l'image ici

Exécuter Wareed

Serveur d'équipe Wareed

Pour démarrer le serveur d'équipe Wareed pour la première fois, vous devez spécifier le fichier de configuration ainsi que le mot de passe client et le port sur lequel le client écoutera. Utilisez la commande suivante pour exécuter le serveur d'équipe Wareed :

root@kitploit:~
sudo ./WareedServer [Client Password] [Client Port Listener] [Path to configuration file]
  • [Client Password] : Remplacez cet espace réservé par le mot de passe que les clients utiliseront pour s'authentifier auprès du serveur.
  • [Client Port Listener] : Remplacez-le par le numéro de port où le serveur d'équipe écoutera les connexions entrantes du client.
  • [Path to configuration file] : Fournissez le chemin complet vers le fichier de configuration initial. Lors des exécutions suivantes, cette configuration sera chargée depuis la base de données, et il n'est pas nécessaire de la spécifier à nouveau.

Client GUI Ather

Pour lancer le client GUI Ather, exécutez simplement :

root@kitploit:~
./Ather

Après avoir exécuté la commande, une nouvelle fenêtre avec une page de connexion apparaîtra.

entrez la description de l'image ici

Détails de connexion : Dans la page de connexion qui apparaît :

  • Username : Saisissez le nom d'utilisateur.
  • Password : Saisissez le mot de passe correspondant, tel que configuré dans la ligne de commande du serveur d'équipe.
  • Port : Saisissez le numéro de port sur lequel le serveur d'équipe écoute les connexions, tel que configuré dans la ligne de commande du serveur d'équipe.
  • IPAddress : Saisissez l'adresse du serveur d'équipe.

Fenêtre principale de Wareed : entrez la description de l'image ici

Générer une nouvelle charge utile

Pour générer une nouvelle charge utile avec le client GUI Ather, suivez ces étapes :

  1. Accédez à la génération de charge utile :

    • Ouvrez le client GUI.
    • Dans la barre de menu, accédez à Payload > Generate > Windows. La sélection de cette option ouvrira une nouvelle fenêtre adaptée à la génération de charge utile.

entrez la description de l'image ici

  1. Sélection du type de charge utile : Wareed permet la génération de deux types de charges utiles : - EXE : Un format de fichier exécutable, simple à déployer. - DLL : Une bibliothèque de liens dynamiques qui peut être utilisée de diverses manières. -

Options de charge utile DLL :

  1. Export Function : Crée une DLL avec des fonctions spécifiques qui déclenchent les fonctionnalités de l'agent lors de l'exécution.
  2. Process Attachment : Produit une DLL qui, une fois attachée à un processus, active immédiatement la charge utile.

Session

Après la génération d'une nouvelle charge utile, une nouvelle session invitée est automatiquement enregistrée auprès du serveur d'équipe. Ce processus d'enregistrement garantit que seule cette session spécifique peut se connecter au serveur d'équipe. Il utilise un identifiant unique et une « valeur magique » pour authentifier et autoriser la session. Ce mécanisme assure une communication sécurisée et contrôlée entre la charge utile nouvellement générée et le serveur d'équipe. entrez la description de l'image ici

Exécuter la charge utile

Après avoir exécuté la charge utile sur une machine Windows, elle commencera à générer des requêtes DNS pour s'enregistrer auprès du serveur d'équipe. Ce processus d'enregistrement se produit en quelques secondes et implique généralement la génération de 3 à 5 requêtes DNS. entrez la description de l'image ici

Interagir

Pour interagir avec une session, faites un clic droit sur la session souhaitée et sélectionnez « Interact » dans le menu contextuel. Cette action ouvrira un nouvel onglet avec une interface de terminal. Dans ce terminal, vous pouvez exécuter des commandes entrez la description de l'image ici

Commandes

CommandeDescriptionUtilisationExemple
helpAffiche le message d'aide de la commande spécifiée[command]help shell
sleepdéfinit le délai de sommeil avec jitter[delay] [jitter]sleep 10 50
shellexécute des commandes cmd.exe et récupère la sortie[commands]shell dir c:\windows\system32 (ne le faites surtout pas)
injectinjecte un shellcode dans un processus distant[pid] [shellcode_path]inject 1234 /path/to/shellcode.bin
proxystartdémarre un proxy SOCKS5[callback_host] [agent_connect_port] [proxy_listener_port]proxystart example.com 443 1080
proxystoparrête un proxy SOCKS5[callback_host] [agent_connect_port] [proxy_listener_port]proxystop example.com 443 1080
adddomainajoute un nouveau domaine de callback[domain_name]adddomain example.com
deldomainsupprime un domaine de callback[domain_name]deldomain example.com
listdomainliste tous les domaines de callback actifslistdomain
killTermine le processus actuel.[yes]kill yes
wipeTermine et supprime le processus actuel.[yes]wipe yes
selfdelSupprime le processus actuel du disque.[yes]selfdel yes
tasklistListe toutes les tâches en file d'attentetasklist
taskdelSupprime une tâche spécifique par son ID[task id]taskdel 123
taskscleanSupprime toutes les tâches de la file d'attente[yes]tasksclean yes
clearefface l'écran du terminalclear

Remarque : La commande inject est simple mais souvent détectée par les contrôles de sécurité. Pour améliorer la furtivité, vous devez implémenter votre propre technique d'injection. Modifiez le code d'injection dans Agent/Source/Core/Tasks/Modules/Injection.c. Voici un modèle de base pour personnaliser la fonction d'injection :

root@kitploit:~
int Inject(unsigned char *ShellCode, int size, int ProcessID) {
	// Add your injection technique here.
	// You will receive the shellcode in [unsigned char *ShellCode] and shellcode size in [nt size]
	// and the process ID in [int ProcessID].
 }

Nettoyer la base de données

Pour nettoyer la base de données, exécutez simplement la commande suivante dans votre terminal :

root@kitploit:~
./Run clean

Actions futures

Bien que je n'aie pas de projets immédiats de continuer à investir du temps dans le projet Wareed, ce fut une incroyable expérience d'apprentissage, et j'en ai énormément profité. Je suis ravi d'annoncer que je prévois de lancer un nouveau projet majeur, THAWD BAS. Pour plus d'informations, veuillez visiter Thawd.io.

Si vous avez des compétences en développement et êtes intéressé(e) à contribuer à Wareed, voici quelques opportunités :

  1. Développer une charge utile Stager utilisant DNS : Il existe un excellent projet de @C5pider qui fournit un modèle de shellcode, un excellent point de départ. Consultez Stardust sur GitHub.
  2. Ajouter un chargeur COFF et une intégration : L'intégration d'un chargeur COFF (Common Object File Format) dans le framework Wareed peut considérablement améliorer ses capacités en permettant le chargement et l'exécution dynamiques de modules binaires, augmentant ainsi la flexibilité opérationnelle. Pour les développeurs souhaitant implémenter cette fonctionnalité, des ressources comme Sector7 offrent des informations précieuses sur le fonctionnement du chargeur COFF, et le projet open-source CoffeeLdr de @C5pider fournit un exemple d'implémentation pratique.

Remerciements particuliers

Ce travail n'aurait pas pu être accompli sans la contribution de plusieurs projets open-source exceptionnels :

Havoc par - @C5pider

DNSStager par - @mohammadaskar2

Boomerang par - @NinjaParanoid

Socks5Server par earthquake

delete-self-poc par - @LloydLabs

Télécharger l’outil