Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
wcfproxy — Un proxy per il traffico WCF basato su net.tcp. | Kitploit
Strumenti/GitHubGitHub/syss-research/wcfproxy
Proxy Web e IntercettazioneTest di Sicurezza delle APISicurezza di RetePenetration TestingAnalisi di BinariAutenticazione
GitHubsyss-research/wcfproxy

wcfproxy

Un proxy per il traffico WCF basato su net.tcp.

Vedi Repository
8166 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Compilazione

È possibile compilare lo strumento una volta e poi utilizzare il binario risultante, oppure eseguirlo "come uno script" (la toolchain Go lo compilerà al volo). Per lo sviluppo, quest'ultima opzione è comoda. Per l'uso produttivo, si consiglia di compilarlo una volta (dalla directory cli) e utilizzare l'eseguibile risultante. Grazie al compilatore Go, è possibile compilare da e per Linux o Windows. È richiesta almeno la versione 1.18 di Go per la compilazione (testato con Go 1.23).

Compilazione da Linux

Per compilare da Linux per Windows o Linux, basta impostare GOOS opportunamente (eseguire dalla directory cli):``` GOOS=windows GOARCH=amd64 go build -o wcfproxy.exe

nc -u -l -p 4444```
GOOS=linux GOARCH=amd64 go build -o wcfproxy

Build da Windows

Per buildare da Windows, esegui i comandi equivalenti, ad esempio da PowerShell:``` $env:GOOS='windows'; $env:GOARCH='amd64'; go build -o wcfproxy.exe

Lo strumento supporta sia la modalità di rilevamento manuale che automatica. In modalità manuale, gli utenti possono specificare i parametri direttamente. La modalità automatica sfrutta modelli di machine learning per identificare potenziali minacce senza intervento dell'utente.

## Caratteristiche

- Monitoraggio in tempo reale
- Analisi dei dati storici
- Creazione di regole personalizzate
- Integrazione con sistemi SIEM

### Installazione

```bash
pip install threat-detector

$env:GOOS='linux'; $env:GOARCH='amd64'; go build -o wcfproxy

# Utilizzo
La configurazione per `wcfproxy` viene fornita tramite un file JSON.
Per impostazione predefinita, viene utilizzato il file di configurazione `config.json`, ma il percorso di un file di configurazione può essere specificato con il parametro `-config`.
Il file di configurazione è progettato per contenere un numero arbitrario di configurazioni nominate, come segue:```json
{
	"my-config": { 
        " ... ": " ... " 
    }
}

Il valore degli oggetti di configurazione nominati dovrebbe corrispondere alla struct Config (vedi Config structure).
Questo file sorgente con i commenti inclusi funge anche da documentazione più accurata per le opzioni di configurazione di wcfproxy.
Di tutta la configurazione fornita, quella da utilizzare viene identificata per nome tramite l'opzione da riga di comando -enable:``` wcfproxy.exe -config config.json -enable my-config

## Struttura della configurazione
La struttura di primo livello di ogni oggetto di configurazione è la seguente:```json
{
	"listen": "[::1]:8000",
	"connect": "[::1]:9000",
	"retarget": "net.tcp://127.0.0.1:8000/WCFLab/WCFDemoService/nettcp",
    "retarget-map": {
        "nettcps": "net.tcp://localhost:8210/WCFLab/WCFDemoService/nettcps",
        "winauth": "net.tcp://localhost:8220/WCFLab/WCFDemoService/nettcp-winauth"
    },
	"log-level": "debug|info|warn|error",
	"log-file": "path/to/log/file",
	"tls-server": {
        " ... ": " ... " 
    },
	"tls-client": {
         " ... ": " ... "
    },
	"ntlm": {
         " ... ": " ... "
    },
	"interceptor": {
         " ... ": " ... "
    },
	"ctrl": {
         " ... ": " ... "
    }
}

Nota che la configurazione TLS (tls-server e/o tls-client) non può essere fornita se è presente una configurazione NTLM.

Opzioni di configurazione

  • listen - l'endpoint TCP su cui wcfproxy deve ascoltare, ad es. 127.0.0.1:8000 o [::1]:8000
  • connect - l'endpoint TCP del server WCF a monte, ad es. 127.0.0.1:9000 o [::1]:9000
  • retarget - specifica del target originale (e fallback per retarget-map); per una spiegazione vedi Riscrittura del target
  • retarget-map - generalizzazione di retarget; permette di eseguire la riscrittura del target per più endpoint (utile solo se si lavora con più servizi WCF sulla stessa porta)
    • se una delle chiavi in retarget-map corrisponde al target corrente, l'URI del target verrà sostituito con il valore dato per la comunicazione a monte
    • in nessuna chiave di retarget-map corrisponde al target corrente, verrà usato retarget
  • log-level - livello di log; valori disponibili: debug, info (default), warn, error
  • log-file - percorso del file di log; se non viene fornito un percorso, il log viene scritto su stdout
  • tls-server - istanza di TlsServerConfig (vedi Configurazione del server TLS); richiesto solo se è supportato l'upgrade TLS
  • tls-client - istanza di TlsClientConfig (vedi Configurazione del client TLS); rilevante solo se è supportato l'upgrade TLS
  • ntlm - istanza di NtlmConfig (vedi Configurazione NTLM); richiesto solo se è supportato l'upgrade NTLM (direttamente o tramite SPNEGO)
  • interceptor - istanza di InterceptorConfig (vedi Configurazione dell'interceptor); richiesto
  • ctrl - istanza di ControlServerConfig (vedi Configurazione del server di controllo) che può fornire un server echo HTTP predefinito (utile insieme all'interceptor HTTP) oltre a una piccola API per controllare il flusso dei messaggi (ancora in sviluppo)

Configurazione del server TLS

La configurazione lato server TLS dà controllo sulle impostazioni del server TLS più tipicamente rilevanti. Ha la seguente struttura:```json { "cert-pem": "path/to/certificate", "cert-key": "path/to/certificate-key", "max-version": "1.0|1.1|1.2|1.3", "min-version": "1.0|1.1|1.2|1.3", "client-roots": "path/to/client-ca1,path/to/client-ca2", "client-auth": "none|request|require-any|verify-if-given|require-and-verify", "keylog": "path/to/keylog-file" }

#### Opzioni di configurazione del server TLS
+ `cert-pem` - percorso del certificato X.509 (in formato PEM)
+ `cert-key` - percorso della chiave corrispondente per il certificato
+ `max-version` - versione TLS massima accettabile; una tra `1.0`, `1.1`, `1.2`, `1.3` (predefinita)
+ `min-version` - versione TLS minima accettabile; una tra `1.0` (predefinita), `1.1`, `1.2`, `1.3`
+ `client-roots` - elenco separato da virgole di percorsi di certificati radice accettabili (PEM) per l'autenticazione client; opzionale
+ `client-auth` - politica di autenticazione client; valori più utili: `none` (predefinito), `require-and-verify`
+ `keylog` - file in cui scrivere i segreti TLS in formato NNS

### Configurazione TLS lato client
La configurazione del lato client TLS fornisce il controllo sulle impostazioni client TLS più comunemente rilevanti.
Ha la seguente struttura:```json
{
	"cert-pem": "path/to/certificate",
	"cert-key": "path/to/certificate-key",
	"max-version": "1.0|1.1|1.2|1.3",
	"min-version": "1.0|1.1|1.2|1.3",
	"roots": "path/to/root-ca1,path/to/root-ca2",
	"server-name": "therealone.local",
	"skip-verify": false
}

Opzioni di configurazione client TLS

  • analoghe alle opzioni di configurazione server TLS
  • roots - percorso verso un elenco di percorsi separati da virgola di CA radice (PEM); opzionale con skip-verify
  • server-name - nome del server (SNI); opzionale
  • skip-verify - booleano; se il client deve saltare la verifica del certificato del server (predefinito: false)

Configurazione NTLM

La configurazione NTLM specifica il dominio e il nome del server insieme alle credenziali utente. Per ogni utente che deve essere in grado di autenticarsi tramite il proxy, devono essere fornite credenziali valide.```json { "domain": "test.local", "server": "server.local", "credentials": [ { " ... ": " ... " } ] }

#### Opzioni di configurazione NTLM
+ `domain` - dominio a cui autenticarsi, ad es. test.local; se lasciato vuoto, verrà utilizzato il nome del server
+ `server` - nome del server a cui autenticarsi; se lasciato vuoto, verrà utilizzato il nome host del sistema corrente
+ `credentials` - array di oggetti `NtlmCredential` (vedi sotto)
Scarica lo strumento