Wichtig
Unterstützt die Linux-/Android-Kernelversionen x86_64 4.18 und höher, aarch64 5.5 und höher. Benötigt ROOT-Berechtigung. Unterstützt kein Windows- und macOS-System.
Einführung
Erste Schritte
OpenSSL-Modul
GoTLS-Modul
Andere Module
ELF-Binärdatei
Docker-Image
Herunterladen
Erfassen Sie OpenSSL-Textinhalte.
Module
Videos
Mitwirken
Zusammenstellung
SSL/TLS-Klartexterfassung, Unterstützung von OpenSllibresslboringsslgnutlsnspr(nss)-Bibliotheken.
GoTLS-Klartextunterstützung go tls-Bibliothek, die sich auf verschlüsselte Kommunikation in https/tls-Programmen bezieht, die in der Golang-Sprache geschrieben sind.
Bash Audit, erfassen Sie den Bash-Befehl für Host Security Audit.
MySQL-Abfrage-SQL-Audit, unterstützt MySQL 5.65.78.0 und MariadDB.
Tipp
unterstützt Linux/Android x86_64/aarch64.
Laden Sie die ELF-ZIP-Dateiversion herunter, entpacken Sie sie und verwenden Sie sie mit dem Befehl sudo ecapture --help
.
Tipp
Nur Linux.
# pull docker imagedocker pull gojue/ecapture:latest# rundocker run --rm --privileged=true --net=host -v ${HOST_PATH}:${CONTAINER_PATH} gojue/ecapture ARGS
Weitere Informationen finden Sie unter Docker Hub.
sudo ecapture tls 2024-09-15T11:51:31Z INF AppName="eCapture(旁观者)"2024-09-15T11:51:31Z INF HomePage=https://ecapture.cc 2024-09-15T11:51:31Z INF Repository=https://github.com/gojue/ecapture 2024-09-15T11:51:31Z INF Author="CFC4N <[email protected]>"2024-09-15T11:51:31Z INF Description="Erfassung von SSL/TLS-Klartext ohne CA-Zertifikat mit eBPF. Unterstützt unter Linux /Android-Kernel für amd64/arm64 2024-09-15T11:51:31Z INF Listen=localhost:28256 2024-09-15T11:51:31Z INF eCapture führt Protokolle aus logger= 2024-09-15T11:51:31Z INF der Dateihandler, der das erfasste Ereignis eventCollector= empfängt 2024-09-15T11:51:31Z INF listen=localhost:28256 2024-09-15T11:51:31Z INF-https-Server startet...Sie können die Konfigurationsdatei über die HTTP-Schnittstelle aktualisieren. 2024-09-15T11:51:31Z WRN ========== Modul startet. ========== 2024-09-15T11:51:31Z INF-Kernel-Info=5.15.152 Pid=233698 2024-09-15T11:51:31Z INF BTF-Bytecode-Modus: CORE. btfMode=0 2024-09-15T11:51:31Z INF-Master-Key-Keylogger wurde eingestellt. eBPFProgramType=Text-Keylogger= 2024-09-15T11:51:31Z Initialisierung des INF-Moduls. isReload=false moduleName=EBPFProbeOPENSSL 2024-09-15T11:51:31Z INF Module.Run() 2024-09-15T11:51:31Z WRN OpenSSL/BoringSSL-Version nicht in der gemeinsam genutzten Bibliotheksdatei gefunden, verwendete Standardversion OpenSSL Version=linux_default_3_0 2024-09-15T11:51:31Z INF-Hook-MasterKey-Funktion ElfType=2 Functions=["SSL_get_wbio","SSL_in_before","SSL_do_handshake"] binrayPath=/usr/lib/aarch64-linux-gnu/libssl.so.3 2024-09-15T11:51:31Z INF-Ziel für alle Prozesse. 2024-09-15T11:51:31Z INF richtet sich an alle Benutzer. 2024-09-15T11:51:31Z INF setupManagers eBPFProgramType=Text 2024-09-15T11:51:31Z INF BPF-Bytecode-Datei stimmt überein. bpfFileName=user/bytecode/openssl_3_0_0_kern_core.o 2024-09-15T11:51:32Z INF perfEventReader hat mapSize(MB)=4 erstellt 2024-09-15T11:51:32Z INF perfEventReader hat mapSize(MB)=4 erstellt 2024-09-15T11:51:32Z INF-Modul erfolgreich gestartet. isReload=false moduleName=EBPFProbeOPENSSL 2024-09-15T11:51:53Z ??? UUID:233851_233851_curl_5_1_172.16.71.1:51837, Name:HTTP2Request, Typ:2, Länge:304 Rahmentyp => EINSTELLUNGEN Rahmentyp => WINDOW_UPDATE Rahmentyp => HEADERS Header-Feld „:method“ = „GET“header-Feld „:path“ = „/“header-Feld „:scheme“ = „https“header-Feld „:authority“ = „google.com“header-Feld „user-agent“ = „curl/7.81.0“header field „accept“ = „*/*“Frame Type => SETTINGS 2024-09-15T11:51:53Z ??? UUID:233851_233851_curl_5_0_172.16.71.1:51837, Name:HTTP2Response, Typ:4, Länge:1160 Rahmentyp => EINSTELLUNGEN Rahmentyp => WINDOW_UPDATE Rahmentyp => EINSTELLUNGEN Rahmentyp => HEADERS Header-Feld „:status“ = „301“Header-Feld „location“ = „https://www.google.com/“header-Feld „content-type“ = „text/html; charset=UTF-8“Header-Feld „ content-security-policy-report-only" = "object-src 'none';base-uri 'self';script-src 'nonce-qvZZ0XreBfeqRnUEV1WoYw' 'strict-dynamic' 'report-sample' 'unsafe-eval' 'unsafe-inline' https: http:;report-uri https://csp.withgoogle.com/csp/gws/other-hp"header field "date " = "So, 15. September 2024 11:51:52 GMT"header field "expires" = "Di, 15. Oktober 2024 11:51:52 GMT"header field "cache-control" = "public, max-age=2592000"header field "server" = "gws"header field "content-length" = "220"header field "x-xss -protection“ = „0“Header-Feld „x-frame-options“ = „SAMEORIGIN“Header-Feld „alt-svc“ = "h3=":443"; ma=2592000,h3-29=":443"; ma=2592000"Frame-Typ => PING Frame Type => DATA<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"><TITLE>301 Verschoben</TITLE></HEAD>< BODY><H1>301 Verschoben</H1>Das Dokument wurde<A HREF="https://www.google.com/">hierher</A> verschoben.</BODY></HTML>
Das eCapture-Tool umfasst 8 Module, die jeweils die Klartexterfassung für TLS/SSL-Verschlüsselungsbibliotheken wie OpenSSL, GnuTLS, NSPR, BoringSSL und GoTLS unterstützen. Darüber hinaus erleichtert es Software-Audits für Bash-, MySQL- und PostgreSQL-Anwendungen.
Bash-Capture-Bash-Befehl
Gnutls erfassen Gnutls-Textinhalte ohne CA-Zertifikat für Gnutls-Bibliotheken.
gotls Erfassen der Klartextkommunikation von Golang-Programmen, die mit TLS/HTTPS verschlüsselt sind.
MySQL erfasst SQL-Abfragen von MySQL 5.6/5.7/8.0.
NSS erfasst NSS/NSPR-verschlüsselte Textinhalte ohne CA-Zertifikat für NSS/NSPR-Bibliotheken.
Postgres erfasst SQL-Abfragen von Postgres 10+.
TLS wird zum Erfassen von TLS/SSL-Textinhalten ohne CA-Zertifikat verwendet. (Unterstützt OpenSSL 1.0.x/1.1.x/3.0.x oder neuer). Sie können ecapture -h
verwenden, um die Liste der Unterbefehle anzuzeigen.
eCapture durchsucht standardmäßig die Datei /etc/ld.so.conf
, um Ladeverzeichnisse der SO
Datei zu durchsuchen und den Speicherort openssl
Shard-Bibliotheken zu durchsuchen. Oder Sie können das Flag --libssl
verwenden, um den Pfad der Shard-Bibliothek festzulegen.
Wenn das Zielprogramm statisch kompiliert wird, können Sie den Programmpfad direkt als Flag --libssl
Wert festlegen.
Das OpenSSL-Modul unterstützt drei Erfassungsmodi:
pcap
/ pcapng
Modus werden erfasste Klartextdaten im pcap-NG
-Format gespeichert.
keylog
/ key
speichert die TLS-Handshake-Schlüssel in einer Datei.
text
erfasst Klartextdaten direkt und gibt sie entweder in eine angegebene Datei aus oder druckt sie in die Befehlszeile.
Unterstützt TLS-verschlüsseltes http 1.0/1.1/2.0
über TCP und http3 QUIC
Protokoll über UDP. Sie können -m pcap
oder -m pcapng
angeben und es in Verbindung mit den Parametern --pcapfile
und -i
verwenden. Der Standardwert für --pcapfile
ist ecapture_openssl.pcapng
.
sudo ecapture tls -m pcap -i eth0 --pcapfile=ecapture.pcapng TCP-Port 443
Dieser Befehl speichert erfasste Klartext-Datenpakete als PCAPNG-Datei, die mit Wireshark
angezeigt werden kann.
sudo ecapture tls -m pcap -w ecap.pcapng -i ens160 2024-09-15T06:54:12Z INF AppName="eCapture(旁观者)"2024-09-15T06:54:12Z INF HomePage=https://ecapture.cc 2024-09-15T06:54:12Z INF Repository=https://github.com/gojue/ecapture 2024-09-15T06:54:12Z INF Author="CFC4N <[email protected]>"2024-09-15T06:54:12Z INF Description="Erfassung von SSL/TLS-Klartext ohne CA-Zertifikat mit eBPF. Unterstützt unter Linux /Android-Kernel für amd64/arm64 2024-09-15T06:54:12Z INF Listen=localhost:28256 2024-09-15T06:54:12Z INF eCapture führt Protokolle aus logger= 2024-09-15T06:54:12Z INF der Dateihandler, der das erfasste Ereignis eventCollector= empfängt 2024-09-15T06:54:12Z WRN ========== Modul startet. ========== 2024-09-15T06:54:12Z INF-Kernel-Info=5.15.152 Pid=230440 2024-09-15T06:54:12Z INF BTF-Bytecode-Modus: CORE. btfMode=0 2024-09-15T06:54:12Z INF listen=localhost:28256 2024-09-15T06:54:12Z Initialisierung des INF-Moduls. isReload=false moduleName=EBPFProbeOPENSSL 2024-09-15T06:54:12Z INF Module.Run() 2024-09-15T06:54:12Z INF-https-Server startet...Sie können die Konfigurationsdatei über die HTTP-Schnittstelle aktualisieren. 2024-09-15T06:54:12Z WRN OpenSSL/BoringSSL-Version nicht in der gemeinsam genutzten Bibliotheksdatei gefunden, verwendete Standardversion OpenSSL Version=linux_default_3_0 2024-09-15T06:54:12Z INF HOOK Typ:Openssl elf ElfType=2 IFindex=2 IFname=ens160 PcapFilter= binrayPath=/usr/lib/aarch64-linux-gnu/libssl.so.3 2024-09-15T06:54:12Z INF-Hook-MasterKey-Funktion Functions=["SSL_get_wbio","SSL_in_before","SSL_do_handshake"]2024-09-15T06:54:12Z INF zielt auf alle Prozesse ab. 2024-09-15T06:54:12Z INF richtet sich an alle Benutzer. 2024-09-15T06:54:12Z INF setupManagers eBPFProgramType=PcapNG 2024-09-15T06:54:12Z INF BPF-Bytecode-Datei stimmt überein. bpfFileName=user/bytecode/openssl_3_0_0_kern_core.o 2024-09-15T06:54:12Z INF-Pakete werden in der PCAPNG-Datei gespeichert. pcapng path=/home/ecapture/ecap.pcapng 2024-09-15T06:54:12Z INF perfEventReader hat mapSize(MB)=4 erstellt 2024-09-15T06:54:12Z INF perfEventReader hat mapSize(MB)=4 erstellt 2024-09-15T06:54:12Z INF-Modul erfolgreich gestartet. isReload=false moduleName=EBPFProbeOPENSSL 2024-09-15T06:54:14Z INF-Pakete werden in der PCAPNG-Datei gespeichert. Anzahl=4 2024-09-15T06:54:16Z INF-Nicht-TLSv1.3-Verschlüsselungssuite gefunden 2024-09-15T06:54:16Z INF-Nicht-TLSv1.3-Verschlüsselungssuite gefunden 2024-09-15T06:54:16Z INF-Pakete werden in der PCAPNG-Datei gespeichert. Anzahl = 183 2024-09-15T06:54:16Z INF CLIENT_RANDOM Speichererfolg CLientRandom=f08e8d784962d1693c042f9fe266345507ccfaba58b823904a357f30dbfa1e71 TlsVersion=TLS1_2_VERSION Bytes=176 2024-09-15T06:54:18Z INF-Pakete werden in der PCAPNG-Datei gespeichert. Anzahl=65 ^C2024-09-15T06:54:18Z INF-Modul geschlossen. 2024-09-15T06:54:18Z INF-Pakete werden in der PCAPNG-Datei gespeichert. Anzahl = 3 2024-09-15T06:54:18Z INF-Pakete werden in der PCAPNG-Datei gespeichert. Anzahl = 255 2024-09-15T06:54:18Z INF-Modul geschlossen, Nachricht vom Kontext erhalten 2024-09-15T06:54:18Z INF iModule-Modul geschlossen 2024-09-15T06:54:18Z INF Tschüss.
Wireshark
wurde zum Öffnen der Datei ecap.pcapng
verwendet, um die Klartext-Datenpakete anzuzeigen.
Sie können -m keylog
oder -m key
angeben und es in Verbindung mit dem Parameter --keylogfile
verwenden, der standardmäßig ecapture_masterkey.log
ist.
Die erfassten OpenSSL TLS Master Secret
-Informationen werden in --keylogfile
gespeichert. Sie können auch tcpdump
Paketerfassung aktivieren und dann Wireshark
verwenden, um die Datei zu öffnen und den Master Secret
-Pfad festzulegen, um Klartext-Datenpakete anzuzeigen.
sudo ecapture tls -m keylog -keylogfile=openssl_keylog.log
Sie können die tshark
-Software auch direkt zur Echtzeit-Entschlüsselung und -Anzeige verwenden:
tshark -o tls.keylog_file:ecapture_masterkey.log -Y http -T Felder -e http.file_data -f "Port 443" -i eth0
sudo ecapture tls -m text
gibt alle Klartext-Datenpakete aus. (Ab v0.7.0 werden keine SSLKEYLOG-Informationen mehr erfasst.)
Ähnlich dem OpenSSL-Modul.
TLS-Textkontext erfassen.
Schritt 1:
sudo ecapture gotls --elfpath=/home/cfc4n/go_https_client --hex
Schritt 2:
/home/cfc4n/go_https_client
sudo ecapture gotls -h
B. bashmysqldpostgres
-Module, können Sie ecapture -h
verwenden, um die Liste der Unterbefehle anzuzeigen.
Youtube-Video: So verwenden Sie eCapture v0.1.0
eCapture: unterstützt die Erfassung von Klartext des Golang TLS/HTTPS-Verkehrs
Weitere Informationen zum Einreichen von Patches und zum Beitragsworkflow finden Sie unter BEITRAG.
Weitere Informationen zum Kompilieren des eCapture-Quellcodes finden Sie unter COMPILATION.