
ecapture v2.6.0
eBPF का उपयोग करके बिना CA प्रमाणपत्र के SSL/TLS प्लेनटेक्स्ट को कैप्चर करना। Linux/Android कर्नेल के लिए amd64/arm64 पर समर्थित।
汉字 | अंग्रेज़ी
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 का उपयोग करके उपकमांड की सूची देख सकते हैं।
वीडियो
- Youtube वीडियो: eCapture v0.1.0 का उपयोग कैसे करें
- eCapture: Golang TLS/HTTPS ट्रैफ़िक के प्लेनटेक्स्ट को कैप्चर करने का समर्थन करता है