مهم
يدعم إصدارات Linux/Android kernel x86_64 4.18 وما فوق، و aarch64 5.5 وما فوق. بحاجة إلى إذن ROOT. لا يدعم نظام Windows و macOS.
مقدمة
ابدء
وحدة OpenSSL
وحدة GoTLS
وحدات أخرى
ملف ثنائي ELF
صورة عامل الميناء
تحميل
التقاط محتوى النص opensl.
وحدات
فيديوهات
المساهمة
تجميع
التقاط النص العادي SSL/TLS، ودعم مكتبات opensllibresslboringsslgnutlsnspr(nss).
يدعم النص العادي GoTLS مكتبة go tls، والتي تشير إلى الاتصال المشفر في برامج https/tls المكتوبة بلغة golang.
تدقيق bash، التقاط أمر bash لتدقيق أمان المضيف.
تدقيق SQL لاستعلام MySQL، ودعم mysqld 5.65.78.0، وmariadDB.
نصيحة
دعم لينكس/أندرويد x86_64/aarch64.
قم بتنزيل إصدار ملف ELF المضغوط وفك ضغطه واستخدامه عن طريق الأمر sudo ecapture --help
.
نصيحة
لينكس فقط.
# pull docker imagedocker pull gojue/ecapture:latest# rundocker run --rm --privileged=true --net=host -v ${HOST_PATH}:${CONTAINER_PATH} gojue/ecapture ARGS
راجع Docker Hub لمزيد من المعلومات.
سودو ecapture tls 2024-09-15T11:51:31Z INF AppName="eCapture(旁观者)"2024-09-15T11:51:31Z INF HomePage=https://ecapture.cc 2024-09-15T11:51:31Z مستودع المعلومات INF=https://github.com/gojue/ecapture 15-09-2024T11:51:31Z INF Author="CFC4N <[email protected]>"2024-09-15T11:51:31Z INF الوصف="التقاط نص عادي SSL/TLS بدون شهادة CA باستخدام eBPF. مدعوم على Linux / نواة أندرويد لـ amd64/arm64."2024-09-15T11:51:31Z INF الإصدار=linux_arm64:0.8.6-20240915-d87ae48:5.15.0-113-generic 2024-09-15T11:51:31Z INF الاستماع=المضيف المحلي:28256 2024-09-15T11:51:31Z مسجل سجلات تشغيل INF eCapture= 2024-09-15T11:51:31Z INF معالج الملف الذي يستقبل الحدث الملتقط eventsCollector= 2024-09-15T11:51:31Z INF استمع=المضيف المحلي:28256 2024-09-15T11:51:31Z بدء تشغيل خادم INF https...يمكنك تحديث ملف التكوين عبر واجهة HTTP. 2024-09-15T11:51:31Z WRN ========== بدء الوحدة. ========== 2024-09-15T11:51:31Z معلومات نواة INF=5.15.152 معرف المنتج=233698 2024-09-15T11:51:31Z وضع الرمز الثانوي INF BTF: CORE. btfMode=0 2024-09-15T11:51:31Z تم تعيين برنامج Keylogger للمفتاح الرئيسي INF. eBPFProgramType=مسجل مفاتيح النص= 2024-09-15T11:51:31Z تهيئة وحدة INF. isReload=false ModuleName=EBPFProbeOPENSSL 2024-09-15T11:51:31Z وحدة INF.Run() 2024-09-15T11:51:31Z لم يتم العثور على إصدار WRN OpenSSL/BoringSSL من ملف المكتبة المشتركة، الإصدار الافتراضي المستخدم OpenSSL Version=linux_default_3_0 2024-09-15T11:51:31Z وظيفة INF Hook masterKey ElfType=2 Functions=["SSL_get_wbio"، "SSL_in_before"، "SSL_do_handshake"] binrayPath=/usr/lib/aarch64-linux-gnu/libssl.so.3 2024-09-15T11:51:31Z INF تستهدف كل العمليات. 2024-09-15T11:51:31Z INF تستهدف جميع المستخدمين. 2024-09-15T11:51:31Z INF setupManagers eBPFProgramType=نص 2024-09-15T11:51:31Z تمت مطابقة ملف الرمز الثانوي INF BPF. bpfFileName=user/bytecode/openssl_3_0_0_kern_core.o 2024-09-15T11:51:32Z INF perfEventReader أنشأ MapSize(MB)=4 2024-09-15T11:51:32Z INF perfEventReader أنشأ MapSize(MB)=4 2024-09-15T11:51:32Z بدأت وحدة INF بنجاح. isReload=false ModuleName=EBPFProbeOPENSSL 2024-09-15T11:51:53Z ؟؟؟ UUID:233851_233851_curl_5_1_172.16.71.1:51837، الاسم:HTTP2Request، النوع:2، الطول:304 نوع الإطار => الإعدادات نوع الإطار => WINDOW_UPDATE نوع الإطار => الرؤوس حقل الرأس ":method" = "GET" حقل الرأس ":path" = "/"حقل الرأس ":مخطط" = "https"حقل الرأس ":authority" = "google.com"حقل الرأس "user-agent" = "curl/7.81.0" حقل الرأس "قبول" = "*/*" نوع الإطار => الإعدادات 2024-09-15T11:51:53Z ؟؟؟ UUID:233851_233851_curl_5_0_172.16.71.1:51837، الاسم:HTTP2Response، النوع:4، الطول:1160 نوع الإطار => الإعدادات نوع الإطار => WINDOW_UPDATE نوع الإطار => الإعدادات نوع الإطار => الرؤوس حقل الرأس ":الحالة" = "301"حقل الرأس "الموقع" = "https://www.google.com/"حقل الرأس "نوع المحتوى" = "text/html; charset=UTF-8"حقل الرأس " content-security-policy-report-only" = "object-src 'none';base-uri 'self';script-src 'nonce-qvZZ0XreBfeqRnUEV1WoYw' 'ديناميكي صارم' 'نموذج تقرير' 'غير آمن-تقييم' 'غير آمن مضمن' https: http:;report-uri https://csp.withgoogle.com/csp/gws/other-hp "حقل الرأس "التاريخ" = "الأحد، 15 سبتمبر 2024 الساعة 11:51:52 بتوقيت جرينتش"حقل الرأس "انتهاء الصلاحية" = "الثلاثاء، 15 أكتوبر 2024، الساعة 11:51:52 بتوقيت جرينتش"حقل الرأس "التحكم في ذاكرة التخزين المؤقت" = "عام، الحد الأقصى للعمر = 2592000"حقل الرأس "الخادم" = "gws"حقل الرأس "طول المحتوى" = "220" حقل الرأس "x-xss-protection" = "0" حقل الرأس "x-frame-options" = حقل الرأس "SAMEORIGIN" "alt-svc" = "h3=":443"; ma=2592000,h3-29=":443"; ma=2592000"نوع الإطار => PING نوع الإطار => البيانات<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"><TITLE>301 تم نقله</TITLE></HEAD>< BODY><H1>تم نقل 301</H1>تم نقل المستند<A HREF="https://www.google.com/">هنا</A>.</BODY></HTML>
تشتمل أداة eCapture على 8 وحدات تدعم على التوالي التقاط النص العادي لمكتبات تشفير TLS/SSL مثل OpenSSL وGnuTLS وNSPR وBoringSSL وGoTLS. بالإضافة إلى ذلك، فهو يسهل عمليات تدقيق البرامج لتطبيقات Bash وMySQL وPostgreSQL.
أمر باش التقاط باش
يلتقط gnutls محتوى نص gnutls بدون شهادة CA لمكتبات gnutls.
gotls التقاط اتصالات النص العادي من برامج Golang المشفرة باستخدام TLS/HTTPS.
يلتقط mysqld استعلامات SQL من mysqld 5.6/5.7/8.0.
يلتقط nss المحتوى النصي المشفر nss/nspr بدون شهادة CA لمكتبات nss/nspr.
يلتقط Postgres استعلامات SQL من Postgres 10+.
يستخدم TLS لالتقاط محتوى نص TLS/SSL بدون شهادة CA. (يدعم opensl 1.0.x/1.1.x/3.0.x أو الأحدث). يمكنك استخدام ecapture -h
لعرض قائمة الأوامر الفرعية.
eCapture ابحث عن الملف الافتراضي /etc/ld.so.conf
، للبحث في دلائل التحميل لملف SO
، والبحث في موقع مكتبات openssl
shard. أو يمكنك استخدام علامة --libssl
لتعيين مسار مكتبة Shard.
إذا تم ترجمة البرنامج الهدف بشكل ثابت، فيمكنك تعيين مسار البرنامج كقيمة علامة --libssl
مباشرةً.
تدعم وحدة OpenSSL ثلاثة أوضاع التقاط:
يقوم وضع pcap
/ pcapng
بتخزين بيانات النص العادي التي تم التقاطها بتنسيق pcap-NG
.
يقوم وضع keylog
/ key
بحفظ مفاتيح مصافحة TLS في ملف.
يقوم الوضع text
بالتقاط بيانات النص العادي مباشرة، إما عن طريق الإخراج إلى ملف محدد أو الطباعة إلى سطر الأوامر.
دعم TLS المشفر http 1.0/1.1/2.0
عبر TCP، وبروتوكول 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
.
sudo ecapture tls -m pcap -w ecap.pcapng -i ens160 2024-09-15T06:54:12Z INF AppName="eCapture(旁观者)"2024-09-15T06:54:12Z INF HomePage=https://ecapture.cc 2024-09-15T06:54:12Z مستودع المعلومات INF=https://github.com/gojue/ecapture 2024-09-15T06:54:12Z INF Author="CFC4N <[email protected]>"2024-09-15T06:54:12Z INF Description="التقاط نص عادي SSL/TLS بدون شهادة CA باستخدام eBPF. مدعوم على Linux / نواة أندرويد لـ amd64/arm64."2024-09-15T06:54:12Z INF الإصدار=linux_arm64:0.8.6-20240915-d87ae48:5.15.0-113-generic 2024-09-15T06:54:12Z INF الاستماع=المضيف المحلي:28256 2024-09-15T06:54:12Z مسجل سجلات تشغيل INF eCapture= 2024-09-15T06:54:12Z INF معالج الملف الذي يستقبل الحدث الملتقط eventsCollector= 2024-09-15T06:54:12Z WRN ========== بدء الوحدة. ========== 2024-09-15T06:54:12Z معلومات نواة INF=5.15.152 معرف المنتج=230440 2024-09-15T06:54:12Z وضع الرمز الثانوي INF BTF: CORE. btfMode=0 2024-09-15T06:54:12Z INF استمع=المضيف المحلي:28256 2024-09-15T06:54:12Z تهيئة وحدة INF. isReload=false ModuleName=EBPFProbeOPENSSL 2024-09-15T06:54:12Z INF Module.Run() 2024-09-15T06:54:12Z بدء تشغيل خادم INF https...يمكنك تحديث ملف التكوين عبر واجهة HTTP. 2024-09-15T06:54:12Z لم يتم العثور على إصدار WRN OpenSSL/BoringSSL من ملف المكتبة المشتركة، الإصدار الافتراضي المستخدم OpenSSL Version=linux_default_3_0 2024-09-15T06:54:12Z نوع INF HOOK:Openssl elf ElfType=2 IFindex=2 IFname=ens160 PcapFilter= binrayPath=/usr/lib/aarch64-linux-gnu/libssl.so.3 2024-09-15T06:54:12Z INF Hook masterKey function Functions=["SSL_get_wbio"، "SSL_in_before"، "SSL_do_handshake"]2024-09-15T06:54:12Z INF تستهدف كل العمليات. 2024-09-15T06:54:12Z INF تستهدف جميع المستخدمين. 2024-09-15T06:54:12Z INF setupManagers eBPFProgramType=PcapNG 2024-09-15T06:54:12Z تمت مطابقة ملف الرمز الثانوي INF BPF. bpfFileName=user/bytecode/openssl_3_0_0_kern_core.o 2024-09-15T06:54:12Z حزم INF المحفوظة في ملف pcapng. مسار pcapng=/home/ecapture/ecap.pcapng 2024-09-15T06:54:12Z INF perfEventReader أنشأ MapSize(MB)=4 2024-09-15T06:54:12Z INF perfEventReader أنشأ MapSize(MB)=4 2024-09-15T06:54:12Z بدأت وحدة INF بنجاح. isReload=false ModuleName=EBPFProbeOPENSSL 2024-09-15T06:54:14Z حزم INF المحفوظة في ملف pcapng. العد = 4 2024-09-15T06:54:16Z تم العثور على مجموعة تشفير INF غير TLSv1.3 CLientRandom=f08e8d784962d1693c042f9fe266345507ccfaba58b823904a357f30dbfa1e71 CipherId=0 2024-09-15T06:54:16Z تم العثور على مجموعة تشفير INF غير TLSv1.3 CLientRandom=f08e8d784962d1693c042f9fe266345507ccfaba58b823904a357f30dbfa1e71 CipherId=0 2024-09-15T06:54:16Z حزم INF المحفوظة في ملف pcapng. العدد=183 2024-09-15T06:54:16Z INF CLIENT_RANDOM حفظ النجاح CLientRandom=f08e8d784962d1693c042f9fe266345507ccfaba58b823904a357f30dbfa1e71 TlsVersion=TLS1_2_VERSION بايت = 176 2024-09-15T06:54:18Z حزم INF المحفوظة في ملف pcapng. العدد=65 ^C2024-09-15T06:54:18Z إغلاق وحدة INF. 2024-09-15T06:54:18Z حزم INF المحفوظة في ملف pcapng. العد = 3 2024-09-15T06:54:18Z حزم INF المحفوظة في ملف pcapng. العدد=255 2024-09-15T06:54:18Z وحدة INF مغلقة، تم استلام الرسالة من السياق 2024-09-15T06:54:18Z إغلاق وحدة INF iModule 2024-09-15T06:54:18Z INF وداعا.
تم استخدام Wireshark
لفتح ملف ecap.pcapng
لعرض حزم البيانات ذات النص العادي.
يمكنك تحديد -m key
-m keylog
أو -m واستخدامه مع المعلمة --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 الحقول -e http.file_data -f "المنفذ 443" -i eth0
سوف يقوم sudo ecapture tls -m text
بإخراج جميع حزم البيانات ذات النص العادي. (بدءًا من الإصدار 0.7.0، لم يعد يلتقط معلومات SSLKEYLOG.)
على غرار وحدة OpenSSL.
التقاط سياق النص TLS.
الخطوة 1:
sudo ecapture gotls --elfpath=/home/cfc4n/go_https_client --hex
الخطوة 2:
/home/cfc4n/go_https_client
سودو ecapture gotls -h
مثل وحدات bashmysqldpostgres
، يمكنك استخدام ecapture -h
لعرض قائمة الأوامر الفرعية.
فيديو يوتيوب: كيفية استخدام eCapture v0.1.0
eCapture: يدعم التقاط نص عادي لحركة مرور Golang TLS/HTTPS
راجع المساهمة للحصول على تفاصيل حول إرسال التصحيحات وسير عمل المساهمة.
راجع التجميع للحصول على تفاصيل حول تجميع كود مصدر eCapture.