
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.
汉字 | Anglais
[!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.
[!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.
[!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=trueaccorde 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.
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.
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.
ecapture -h pour afficher la liste des sous-commandes.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 :
pcap/pcapng stocke les données en texte clair capturées au format pcap-NG.keylog/key enregistre les clés de négociation TLS dans un fichier.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.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.
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
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.)
Similaire au module OpenSSL.
capture le contexte texte tls.
Étape 1 :
sudo ecapture gotls --elfpath=/home/cfc4n/go_https_client --hex
Étape 2 :
/home/cfc4n/go_https_client
sudo ecapture gotls -h
tels que les modules bash\mysqld\postgres, vous pouvez utiliser ecapture -h pour afficher la liste des sous-commandes.
eCaptureQ est un client d'interface utilisateur graphique multiplateforme pour eCapture, visualisant les capacités de capture TLS eBPF. Construit avec la pile technologique Rust + Tauri + React, il fournit une interface réactive en temps réel, permettant une analyse facile du trafic chiffré sans avoir besoin de certificats CA. Il simplifie les techniques complexes de capture eBPF, les rendant faciles à utiliser. Prend en charge deux modes :
Projets de transfert d'événements
https://github.com/user-attachments/assets/c8b7a84d-58eb-4fdb-9843-f775c97bdbfb
Pour plus de détails sur le schéma de journal Protobuf utilisé par eCapture/eCaptureQ, voir :
Voir CONTRIBUTING pour les détails sur la soumission de correctifs et le flux de travail de contribution.
Vous pouvez personnaliser les fonctionnalités souhaitées, par exemple en définissant l'adresse de décalage pour uprobe afin de prendre en charge les bibliothèques OpenSSL compilées statiquement. Reportez-vous au guide de compilation pour les instructions de compilation.
Après le démarrage d'eCapture, vous pouvez modifier dynamiquement les configurations via des interfaces HTTP. Reportez-vous à la documentation de l'API HTTP.
eCapture prend en charge plusieurs méthodes de transfert d'événements. Vous pouvez transférer des événements vers des logiciels de capture de paquets tels que Burp Suite. Pour plus de détails, reportez-vous à la documentation de l'API de transfert d'événements.