Torna agli aggiornamenti
UpdatedOct 4, 2026

ecapture — Updated!

Cattura del testo in chiaro SSL/TLS senza un certificato CA utilizzando eBPF. Supportato su kernel Linux/Android per amd64/arm64.

Condividi
eCapture Logo

汉字 | English

GitHub stars GitHub forks CI GitHub Version

eCapture (旁观者): Cattura il traffico SSL/TLS in chiaro senza un certificato CA utilizzando eBPF.

[!IMPORTANT] Supporta Linux e Android su x86_64 (kernel 4.18+) e aarch64 (kernel 5.5+). Il requisito del kernel si applica per architettura CPU sia su Linux che su Android. Richiede privilegi di root o specifiche capacità Linux. Non supporta Windows o macOS.


Introduzione

  • Cattura il traffico TLS/SSL in chiaro dalle librerie OpenSSL, LibreSSL, BoringSSL, GnuTLS e NSS/NSPR.
  • Supporta la cattura in chiaro per i programmi Go TLS, incluso il traffico HTTPS/TLS nelle applicazioni Go.
  • Verifica la cronologia dei comandi bash e zsh per il monitoraggio della sicurezza dell'host.
  • Verifica le query MySQL e supporta MySQL 5.6/5.7/8.0 e MariaDB.

Per iniziare

Download

File binario ELF

[!TIP] Supporta Linux/Android su x86_64 e aarch64.

Scarica il pacchetto binario ELF dalla pagina delle release, estrailo ed esegui:

sudo ecapture --help

Immagine Docker

[!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 di sicurezza: --privileged=true concede l'accesso completo all'host. Per l'uso in produzione, preferisci capacità specifiche. Consulta la Guida ai privilegi minimi.

Consulta Docker Hub per maggiori informazioni.

Catturare i dati in chiaro di OpenSSL

sudo ecapture tls

eCapture rileva automaticamente la libreria OpenSSL del sistema e inizia a catturare il traffico in chiaro. Quando effettui una richiesta HTTPS, come curl https://google.com, la richiesta e la risposta catturate vengono visualizzate:

...
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.

Moduli

Lo strumento eCapture include 8 moduli che possono catturare dati in chiaro da librerie TLS/SSL come OpenSSL, GnuTLS, NSS/NSPR, BoringSSL e GoTLS. Supporta inoltre la verifica di comandi e query da applicazioni Bash, MySQL e PostgreSQL.

  • bash: cattura i comandi bash
  • zsh: cattura i comandi zsh
  • gnutls: cattura il testo in chiaro dalle librerie GnuTLS senza necessità di un certificato CA
  • gotls: cattura la comunicazione in chiaro dai programmi Go che utilizzano TLS/HTTPS
  • mysqld: cattura le query SQL da MySQL 5.6/5.7/8.0 e MariaDB
  • nss: cattura il testo in chiaro dalle librerie NSS/NSPR senza necessità di un certificato CA
  • postgres: cattura le query SQL da PostgreSQL 10+
  • tls: cattura il traffico TLS/SSL in chiaro senza un certificato CA (supporta OpenSSL 1.0.x/1.1.x/3.0.x e versioni successive)

Puoi usare ecapture -h per visualizzare l'elenco completo dei sottocomandi.

Modulo OpenSSL

eCapture cerca nei percorsi predefiniti delle librerie da /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:

  • La modalità pcap/pcapng memorizza i dati in chiaro catturati nel formato pcap-NG.
  • La modalità keylog/key salva le chiavi di handshake TLS in un file.
  • La modalità text cattura i dati in chiaro direttamente, scrivendoli su un file o stampandoli sulla console.

Modalità Pcap

Supporta HTTP 1.0/1.1/2.0 cifrato 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 di --pcapfile è ecapture_openssl.pcapng.

sudo ecapture tls -m pcap -i eth0 --pcapfile=ecapture.pcapng tcp port 443

Questo comando salva i pacchetti in chiaro catturati come file pcapng, che può essere aperto con Wireshark.

📄 Per l'output completo della modalità pcapng, consulta docs/example-outputs.md.

Modalità Keylog

Puoi specificare -m keylog o -m key insieme all'opzione --keylogfile. Il file di output predefinito è ecapture_masterkey.log.

Il master secret TLS di OpenSSL catturato viene salvato in --keylogfile. Puoi anche abilitare la cattura con tcpdump e poi aprire il file in Wireshark, impostando il percorso del master secret per visualizzare i pacchetti in chiaro.

sudo ecapture tls -m keylog -keylogfile=openssl_keylog.log

Puoi anche usare tshark per la decifratura e la visualizzazione in tempo reale:

tshark -o tls.keylog_file:ecapture_masterkey.log -Y http -T fields -e http.file_data -f "port 443" -i eth0

Modalità Text

sudo ecapture tls -m text

Questo restituisce tutti i pacchetti di dati in chiaro.

Modulo GoTLS

Simile al modulo OpenSSL.

Comando gotls

Cattura i dati TLS in chiaro.

Passo 1:

sudo ecapture gotls --elfpath=/home/cfc4n/go_https_client --hex

Passo 2:

/home/cfc4n/go_https_client

Ulteriore assistenza

sudo ecapture gotls -h

Altri moduli

Anche moduli come bash, mysqld e postgres possono essere utilizzati. Puoi visualizzare l'elenco completo con ecapture -h.

Video

Applicazione GUI eCaptureQ

Categorie