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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
PacketWhisper — PacketWhisper : Exfiltrez furtivement des données et déjouez l'attribution en utilisant des requêtes DNS et de la stéganographie textuelle. Évitez les problèmes associés aux méthodes d'exfiltration DNS typiques. Transférez des données entre des systèmes sans que les appareils communicants se connectent directement entre eux ou à un point de terminaison commun. Pas besoin de contrôler un serveur de noms DNS. | Kitploit
Outils/GitHubGitHub/trycatchhcf/packetwhisper
Exfiltration de DonnéesStéganographieCryptographieRed TeamingAnalyse DNS
GitHubtrycatchhcf/packetwhisper

PacketWhisper

Voir le dépôt

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 →

À propos

65312271il y a 6 ansVérifié par Kitploit

PacketWhisper : Exfiltrez furtivement des données et déjouez l'attribution en utilisant des requêtes DNS et de la stéganographie textuelle. Évitez les problèmes associés aux méthodes d'exfiltration DNS typiques. Transférez des données entre des systèmes sans que les appareils communicants se connectent directement entre eux ou à un point de terminaison commun. Pas besoin de contrôler un serveur de noms DNS.

Partager

PacketWhisper

PacketWhisper - Transférez discrètement des données et évitez l'attribution en utilisant des requêtes DNS et la stéganographie basée sur du texte, sans nécessiter de serveurs de noms ou de domaines contrôlés par l'attaquant ; contournez les dispositifs DLP/MLS ; déjouez les contrôles de listes blanches de données et de serveurs de noms DNS. Convertissez tout type de fichier (exécutables, Office, Zip, images) en une liste de noms de domaine pleinement qualifiés (FQDN), utilisez les requêtes DNS pour transférer les données. Simple mais extrêmement efficace.

(Mise à jour du 27/05/2020 : Oui, je vais migrer tous mes projets Github vers Python3 au cours de l'été 2020.)

Auteur

Joe Gervais (TryCatchHCF)

Pourquoi est-ce différent de toutes les autres techniques d'exfiltration DNS ?

L'exfiltration DNS traditionnelle repose sur l'une des méthodes suivantes : le tunneling DNS ; le masquage de données dans les champs de requête DNS ; ou des charges utiles encodées/chiffrées qui sont divisées et utilisées comme sous-domaines dans la requête DNS. Toutes ces méthodes nécessitent que l'attaquant contrôle un domaine et/ou un serveur de noms DNS associé pour recevoir les données, ce qui conduit à l'attribution. Ces approches sont également vulnérables à la liste noire (courante) et à la liste blanche (de plus en plus courante) des serveurs de noms DNS. Un autre problème est que les analystes DFIR connaissent ces méthodes, et les systèmes SIEM les détectent et émettent souvent des alertes lorsqu'ils les voient.

PacketWhisper surmonte ces limitations.

Et si les données pouvaient être transférées en utilisant les propres serveurs DNS mis en liste blanche de la cible, sans que les systèmes communicants ne se connectent jamais directement les uns aux autres ou à un point de terminaison commun ? Même si la frontière réseau employait une liste blanche de données pour bloquer l'exfiltration ?

Comment ça fonctionne

Pour y parvenir, PacketWhisper combine les requêtes DNS avec la stéganographie textuelle. En s'appuyant sur le Cloakify Toolset, il transforme la charge utile en une liste de chaînes FQDN. PacketWhisper utilise ensuite cette liste de FQDNs pour créer des requêtes DNS séquentielles, transférant la charge utile à travers (ou à l'intérieur) les frontières réseau, avec les données cachées à la vue de tous, et sans que les deux systèmes ne se connectent jamais directement l'un à l'autre ou à un point de terminaison commun. Les chiffrements utilisés par PacketWhisper offrent plusieurs niveaux de tromperie pour éviter de générer des alertes ainsi que pour induire en erreur les tentatives d'analyse.

Pour recevoir les données, vous capturez le trafic réseau contenant les requêtes DNS, en utilisant la méthode la plus pratique pour vous. (Voir 'Capturer le fichier PCAP' ci-dessous pour des exemples de points de capture.) Vous chargez ensuite le fichier PCAP capturé dans PacketWhisper (fonctionnant sur le système de votre choix), qui extrait la charge utile du fichier et la Décloakifie pour la retrouver dans sa forme originale.

DNS est un protocole intéressant à utiliser car, même s'il s'agit d'un moyen relativement lent de transférer des données, DNS est presque toujours autorisé à travers les frontières réseau, même sur les réseaux les plus sensibles.

Note importante : Nous utilisons les requêtes DNS pour transférer les données, pas les résolutions DNS réussies. PacketWhisper n'a jamais besoin de résoudre avec succès l'une de ses requêtes DNS. En fait, PacketWhisper ne regarde même pas les réponses DNS. Cela élargit nos cas d'utilisation et souligne le fait que nous n'avons jamais besoin de contrôler un domaine pour lequel nous faisons une requête, ni de contrôler un serveur de noms DNS traitant les requêtes DNS.

Ainsi, avec PacketWhisper, nous transformons une charge utile qui ressemble à ceci :

En une liste de FQDNs comme ceci :

Ce que PacketWhisper transforme en requêtes DNS qui apparaissent dans le trafic réseau comme ceci :

Que vous capturez sous forme de fichier PCAP n'importe où sur le chemin de résolution DNS, puis chargez ce PCAP dans votre copie locale de PacketWhisper pour récupérer la charge utile :

Tutoriel

Voir les diapositives DEF CON 26 (incluses dans le projet) de ma présentation Packet Hacking Village. Les diapositives présentent le contexte de l'exfiltration DNS, la stéganographie textuelle / Cloakify Toolset, et comment PacketWhisper les combine pour créer une méthode de transfert de données. J'ai spécifiquement conçu les diapositives pour être utiles seules, donc le contexte et les informations devraient être complets. Cependant, vous pouvez également regarder la vidéo de ma présentation DC26 Packet Hacking Village qui fournit un contexte supplémentaire.

J'ai inclus un fichier PCAP d'exemple dans le projet (astucieusement nommé 'sample.pcap') qui contient des charges utiles distinctes pour chacun des chiffrements. Ils auraient pu être n'importe quel type de fichier, bien sûr, mais dans ce cas, j'ai simplement transmis des fichiers texte dans le PCAP. Chargez-le dans PacketWhisper et essayez-le !

Pour un test rapide dans votre propre environnement, exécutez PacketWhisper depuis une VM, puis envoyez un fichier tout en effectuant une capture de paquets sur l'interface réseau de la VM via le système hôte. Vous pouvez ensuite charger le fichier PCAP dans l'instance PacketWhisper qui vous convient pour décoder le fichier. Souvenez-vous que ce n'est pas un transfert rapide. Les fichiers plus petits et la patience sont vos alliés.

Prérequis

  1. Python 2.7.x (un portage vers 3.6.x est en cours)
  2. Pour décoder les charges utiles : tcpdump (inclus sur Linux et MacOS) ou WinDump (Windows)

Question : 'Pourquoi n'avez-vous pas utilisé Scapy ou la bibliothèque dnspython ?'

Réponse : Je déteste les dépendances de projet dans mes outils opérationnels. Je garde mes projets aussi atomiques et autonomes que possible pour une fiabilité maximale, surtout côté client où je peux ne pas contrôler l'environnement et/ou avoir des privilèges minimaux. Grâce à la structure de PacketWhisper, je peux le faire fonctionner sur un hôte shell limité simplement en tarant le projet et en l'extrayant sur l'hôte cible.

Question : 'Pourquoi PacketWhisper n'est-il pas un fork du projet Cloakify Toolset ?'

Réponse : Même réponse que ci-dessus. Nous n'avons besoin que d'un sous-ensemble très spécifique des capacités de Cloakify, et ajouter tout le reste à PacketWhisper ne ferait qu'encombrer le répertoire et ajouter des outils/chiffrements qui ne peuvent pas être utilisés par PacketWhisper. Comme je possède les deux projets, je promets de synchroniser les changements entre les deux.

Exécuter PacketWhisper

$ python packetWhisper.py

Chiffrements basés sur les FQDN

Les chiffrements basés sur les FQDN comprennent 3 catégories :

  1. FQDNs à sous-domaines aléatoires uniques (Recommandé - évite la mise en cache DNS, contourne le NAT)
  2. FQDNs uniques répétés (Le DNS peut mettre en cache, mais contourne le NAT)
  3. FQDNs de sites web courants (La mise en cache DNS peut bloquer, le NAT interfère)

FQDNs à sous-domaines aléatoires uniques

MODE DE CHIFFREMENT RECOMMANDÉ POUR LA PLUPART DES CAS D'UTILISATION

Télécharger l’outil