
التقاط النص الصريح لـ SSL/TLS بدون شهادة CA باستخدام eBPF. مدعوم على أنوية Linux/Android لـ amd64/arm64.
汉字 | الإنجليزية
[!IMPORTANT]
يدعم Linux/Android على x86_64 (kernel 4.18+) و aarch64 (kernel 5.5+). تنطبق متطلبات إصدار النواة حسب بنية CPU لكل من Linux و Android. يتطلب صلاحية ROOT أو قدرات Linux محددة. لا يدعم نظامي Windows و macOS.
[!TIP] يدعم Linux/Android x86_64/aarch64.
قم بتنزيل ملف ELF المضغوط release ، قم بفك الضغط واستخدم الأمر sudo ecapture --help.
[!TIP] Linux فقط.
# pull docker image
docker pull gojue/ecapture:latest
# run
docker run --rm --privileged=true --net=host -v ${HOST_PATH}:${CONTAINER_PATH} gojue/ecapture ARGS
⚠️ ملاحظة أمان: يمنح
--privileged=trueوصولاً كاملاً للمضيف. للاستخدام في الإنتاج، ضع في اعتبارك استخدام قدرات محددة بدلاً من ذلك. راجع دليل الحد الأدنى من الصلاحيات.
انظر Docker Hub لمزيد من المعلومات.
sudo ecapture tls
سيكتشف eCapture تلقائيًا مكتبة OpenSSL الخاصة بالنظام ويبدأ في التقاط النص العادي. عند إجراء طلب HTTPS (مثل curl https://google.com)، سيتم عرض الطلب والاستجابة الملتقطة:
...
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"
...
📄 للحصول على أمثلة كاملة للمخرجات، انظر docs/example-outputs.md.
تتكون أداة eCapture من 8 وحدات تدعم على التوالي التقاط النص العادي لمكتبات تشفير TLS/SSL مثل OpenSSL وGnuTLS وNSPR وBoringSSL وGoTLS. بالإضافة إلى ذلك، تسهل تدقيق البرامج لتطبيقات Bash وMySQL وPostgreSQL.
ecapture -h لعرض قائمة الأوامر الفرعية.يبحث eCapture افتراضيًا في ملف /etc/ld.so.conf للبحث عن أدلة تحميل ملفات SO، ويبحث عن مواقع مكتبات openssl المشتركة. أو يمكنك استخدام العلامة --libssl لتعيين مسار المكتبة المشتركة.
إذا كان البرنامج الهدف مترجمًا بشكل ثابت، يمكنك تعيين مسار البرنامج كقيمة للعلامة --libssl مباشرة.
تدعم وحدة OpenSSL ثلاثة أوضاع للالتقاط:
pcap/pcapng يخزن بيانات النص العادي الملتقطة بتنسيق pcap-NG.keylog/key يحفظ مفاتيح مصافحة TLS في ملف.text يلتقط بيانات النص العادي مباشرة، إما بإخراجها إلى ملف محدد أو طباعتها على سطر الأوامر.يدعم http المشفر عبر TLS عبر TCP 1.0/1.1/2.0، وبروتوكول http3 QUIC عبر UDP.
يمكنك تحديد -m pcap أو -m pcapng واستخدامه مع المعاملات --pcapfile و -i. القيمة الافتراضية لـ --pcapfile هي ecapture_openssl.pcapng.
sudo ecapture tls -m pcap -i eth0 --pcapfile=ecapture.pcapng tcp port 443
يحفظ هذا الأمر حزم البيانات النصية العادية الملتقطة كملف pcapng، يمكن عرضه باستخدام Wireshark.
📄 للحصول على مخرجات وضع pcapng كاملة، انظر docs/example-outputs.md.
يمكنك تحديد -m keylog أو -m key واستخدامه مع المعامل --keylogfile، والذي يكون افتراضيًا ecapture_masterkey.log.
يتم حفظ معلومات Master Secret الخاصة بـ OpenSSL TLS الملتقطة في --keylogfile. يمكنك أيضًا تمكين التقاط الحزم باستخدام tcpdump ثم استخدام Wireshark لفتح الملف وتعيين مسار Master Secret لعرض حزم البيانات النصية العادية.
sudo ecapture tls -m keylog -keylogfile=openssl_keylog.log
يمكنك أيضًا استخدام برنامج tshark مباشرة لفك التشفير والعرض في الوقت الفعلي:
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 سيقوم بإخراج جميع حزم البيانات النصية العادية. (من الإصدار v0.7.0، لم يعد يلتقط معلومات SSLKEYLOG.)
مشابهة لوحدة OpenSSL.
التقاط محتوى نص tls.
الخطوة 1:
sudo ecapture gotls --elfpath=/home/cfc4n/go_https_client --hex
الخطوة 2:
/home/cfc4n/go_https_client
sudo ecapture gotls -h
مثل وحدات bash\mysqld\postgres، يمكنك استخدام ecapture -h لعرض قائمة الأوامر الفرعية.
eCaptureQ هو عميل واجهة مستخدم رسومية عبر المنصات لـ eCapture، يقوم بتصور قدرات التقاط TLS الخاصة بـ eBPF. مبني باستخدام تقنية Rust + Tauri + React، يوفر واجهة تفاعلية فورية تتيح تحليلًا سهلاً لحركة المرور المشفرة دون الحاجة إلى شهادات CA. يبسط تقنيات التقاط eBPF المعقدة، مما يجعلها سهلة الاستخدام. يدعم وضعين:
لتفاصيل مخطط سجل Protobuf المستخدم بواسطة eCapture/eCaptureQ، انظر:
انظر المساهمة للحصول على تفاصيل حول تقديم التصحيحات وسير عمل المساهمة.
يمكنك تخصيص الميزات التي تريدها، مثل تعيين عنوان الإزاحة لـ uprobe لدعم مكتبات OpenSSL المترجمة بشكل ثابت. راجع دليل التجميع للحصول على تعليمات التجميع.
بعد تشغيل eCapture، يمكنك تعديل التكوينات ديناميكيًا عبر واجهات HTTP. راجع توثيق API HTTP.
يدعم eCapture طرقًا متعددة لإعادة توجيه الأحداث. يمكنك إعادة توجيه الأحداث إلى برامج التقاط الحزم مثل Burp Suite. للحصول على التفاصيل، راجع توثيق API إعادة توجيه الأحداث.