Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
dirty_sock — लिनक्स में snapd (CVE-2019-7304) के माध्यम से विशेषाधिकार वृद्धि शोषण | Kitploit
उपकरण/GitHubGitHub/initstring/dirty_sock
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षा
GitHubinitstring/dirty_sock

dirty_sock

लिनक्स में snapd (CVE-2019-7304) के माध्यम से विशेषाधिकार वृद्धि शोषण

रिपॉजिटरी देखें
68114557 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

dirty_sock: Linux विशेषाधिकार वृद्धि (snapd के माध्यम से)

जनवरी 2019 में, Ubuntu Linux के वर्तमान संस्करण snapd API में एक बग के कारण स्थानीय विशेषाधिकार वृद्धि के लिए संवेदनशील पाए गए। इस रिपॉजिटरी में मूल शोषण POC शामिल है, जिसे अनुसंधान और शिक्षा के लिए उपलब्ध कराया जा रहा है। कमजोरी और शोषण के विस्तृत वॉकथ्रू के लिए, कृपया यहाँ ब्लॉग पोस्टिंग देखें।

Ubuntu डिफ़ॉल्ट रूप से snapd के साथ आता है, लेकिन यदि किसी भी वितरण में यह पैकेज स्थापित है तो वह शोषणीय हो सकता है। आप आसानी से जांच सकते हैं कि आपका सिस्टम संवेदनशील है या नहीं। नीचे दिए गए कमांड को चलाएँ। यदि आपका snapd 2.37.1 या नया है, तो आप सुरक्षित हैं।

root@kitploit:~
$ snap version
...
snapd   2.37.1
...

ध्यान दें कि कुछ सिस्टम इस कमांड को चलाने पर snapd का वितरण पैकेज संस्करण लौटाते हैं, जो ऊपर दिए गए उदाहरण में दिखाए गए अपस्ट्रीम संस्करण के विपरीत है। यदि आपके snapd संस्करण में Ubuntu संस्करण संख्या जैसा कुछ जोड़ा गया है (उदाहरण: 2.34.2ubuntu0.1 या 2.35.5+18.10.1), तो कृपया यह निर्धारित करने के लिए इस लिंक से परामर्श करें कि क्या आप एक पैच किए गए संस्करण चला रहे हैं।

उपयोग

संस्करण एक (आउटबाउंड इंटरनेट और चल रही SSH सेवा की आवश्यकता है)

यह शोषण स्थानीय snapd सेवा के एक प्रतिबंधित API फ़ंक्शन (POST /v2/create-user) का उपयोग करने के लिए एक्सेस कंट्रोल जाँचों को बायपास करता है। यह प्रदान किए गए ईमेल पते के लिए Ubuntu SSO से एक उपयोगकर्ता नाम और सार्वजनिक SSH कुंजी पूछता है, और फिर इन मानों के आधार पर एक स्थानीय उपयोगकर्ता बनाता है।

इस संस्करण के सफल शोषण के लिए एक आउटबाउंड इंटरनेट कनेक्शन और localhost के माध्यम से सुलभ SSH सेवा की आवश्यकता है।

शोषण करने के लिए, पहले Ubuntu SSO पर एक खाता बनाएँ। इसकी पुष्टि करने के बाद, अपनी प्रोफ़ाइल संपादित करें और एक SSH सार्वजनिक कुंजी अपलोड करें। फिर, शोषण को इस प्रकार चलाएँ (आपके द्वारा अपलोड की गई सार्वजनिक कुंजी के अनुरूप SSH निजी कुंजी के साथ):

root@kitploit:~
python3 ./dirty_sockv1.py -u "[email protected]" -k "id_rsa"

[+] Slipped dirty sock on random socket file: /tmp/ktgolhtvdk;uid=0;
[+] Binding to socket file...
[+] Connecting to snapd API...
[+] Sending payload...
[+] Success! Enjoy your new account with sudo rights!

[Script will automatically ssh to localhost with the SSH key here]

संस्करण दो (इंटरनेट या SSH की आवश्यकता नहीं है, लेकिन snapd अपग्रेड को ट्रिगर कर सकता है)

यह शोषण स्थानीय snapd सेवा के एक प्रतिबंधित API फ़ंक्शन (POST /v2/snaps) का उपयोग करने के लिए एक्सेस कंट्रोल जाँचों को बायपास करता है। यह मनमाना स्नैप्स की स्थापना की अनुमति देता है। "devmode" में स्नैप्स सैंडबॉक्स को बायपास करते हैं और इसमें एक "install hook" शामिल हो सकता है जो स्थापना के समय रूट के संदर्भ में चलाया जाता है।

dirty_sockv2 कमजोरी का लाभ उठाकर एक खाली "devmode" स्नैप स्थापित करता है जिसमें एक हुक शामिल है जो स्थानीय सिस्टम में एक नया उपयोगकर्ता जोड़ता है। इस उपयोगकर्ता के पास sudo कमांड निष्पादित करने की अनुमतियाँ होंगी।

संस्करण एक के विपरीत, इसके लिए SSH सेवा के चलने की आवश्यकता नहीं है। यह बिना किसी इंटरनेट कनेक्शन के Ubuntu के नए संस्करणों पर भी काम करेगा, जिससे यह परिवर्तनों के प्रति लचीला और प्रतिबंधित वातावरण में प्रभावी होगा।

स्पष्टता के लिए नोट: शोषण का यह संस्करण एक दुर्भावनापूर्ण स्नैप के अंदर नहीं छिपता। इसके बजाय, यह उपयोगकर्ता निर्माण पेलोड के लिए वितरण तंत्र के रूप में एक दुर्भावनापूर्ण स्नैप का उपयोग करता है। यह संस्करण 1 के समान uid=0 बग के कारण संभव है।

यह शोषण उन गैर-Ubuntu सिस्टम पर भी प्रभावी होना चाहिए जिन्होंने snapd स्थापित किया है लेकिन असंगत Linux शेल सिंटैक्स के कारण "create-user" API का समर्थन नहीं करते हैं।

कुछ पुराने Ubuntu सिस्टम (जैसे 16.04) में साइडलोडिंग के लिए आवश्यक snapd घटक स्थापित नहीं हो सकते हैं। यदि ऐसा है, तो शोषण का यह संस्करण उन निर्भरताओं को स्थापित करने के लिए ट्रिगर कर सकता है। उस स्थापना के दौरान, snapd स्वयं को एक गैर-संवेदनशील संस्करण में अपग्रेड कर सकता है। परीक्षण से पता चलता है कि इस परिदृश्य में शोषण अभी भी सफल होता है। अधिक जानकारी के लिए समस्या निवारण अनुभाग देखें।

शोषण करने के लिए, बस एक संवेदनशील सिस्टम पर बिना किसी तर्क के स्क्रिप्ट चलाएँ।

root@kitploit:~
python3 ./dirty_sockv2.py

[+] Slipped dirty sock on random socket file: /tmp/gytwczalgx;uid=0;
[+] Binding to socket file...
[+] Connecting to snapd API...
[+] Deleting trojan snap (and sleeping 5 seconds)...
[+] Installing the trojan snap (and sleeping 8 seconds)...
[+] Deleting trojan snap (and sleeping 5 seconds)...

********************
Success! You can now `su` to the following account and use sudo:
   username: dirty_sock
   password: dirty_sock
********************

समस्या निवारण

यदि संस्करण दो का उपयोग कर रहे हैं, और शोषण पूरा हो जाता है लेकिन आप अपना नया खाता नहीं देखते हैं, तो यह कुछ पृष्ठभूमि स्नैप अपडेट के कारण हो सकता है। आप snap changes और फिर snap change # निष्पादित करके इन्हें देख सकते हैं, जिसमें dirty_sock स्नैप की स्थापना दिखाने वाली पंक्ति का उल्लेख है। अंततः, ये पूरे हो जाने चाहिए और आपका खाता उपयोग योग्य होना चाहिए।

संस्करण 1 सबसे आसान और तेज़ प्रतीत होता है, यदि आपका वातावरण इसका समर्थन करता है (SSH सेवा चल रही है और localhost से पहुँच योग्य है)।

गैर-संवेदनशील सिस्टम निम्नलिखित जैसा आउटपुट देंगे:

root@kitploit:~
[!] System may not be vulnerable, here is the API reply:


HTTP/1.1 401 Unauthorized
Content-Type: application/json
Date: Mon, 18 Feb 2019 07:07:12 GMT
Content-Length: 119

{"type":"error","status-code":401,"status":"Unauthorized",
"result":{"message":"access denied","kind":"login-required"}}

कृपया किसी भी अजीब चीज़ के लिए issues खोलें।

प्रकटीकरण जानकारी

यह समस्या Ubuntu के बग ट्रैकर के माध्यम से सीधे snapd टीम को रिपोर्ट की गई थी। आप पूरा सूत्र यहाँ पढ़ सकते हैं।

मैं Canonical की इस मुद्दे पर प्रतिक्रिया से बहुत प्रभावित हुआ। टीम के साथ काम करना शानदार था, और कुल मिलाकर अनुभव मुझे स्वयं Ubuntu उपयोगकर्ता होने के बारे में बहुत अच्छा महसूस कराता है।

सार्वजनिक सलाह लिंक:

  • https://wiki.ubuntu.com/SecurityTeam/KnowledgeBase/SnapSocketParsing
  • https://usn.ubuntu.com/3887-1/

नोट: मैं केवल इस GitHub रिपॉजिटरी, initblog.com पर अपने ब्लॉग, और shenaniganslabs.io पर अपनी टीम के ब्लॉग पर जानकारी पोस्ट कर रहा हूँ। आधिकारिक स्रोत के रूप में प्रस्तुत करने वाली कोई भी साइट दुर्भाग्य से मेरे नियंत्रण से बाहर है।

टूल डाउनलोड करें