
Cattura il testo in chiaro di SSL/TLS con eBPF—senza proxy MITM né installazione di una CA personalizzata. Supporta Linux e Android su x86_64 e arm64.
eCapture (旁观者)
Cattura il testo in chiaro di SSL/TLS con eBPF—senza proxy MITM né installazione di CA personalizzate.
English · 汉字
[!IMPORTANT] Supporta Linux su x86_64 (kernel 4.18+), aarch64 (kernel 5.5+) e LoongArch64
loong64(kernel 6.6+). Android supporta x86_64 e aarch64 con i requisiti minimi di kernel esistenti. Richiede privilegi di root o specifiche capacità Linux. Non supporta Windows o macOS.
[!TIP] Supporta Linux su x86_64, aarch64 e LoongArch64; Android supporta x86_64 e aarch64.
Scarica il pacchetto binario ELF dalla pagina delle release, estrailo ed esegui:
sudo ecapture --help
[!TIP] Solo Linux.
# Pull the Docker image
docker pull gojue/ecapture:latest
# Run it
docker run --rm --privileged=true --net=host -v ${HOST_PATH}:${CONTAINER_PATH} gojue/ecapture ARGS
⚠️ Nota sulla sicurezza:
--privileged=trueconcede l'accesso completo all'host. Per l'uso in produzione, preferire capacità specifiche. Consultare la Guida ai privilegi minimi.
Per ulteriori informazioni, consultare Docker Hub.
sudo ecapture tls
eCapture rileva automaticamente la libreria OpenSSL del sistema e avvia la cattura del traffico in chiaro. Quando effettui una richiesta HTTPS, ad esempio curl https://google.com, vengono visualizzati la richiesta e la risposta catturate:
...
INF module started successfully. moduleName=EBPFProbeOPENSSL
??? UUID:233851_233851_curl_5_1_172.16.71.1:51837, Name:HTTP2Request, Type:2, Length:304
header field ":method" = "GET"
header field ":path" = "/"
header field ":authority" = "google.com"
...
📄 Per esempi completi di output, consulta docs/example-outputs.md.
Lo strumento eCapture include 8 moduli in grado di catturare dati in chiaro da librerie TLS/SSL come OpenSSL, GnuTLS, NSS/NSPR, BoringSSL e GoTLS. Supporta inoltre l'audit dei comandi e delle query delle applicazioni Bash, MySQL e PostgreSQL.
Puoi usare ecapture -h per visualizzare l'elenco completo dei sottocomandi.
eCapture cerca nei percorsi predefiniti delle librerie indicati in /etc/ld.so.conf per individuare le librerie condivise e rilevare la posizione della libreria OpenSSL. Puoi anche impostare esplicitamente il percorso della libreria con il flag --libssl.
Se il programma di destinazione è collegato staticamente, puoi impostare direttamente il percorso del programma come valore del flag --libssl.
Il modulo OpenSSL supporta tre modalità di cattura:
pcap/pcapng memorizza i dati in chiaro catturati nel formato pcap-NG.keylog/key salva le chiavi dell'handshake TLS in un file.text cattura direttamente i dati in chiaro, scrivendoli in un file o stampandoli sulla console.Per OpenSSL, GoTLS e GnuTLS, --eventaddr è la destinazione primaria uniforme degli eventi. Accetta stdout, un percorso semplice o un URI file://, tcp://host:port e ws:///wss:// (frame binari ordinati). La modalità seleziona la rappresentazione text, NSS Key Log o pcapng; l'indirizzo seleziona solo il trasporto. --keylogfile e --pcapfile restano alias compatibili del file primario nelle rispettive modalità. Impostare --eventaddr insieme all'alias corrispondente è un errore. In modalità pcapng, --keylogfile è un artefatto keylog opzionale separato.
--logaddr trasporta solo i log di runtime di eCapture. I log di runtime della console usano stderr, mentre lo stdout catturato contiene solo byte di eventi. eCaptureQ è additivo: abilitarlo non sostituisce --eventaddr o --logaddr.
Supporta HTTP 1.0/1.1/2.0 crittografato con TLS su TCP e HTTP/3 (QUIC) su UDP.
Puoi specificare -m pcap o -m pcapng insieme a --pcapfile e -i. Il valore predefinito compatibile attuale di --pcapfile è save.pcapng.