अपडेट पर वापस जाएँ
New releaseJul 14, 2026

ecapture v2.5.2

eBPF का उपयोग करके बिना CA प्रमाणपत्र के SSL/TLS प्लेनटेक्स्ट को कैप्चर करना। Linux/Android कर्नेल के लिए amd64/arm64 पर समर्थित।

साझा करें
eCapture लोगो

汉字 | अंग्रेज़ी

GitHub stars GitHub forks CI Github Version

eCapture(旁观者): eBPF का उपयोग करके CA प्रमाणपत्र के बिना SSL/TLS टेक्स्ट सामग्री को कैप्चर करें।

[!महत्वपूर्ण]
x86_64 (कर्नेल 4.18+) और aarch64 (कर्नेल 5.5+) पर Linux/Android को सपोर्ट करता है। कर्नेल संस्करण आवश्यकताएँ Linux और Android दोनों के लिए CPU आर्किटेक्चर के अनुसार लागू होती हैं। ROOT अनुमति या विशिष्ट Linux क्षमताओं की आवश्यकता है। Windows और macOS प्रणाली को सपोर्ट नहीं करता।


परिचय

  • SSL/TLS प्लेनटेक्स्ट कैप्चर, openssl\libressl\boringssl\gnutls\nspr(nss) लाइब्रेरी का समर्थन करता है।
  • GoTLS प्लेनटेक्स्ट go tls लाइब्रेरी का समर्थन करता है, जो golang भाषा में लिखे गए https/tls प्रोग्रामों में एन्क्रिप्टेड संचार को संदर्भित करता है।
  • Bash ऑडिट, होस्ट सुरक्षा ऑडिट के लिए bash कमांड कैप्चर करें।
  • Zsh ऑडिट, होस्ट सुरक्षा ऑडिट के लिए zsh कमांड कैप्चर करें।
  • MySQL क्वेरी SQL ऑडिट, mysqld 5.6\5.7\8.0, और MariaDB का समर्थन करता है।

शुरुआत

डाउनलोड

ELF बाइनरी फ़ाइल

[!टिप] Linux/Android x86_64/aarch64 का समर्थन करता है।

ELF ज़िप फ़ाइल रिलीज़ डाउनलोड करें, अनज़िप करें और कमांड sudo ecapture --help द्वारा उपयोग करें।

Docker इमेज

[!टिप] केवल 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 देखें।

openssl टेक्स्ट सामग्री कैप्चर करें।

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 मॉड्यूल हैं जो क्रमशः OpenSSL, GnuTLS, NSPR, BoringSSL, और GoTLS जैसी TLS/SSL एन्क्रिप्शन लाइब्रेरी के लिए प्लेनटेक्स्ट कैप्चर का समर्थन करते हैं। इसके अतिरिक्त, यह Bash, MySQL, और PostgreSQL अनुप्रयोगों के लिए सॉफ्टवेयर ऑडिट की सुविधा प्रदान करता है।

  • bash bash कमांड कैप्चर करें
  • zsh zsh कमांड कैप्चर करें
  • gnutls gnutls लाइब्रेरी के लिए CA प्रमाणपत्र के बिना gnutls टेक्स्ट सामग्री कैप्चर करें।
  • gotls TLS/HTTPS के साथ एन्क्रिप्टेड Golang प्रोग्रामों से प्लेनटेक्स्ट संचार कैप्चर करना।
  • mysqld mysqld 5.6/5.7/8.0 से SQL क्वेरी कैप्चर करें।
  • nss nss/nspr लाइब्रेरी के लिए CA प्रमाणपत्र के बिना nss/nspr एन्क्रिप्टेड टेक्स्ट सामग्री कैप्चर करें।
  • postgres postgres 10+ से SQL क्वेरी कैप्चर करें।
  • tls CA प्रमाणपत्र के बिना tls/ssl टेक्स्ट सामग्री कैप्चर करने के लिए उपयोग करें। (OpenSSL 1.0.x/1.1.x/3.0.x या नए का समर्थन करता है)। आप ecapture -h का उपयोग करके उपकमांड की सूची देख सकते हैं।

OpenSSL मॉड्यूल

eCapture डिफ़ॉल्ट रूप से /etc/ld.so.conf फ़ाइल खोजता है, SO फ़ाइल के लोड निर्देशिकाओं को खोजने के लिए, और openssl शेयर्ड लाइब्रेरी का स्थान खोजता है। या आप --libssl फ़्लैग का उपयोग करके शेयर्ड लाइब्रेरी पथ सेट कर सकते हैं।

यदि लक्ष्य प्रोग्राम स्थैतिक रूप से संकलित किया गया है, तो आप --libssl फ़्लैग के मान के रूप में सीधे प्रोग्राम पथ सेट कर सकते हैं।

OpenSSL मॉड्यूल तीन कैप्चर मोड का समर्थन करता है:

  • pcap/pcapng मोड कैप्चर किए गए प्लेनटेक्स्ट डेटा को pcap-NG प्रारूप में संग्रहीत करता है।
  • keylog/key मोड TLS हैंडशेक कुंजियों को एक फ़ाइल में सहेजता है।
  • text मोड सीधे प्लेनटेक्स्ट डेटा कैप्चर करता है, या तो निर्दिष्ट फ़ाइल में आउटपुट करता है या कमांड लाइन पर प्रिंट करता है।

Pcap मोड

TCP पर एन्क्रिप्टेड http 1.0/1.1/2.0, और UDP पर http3 QUIC प्रोटोकॉल को सपोर्ट करता है। आप -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 देखें।

Keylog मोड

आप -m keylog या -m key निर्दिष्ट कर सकते हैं और इसे --keylogfile पैरामीटर के साथ उपयोग कर सकते हैं, जो डिफ़ॉल्ट रूप से ecapture_masterkey.log है।

कैप्चर की गई OpenSSL TLS Master Secret जानकारी --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 जानकारी कैप्चर नहीं करता है।)

GoTLS मॉड्यूल

OpenSSL मॉड्यूल के समान।

gotls कमांड

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 GUI अनुप्रयोग

eCaptureQ eCapture के लिए एक क्रॉस-प्लेटफ़ॉर्म ग्राफ़िकल यूज़र इंटरफ़ेस क्लाइंट है, जो eBPF TLS कैप्चर क्षमताओं को विज़ुअलाइज़ करता है। Rust + Tauri + React तकनीक स्टैक का उपयोग करके निर्मित, यह एक रीयल-टाइम, प्रतिक्रियाशील इंटरफ़ेस प्रदान करता है, जो CA प्रमाणपत्रों की आवश्यकता के बिना एन्क्रिप्टेड ट्रैफ़िक का आसानी से विश्लेषण करने में सक्षम बनाता है। यह जटिल eBPF कैप्चर तकनीकों को सरल बनाता है, जिससे वे उपयोग में आसान हो जाती हैं। दो मोड का समर्थन करता है:

  • एकीकृत मोड: एकीकृत Linux/Android निष्पादन
  • रिमोट मोड: Windows/macOS/Linux क्लाइंट एक रिमोट eCapture सेवा से जुड़ता है

इवेंट फ़ॉरवर्डिंग

इवेंट फ़ॉरवर्डिंग प्रोजेक्ट

वीडियो प्रदर्शन

https://github.com/user-attachments/assets/c8b7a84d-58eb-4fdb-9843-f775c97bdbfb

🔗 GitHub रिपॉजिटरी

Protobuf प्रोटोकॉल

eCapture/eCaptureQ द्वारा उपयोग किए जाने वाले Protobuf लॉग स्कीमा के विवरण के लिए, देखें:

समय के साथ स्टारगेज़र

समय के साथ स्टारगेज़र

सुरक्षा और संचालन

योगदान

पैच सबमिट करने और योगदान वर्कफ़्लो के विवरण के लिए योगदान देखें।

संकलन

कस्टम संकलन

आप अपनी इच्छित सुविधाओं को अनुकूलित कर सकते हैं, जैसे स्टैटिक रूप से संकलित OpenSSL लाइब्रेरी का समर्थन करने के लिए uprobe के लिए ऑफ़सेट पता सेट करना। संकलन निर्देशों के लिए संकलन गाइड देखें।

कॉन्फ़िगरेशन रिमोट अपडेट

eCapture चलने के बाद, आप HTTP इंटरफ़ेस के माध्यम से कॉन्फ़िगरेशन को गतिशील रूप से संशोधित कर सकते हैं। HTTP API दस्तावेज़ीकरण देखें।

इवेंट फ़ॉरवर्डिंग

eCapture कई इवेंट फ़ॉरवर्डिंग विधियों का समर्थन करता है। आप Burp Suite जैसे पैकेट कैप्चर सॉफ़्टवेयर को इवेंट फ़ॉरवर्ड कर सकते हैं। विवरण के लिए, इवेंट फ़ॉरवर्डिंग API दस्तावेज़ीकरण देखें।

श्रेणियाँ