
Windows Named Pipe Hooking-Toolkit
Frida-basiertes Projekt zum Abfangen von Windows-Named-Pipe-Kommunikation
Dieses Projekt zielt darauf ab, IPC-Kommunikation abzufangen, indem spezifische WinAPI-Funktionen gehookt und über einen Websocket an einen HTTP-Proxy weitergeleitet werden.
Das Lesen aus und Schreiben in eine Named Pipe kann in verschiedenen Funktionen stattfinden. In diesem Abschnitt stellt WriteFile einen Schreibvorgang in eine Named Pipe dar und ReadFile einen Lesevorgang aus einer Named Pipe.
Beim Abfangen folgen die zu schreibenden Daten diesem Schema.
WriteFile --> frida hook --> python process --> websocket client --> HTTP Proxy --> websocket server --> python process --> frida hook --> WriteFile
Auf der anderen Seite folgen die vom Prozess zu lesenden Daten diesem Schema.
ReadFile --> frida hook --> python process --> websocket server --> HTTP Proxy --> websocket client --> python process --> frida hook --> ReadFile
Der HTTP-Proxy empfängt eine Nachricht "to the server", wenn die Aktion ein Schreiben in eine Named Pipe ist, und eine Nachricht "to the client", wenn die Aktion das Lesen aus einer Named Pipe ist.
Fügen Sie einen Proxy auf Port 8090 hinzu, der auf allen Schnittstellen lauscht.
Erstellen Sie das Frida-Agent-Skript mit make build; der Agent befindet sich in agent/dist/.
backend/*.py und backend/requirements.txt (Backend) sowie agent/dist/agent.js (Agent) auf den Windows-Host.py -m pip install -r requirements.txtpy .\main.py <pid_of_target> .\agent.js --ws-port 9090 --ws-host <ip_of_windows> --http-proxy-port 8090 --http-proxy-host <ip_of_burp> --handle-regexes '.*' --log-level INFODie an den HTTP-Proxy gesendeten Daten folgen einem spezifischen Format, das in docs/format.md definiert ist; Werkzeuge zur Bearbeitung dieses benutzerdefinierten Formats werden in tools/ bereitgestellt.
Das Ändern von Metadaten kann dazu führen, dass das Projekt die Nachricht nicht mehr erkennt und nicht korrekt an die richtige Named Pipe weiterleitet.
Das Frida-Skript wartet auf unbestimmte Zeit auf eine Antwort; daher kann der Prozess auf unbestimmte Zeit hängen bleiben, wenn Sie sich entscheiden, die Nachricht zu verwerfen.
Das Einfügen neuer Nachrichten wird derzeit vom Projekt nicht unterstützt.
Frida stellt TypeScript-Bindings zur Entwicklung des Agents bereit. Sobald die devDependencies installiert wurden, sollte VSCode die Typen wie von Zauberhand erkennen.
Ein Makefile-Ziel make dev-env wird bereitgestellt, um eine Entwicklungsumgebung einfach einzurichten.