Zurück zu den Updates
UpdatedOct 4, 2026

ecapture — Updated!

Capturing SSL/TLS plaintext without a CA certificate using eBPF. Supported on Linux/Android kernels for amd64/arm64.

Teilen
eCapture Logo

汉字 | English

GitHub stars GitHub forks CI GitHub Version

eCapture (Beobachter): Klartext-SSL/TLS-Verkehr ohne CA-Zertifikat mit eBPF erfassen.

[!IMPORTANT] Unterstützt Linux und Android auf x86_64 (Kernel 4.18+) und aarch64 (Kernel 5.5+). Die Kernel-Anforderung gilt pro CPU-Architektur sowohl für Linux als auch für Android. Erfordert Root-Rechte oder spezifische Linux-Capabilities. Unterstützt weder Windows noch macOS.


Einführung

  • Erfasst Klartext-TLS/SSL-Verkehr aus den Bibliotheken OpenSSL, LibreSSL, BoringSSL, GnuTLS und NSS/NSPR.
  • Unterstützt die Klartexterfassung für Go-TLS-Programme, einschließlich HTTPS/TLS-Verkehr in Go-Anwendungen.
  • Auditiert die Bash- und Zsh-Befehlshistorie zur Host-Sicherheitsüberwachung.
  • Auditiert MySQL-Abfragen und unterstützt MySQL 5.6/5.7/8.0 sowie MariaDB.

Erste Schritte

Download

ELF-Binärdatei

[!TIP] Unterstützt Linux/Android auf x86_64 und aarch64.

Laden Sie das ELF-Binärpaket von der Releases-Seite herunter, entpacken Sie es und führen Sie aus:

sudo ecapture --help

Docker-Image

[!TIP] Nur 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

⚠️ Sicherheitshinweis: --privileged=true gewährt vollständigen Host-Zugriff. Für den Produktionseinsatz sollten Sie stattdessen spezifische Capabilities bevorzugen. Siehe den Leitfaden für minimale Privilegien.

Weitere Informationen finden Sie auf Docker Hub.

OpenSSL-Klartextdaten erfassen

sudo ecapture tls

eCapture erkennt automatisch die OpenSSL-Bibliothek des Systems und beginnt mit der Erfassung des Klartextverkehrs. Wenn Sie eine HTTPS-Anfrage stellen, z. B. curl https://google.com, werden die erfasste Anfrage und Antwort angezeigt:

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

📄 Vollständige Ausgabebeispiele finden Sie unter docs/example-outputs.md.

Module

Das eCapture-Tool umfasst 8 Module, die Klartextdaten aus TLS/SSL-Bibliotheken wie OpenSSL, GnuTLS, NSS/NSPR, BoringSSL und GoTLS erfassen können. Es unterstützt außerdem die Auditierung von Befehlen und Abfragen aus Bash-, MySQL- und PostgreSQL-Anwendungen.

  • bash: erfasst Bash-Befehle
  • zsh: erfasst Zsh-Befehle
  • gnutls: erfasst Klartext aus GnuTLS-Bibliotheken, ohne dass ein CA-Zertifikat benötigt wird
  • gotls: erfasst Klartextkommunikation aus Go-Programmen, die TLS/HTTPS verwenden
  • mysqld: erfasst SQL-Abfragen aus MySQL 5.6/5.7/8.0 und MariaDB
  • nss: erfasst Klartext aus NSS/NSPR-Bibliotheken, ohne dass ein CA-Zertifikat benötigt wird
  • postgres: erfasst SQL-Abfragen aus PostgreSQL 10+
  • tls: erfasst Klartext-TLS/SSL-Verkehr ohne CA-Zertifikat (unterstützt OpenSSL 1.0.x/1.1.x/3.0.x und neuer)

Mit ecapture -h können Sie die vollständige Liste der Unterbefehle anzeigen.

OpenSSL-Modul

eCapture durchsucht die Standard-Bibliothekspfade aus /etc/ld.so.conf, um Shared Libraries zu finden und den Speicherort der OpenSSL-Bibliothek zu ermitteln. Sie können den Bibliothekspfad auch explizit mit dem Flag --libssl festlegen.

Wenn das Zielprogramm statisch gelinkt ist, können Sie den Programmpfad direkt als Wert des Flags --libssl angeben.

Das OpenSSL-Modul unterstützt drei Erfassungsmodi:

  • Der Modus pcap/pcapng speichert erfasste Klartextdaten im Format pcap-NG.
  • Der Modus keylog/key speichert TLS-Handshake-Schlüssel in einer Datei.
  • Der Modus text erfasst Klartextdaten direkt, indem er sie entweder in eine Datei schreibt oder auf der Konsole ausgibt.

Pcap-Modus

Unterstützt TLS-verschlüsseltes HTTP 1.0/1.1/2.0 über TCP und HTTP/3 (QUIC) über UDP.

Sie können -m pcap oder -m pcapng zusammen mit --pcapfile und -i angeben. Der Standardwert von --pcapfile ist ecapture_openssl.pcapng.

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

Dieser Befehl speichert erfasste Klartextpakete als pcapng-Datei, die mit Wireshark geöffnet werden kann.

📄 Vollständige Ausgabe des pcapng-Modus finden Sie unter docs/example-outputs.md.

Keylog-Modus

Sie können -m keylog oder -m key zusammen mit der Option --keylogfile angeben. Die Standard-Ausgabedatei ist ecapture_masterkey.log.

Das erfasste OpenSSL-TLS-Master-Secret wird in --keylogfile gespeichert. Sie können auch die tcpdump-Erfassung aktivieren und die Datei dann in Wireshark öffnen, den Pfad zum Master-Secret festlegen und die Klartextpakete anzeigen.

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

Sie können auch tshark zur Echtzeit-Entschlüsselung und -Anzeige verwenden:

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

Text-Modus

sudo ecapture tls -m text

Dies gibt alle Klartext-Datenpakete aus.

GoTLS-Modul

Ähnlich wie das OpenSSL-Modul.

Befehl gotls

TLS-Klartextdaten erfassen.

Schritt 1:

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

Schritt 2:

/home/cfc4n/go_https_client

Weitere Hilfe

sudo ecapture gotls -h

Weitere Module

Module wie bash, mysqld und postgres können ebenfalls verwendet werden. Die vollständige Liste können Sie mit ecapture -h anzeigen.

Videos

eCaptureQ-GUI-Anwendung

Kategorien