
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