
Capturez le texte en clair SSL/TLS avec eBPF—sans proxy MITM ni installation d'une AC personnalisée. Prend en charge Linux et Android sur x86_64 et arm64.
eCapture (旁观者)
Capturez le texte en clair SSL/TLS avec eBPF—sans proxy MITM ni installation d'un CA personnalisé.
English · 汉字
[!IMPORTANT] Prend en charge Linux sur x86_64 (noyau 4.18+), aarch64 (noyau 5.5+) et LoongArch64
loong64(noyau 6.6+). Android prend en charge x86_64 et aarch64 avec les minimums de noyau existants. Nécessite les privilèges root ou des capacités Linux spécifiques. Ne prend pas en charge Windows ni macOS.
[!TIP] Prend en charge Linux sur x86_64, aarch64 et LoongArch64 ; Android prend en charge x86_64 et aarch64.
Téléchargez le paquet binaire ELF depuis la page des versions, extrayez-le et exécutez :
sudo ecapture --help
[!TIP] Linux uniquement.
# 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
⚠️ Note de sécurité :
--privileged=trueaccorde un accès complet à l'hôte. Pour une utilisation en production, préférez plutôt des capacités spécifiques. Consultez le Guide des privilèges minimaux.
Consultez Docker Hub pour plus d'informations.
sudo ecapture tls
eCapture détecte automatiquement la bibliothèque OpenSSL du système et commence à capturer le trafic en clair. Lorsque vous effectuez une requête HTTPS, par exemple curl https://google.com, la requête et la réponse capturées sont affichées :
...
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"
...
📄 For complete output examples, see docs/example-outputs.md.
L'outil eCapture comprend 8 modules capables de capturer des données en clair depuis des bibliothèques TLS/SSL telles que OpenSSL, GnuTLS, NSS/NSPR, BoringSSL et GoTLS. Il prend également en charge l'audit des commandes et des requêtes des applications Bash, MySQL et PostgreSQL.
Vous pouvez utiliser ecapture -h pour afficher la liste complète des sous-commandes.
eCapture parcourt les chemins de bibliothèques par défaut définis dans /etc/ld.so.conf pour localiser les bibliothèques partagées et détecter l'emplacement de la bibliothèque OpenSSL. Vous pouvez également définir explicitement le chemin de la bibliothèque avec l'option --libssl.
Si le programme cible est lié statiquement, vous pouvez définir directement le chemin du programme comme valeur de l'option --libssl.
Le module OpenSSL prend en charge trois modes de capture :
pcap/pcapng stocke les données en clair capturées au format pcap-NG.keylog/key enregistre les clés de handshake TLS dans un fichier.text capture directement les données en clair, en les écrivant dans un fichier ou en les affichant sur la console.Pour OpenSSL, GoTLS et GnuTLS, --eventaddr est la destination principale uniforme des événements. Elle accepte stdout, un chemin simple ou une URI file://, tcp://host:port, et ws:///wss:// (trames binaires ordonnées). Le mode sélectionne la représentation texte, NSS Key Log ou pcapng ; l'adresse ne sélectionne que le transport. --keylogfile et --pcapfile restent des alias compatibles de fichier principal dans leurs modes respectifs. Définir --eventaddr conjointement avec l'alias correspondant constitue une erreur. En mode pcapng, --keylogfile est un artefact keylog optionnel distinct.
--logaddr ne transporte que les journaux d'exécution d'eCapture. Les journaux d'exécution de la console utilisent stderr, tandis que la sortie standard capturée ne contient que les octets d'événements. eCaptureQ est additif : son activation ne remplace ni --eventaddr ni --logaddr.