
Outil de test d'exfiltration de données basé sur DNS avec transfert bidirectionnel, interface web et script client pour détecter les vulnérabilités RCE/XXE aveugles dans des environnements contraints.
Le request.bin des requêtes DNS
DNSBin est un outil simple pour tester l'exfiltration de données via DNS et aider à tester des vulnérabilités comme RCE ou XXE lorsque l'environnement présente des contraintes significatives. Le projet est composé de deux parties : la première est le serveur web et ses composants. Il offre une interface web basique, pour la plupart des cas vous n'aurez pas besoin de plus que cela. La partie client propose un script Python qui permet de transférer des données dans les deux sens via DNS en utilisant le service web.
La configuration DNS actuelle que j'ai pour le serveur de démonstration est la suivante. Notez que j'ai procédé par essais et erreurs, donc la configuration peut être trop complexe ou comporter des problèmes. Si vous êtes plus compétent, n'hésitez pas à ouvrir une issue.
Il est fortement recommandé de démarrer le récepteur DNS et le point d'accès WebSocket avec le module Node.JS "forever".
forever start index.js
Pour le frontal, le fichier "index.html" peut être hébergé sur le serveur web de votre choix. Assurez-vous que l'URL WebSocket pointe vers votre serveur.
Le script client nécessite l'installation de "dnspython" sur les deux extrémités. Que vous envoyiez ou receviez des données, vous devez d'abord démarrer le script sur la machine située en dehors de la zone restreinte. Le script vous fournira un jeton unique que vous devrez passer lors de l'exécution du script sur la machine située dans la zone restreinte.
Machine extérieure
echo test12345 | python main.py -f- -d out -t-
Machine intérieure
python main.py -f- -d in -t TOKEN_THE_FIRST_COMMAND_GAVE_YOU
Machine extérieure
python main.py -f- -d in -t-
Machine intérieure
echo test12345 | python main.py -f- -d out -t TOKEN_THE_FIRST_COMMAND_GAVE_YOU