
DNS-basiertes Daten-Exfiltration-Testwerkzeug mit bidirektionalem Transfer, Web-Oberfläche und Client-Skript zur Erkennung von blinden RCE/XXE-Schwachstellen in eingeschränkten Umgebungen.
Das request.bin für DNS-Anfragen
DNSBin ist ein einfaches Tool zum Testen von Datenexfiltration über DNS und zur Unterstützung der Prüfung von Schwachstellen wie RCE oder XXE, wenn die Umgebung erhebliche Einschränkungen aufweist. Das Projekt besteht aus zwei Teilen: Der erste ist der Webserver und seine Komponenten. Er bietet eine grundlegende Web-Benutzeroberfläche, für die meisten Fälle benötigen Sie nicht mehr als dies. Der Client-Teil bietet ein Python-Skript, das die Übertragung von Daten in beide Richtungen über DNS mithilfe des Webdienstes ermöglicht.
Die aktuelle DNS-Einrichtung, die ich für den Demo-Server habe, ist die folgende. Beachten Sie, dass ich dies durch Versuch und Irrtum gemacht habe, daher kann die Einrichtung überkompliziert sein oder Probleme aufweisen. Wenn Sie sachkundiger sind, können Sie gerne ein Issue eröffnen.
Es wird dringend empfohlen, den DNS-Empfänger und den WebSocket-Endpunkt mit dem Node.JS-Modul "forever" zu starten.
forever start index.js
Für das Frontend kann die Datei "index.html" auf dem Webserver Ihrer Wahl gehostet werden. Stellen Sie sicher, dass die WebSocket-URL auf Ihren Server zeigt.
Das Client-Skript erfordert, dass "dnspython" auf beiden Enden installiert ist. Unabhängig davon, ob Sie Daten senden oder empfangen, müssen Sie das Skript zuerst auf dem Rechner starten, der sich außerhalb der eingeschränkten Zone befindet. Das Skript stellt Ihnen ein eindeutiges Token zur Verfügung, das Sie übergeben müssen, wenn Sie das Skript auf dem Rechner innerhalb der eingeschränkten Zone ausführen.
Rechner außerhalb
echo test12345 | python main.py -f- -d out -t-
Rechner innerhalb
python main.py -f- -d in -t TOKEN_THE_FIRST_COMMAND_GAVE_YOU
Rechner außerhalb
python main.py -f- -d in -t-
Rechner innerhalb
echo test12345 | python main.py -f- -d out -t TOKEN_THE_FIRST_COMMAND_GAVE_YOU