Retour aux mises à jour
New releaseSep 10, 2026

ecapture v2.6.0

Capture du texte en clair SSL/TLS sans certificat CA à l'aide d'eBPF. Pris en charge sur les noyaux Linux/Android pour amd64/arm64.

Partager
eCapture Logo

汉字 | Anglais

GitHub stars GitHub forks CI Github Version

eCapture(旁观者): capture le contenu texte SSL/TLS sans certificat CA en utilisant eBPF.

[!IMPORTANT]
Prend en charge Linux/Android sur x86_64 (noyau 4.18+) et aarch64 (noyau 5.5+). Les exigences de version du noyau s'appliquent par architecture CPU pour Linux et Android. Nécessite la permission ROOT ou des capacités Linux spécifiques. Ne prend pas en charge les systèmes Windows et macOS.


Introduction

  • Capture de texte clair SSL/TLS, prend en charge les bibliothèques openssl\libressl\boringssl\gnutls\nspr(nss).
  • Prise en charge du texte clair GoTLS pour la bibliothèque Go TLS, qui concerne la communication chiffrée dans les programmes https/tls écrits en langage golang.
  • Audit Bash, capture des commandes bash pour l'audit de sécurité de l'hôte.
  • Audit Zsh, capture des commandes zsh pour l'audit de sécurité de l'hôte.
  • Audit des requêtes SQL MySQL, prend en charge mysqld 5.6\5.7\8.0 et MariaDB.

Pour commencer

Téléchargement

Fichier binaire ELF

[!TIP] prend en charge Linux/Android x86_64/aarch64.

Téléchargez le fichier zip ELF release, décompressez-le et utilisez-le avec la commande sudo ecapture --help.

Image Docker

[!TIP] Linux uniquement.

# pull docker image
docker pull gojue/ecapture:latest
# run
docker run --rm --privileged=true --net=host -v ${HOST_PATH}:${CONTAINER_PATH} gojue/ecapture ARGS

⚠️ Note de sécurité : --privileged=true accorde un accès complet à l'hôte. Pour une utilisation en production, envisagez plutôt des capacités spécifiques. Voir Guide des privilèges minimaux.

voir Docker Hub pour plus d'informations.

Capturer le contenu texte openssl

sudo ecapture tls

eCapture détectera automatiquement la bibliothèque OpenSSL du système et commencera à capturer le texte clair. Lorsque vous effectuez une requête HTTPS (par exemple, curl https://google.com), la requête et la réponse capturées s'afficheront :

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

📄 Pour des exemples complets de sortie, voir docs/example-outputs.md.

Modules

L'outil eCapture comprend 8 modules qui prennent respectivement en charge la capture de texte clair pour les bibliothèques de chiffrement TLS/SSL comme OpenSSL, GnuTLS, NSPR, BoringSSL et GoTLS. De plus, il facilite les audits logiciels pour les applications Bash, MySQL et PostgreSQL.

  • bash capture la commande bash
  • zsh capture la commande zsh
  • gnutls capture le contenu texte gnutls sans certificat CA pour les bibliothèques gnutls.
  • gotls Capture la communication en texte clair des programmes Golang chiffrée avec TLS/HTTPS.
  • mysqld capture les requêtes SQL de mysqld 5.6/5.7/8.0 .
  • nss capture le contenu texte chiffré nss/nspr sans certificat CA pour les bibliothèques nss/nspr.
  • postgres capture les requêtes SQL de postgres 10+.
  • tls utilisé pour capturer le contenu texte tls/ssl sans certificat CA. (Prend en charge openssl 1.0.x/1.1.x/3.0.x ou plus récent). Vous pouvez utiliser ecapture -h pour afficher la liste des sous-commandes.

Module OpenSSL

Par défaut, eCapture recherche le fichier /etc/ld.so.conf pour trouver les répertoires de chargement des fichiers SO, et localise les bibliothèques partagées openssl. Vous pouvez également utiliser l'indicateur --libssl pour définir le chemin de la bibliothèque partagée.

Si le programme cible est compilé statiquement, vous pouvez définir le chemin du programme comme valeur de l'indicateur --libssl directement.

Le module OpenSSL prend en charge trois modes de capture :

  • Le mode pcap/pcapng stocke les données en texte clair capturées au format pcap-NG.
  • Le mode keylog/key enregistre les clés de négociation TLS dans un fichier.
  • Le mode text capture directement les données en texte clair, soit en les sortant vers un fichier spécifié, soit en les imprimant dans la ligne de commande.

Mode Pcap

Prend en charge le http chiffré TLS 1.0/1.1/2.0 sur TCP, et le protocole http3 QUIC sur UDP. Vous pouvez spécifier -m pcap ou -m pcapng et l'utiliser conjointement avec les paramètres --pcapfile et -i. La valeur par défaut de --pcapfile est ecapture_openssl.pcapng.

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

Cette commande enregistre les paquets de données en texte clair capturés sous forme de fichier pcapng, qui peut être visualisé avec Wireshark.

📄 Pour une sortie complète du mode pcapng, voir docs/example-outputs.md.

Mode Keylog

Vous pouvez spécifier -m keylog ou -m key et l'utiliser avec le paramètre --keylogfile, dont la valeur par défaut est ecapture_masterkey.log.

Les informations Master Secret TLS OpenSSL capturées sont enregistrées dans --keylogfile. Vous pouvez également activer la capture de paquets tcpdump, puis utiliser Wireshark pour ouvrir le fichier et définir le chemin Master Secret pour afficher les paquets de données en texte clair.

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

Vous pouvez également utiliser directement le logiciel tshark pour le déchiffrement et l'affichage en temps réel :

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

Mode Texte

sudo ecapture tls -m text produira tous les paquets de données en texte clair. (À partir de v0.7.0, il ne capture plus les informations SSLKEYLOG.)

Module GoTLS

Similaire au module OpenSSL.

commande gotls

capture le contexte texte tls.

Étape 1 :

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

Étape 2 :

/home/cfc4n/go_https_client

plus d'aide

sudo ecapture gotls -h

Autres modules

Catégories