
Toolkit per l'hooking delle named pipe di Windows
Progetto basato su Frida per intercettare le comunicazioni tramite named pipe di Windows
Questo progetto mira a intercettare le comunicazioni IPC agganciando specifiche funzioni WinAPI e inoltrandole a un proxy HTTP tramite un websocket.
La lettura e la scrittura su una named pipe possono avvenire in diverse funzioni. In questa sezione, WriteFile rappresenta una scrittura su una named pipe e ReadFile rappresenta una lettura da una named pipe.
Quando intercettati, i dati da scrivere seguono questo schema.
WriteFile --> frida hook --> python process --> websocket client --> HTTP Proxy --> websocket server --> python process --> frida hook --> WriteFile
Dall'altro lato, i dati che il processo deve leggere seguono questo schema.
ReadFile --> frida hook --> python process --> websocket server --> HTTP Proxy --> websocket client --> python process --> frida hook --> ReadFile
Il proxy HTTP riceverà un messaggio "to the server" quando l'azione è una scrittura su una named pipe, e un messaggio "to the client" quando l'azione è la lettura da una named pipe.
Aggiungi un proxy sulla porta 8090, in ascolto su tutte le interfacce
Compila lo script agent di Frida usando make build; l'agent si troverà in agent/dist/
backend/*.py e backend/requirements.txt (backend) e agent/dist/agent.js (agent) sull'host Windowspy -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 INFOI dati inviati al proxy HTTP seguono un formato specifico definito in docs/format.md; strumenti per manipolare questo formato personalizzato sono forniti in tools/.
La modifica dei metadati può rendere il progetto incapace di riconoscere e instradare correttamente il messaggio verso la named pipe corretta.
Lo script Frida attende indefinitamente una risposta, quindi il processo può bloccarsi indefinitamente se si decide di scartare il messaggio.
L'iniezione di nuovi messaggi non è attualmente supportata dal progetto.
Frida fornisce binding TypeScript per sviluppare l'agent. Una volta installate le devDependencies, VSCode dovrebbe riconoscere i tipi automaticamente.
Viene fornito un target Makefile make dev-env per configurare facilmente un ambiente di sviluppo.