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

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

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

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

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

Категории

Все категории
Loading categories
From-Foothold-to-Domain-Admin-Weaponizing-CVE-2025-54918-in-Real-World-DevOps — Симулированная эксплуатация и устранение уязвимости CVE-2025-54918 (недостаток Windows NTLM). Включает скрипты обнаружения, исправление с помощью Ansible и усиление CI/CD. Демонстрирует повышение привилегий от низкоуровневого доступа до SYSTEM в гибридных облачных средах. | Kitploit
Инструменты/GitHubGitHub/mrk336/from-foothold-to-domain-admin-weaponizing-cve-2025-54918-in-real-world-devops
Повышение привилегийАнализ уязвимостейЭксплуатацияАудит конфигурацииТестирование на ПроникновениеБезопасность облачных средDevSecOpsОбучение и ОбразованиеРеагирование на Инциденты

Популярное

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

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

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

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

Смотреть все инструменты →
Лаборатории и Практика
GitHubmrk336/from-foothold-to-domain-admin-weaponizing-cve-2025-54918-in-real-world-devops

From-Foothold-to-Domain-Admin-Weaponizing-CVE-2025-54918-in-Real-World-DevOps

Симулированная эксплуатация и устранение уязвимости CVE-2025-54918 (недостаток Windows NTLM). Включает скрипты обнаружения, исправление с помощью Ansible и усиление CI/CD. Демонстрирует повышение привилегий от низкоуровневого доступа до SYSTEM в гибридных облачных средах.

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

От первоначального доступа до Domain Admin: применение CVE-2025-54918 в реальном DevOps

Симулированная эксплуатация и митигирование CVE-2025-54918 (уязвимость Windows NTLM). Включает скрипты обнаружения, Ansible-патчинг и усиление CI/CD. Демонстрирует повышение привилегий от низкоуровневого доступа до SYSTEM в гибридных облачных средах.

Автор: Mark Mallia

Введение: от клика до контроля — цепочка CVE-2025-55226 и CVE-2025-54918

В современных гибридных облачных средах грань между действиями пользователя и компрометацией системы тоньше, чем когда-либо. В этой статье рассматривается реальная цепочка атак, которая начинается с, казалось бы, безобидного графического дефекта CVE-2025-55226 (состояние гонки в графическом ядре Windows) и приводит к полному контролю уровня SYSTEM через CVE-2025-54918 — критический обход аутентификации NTLM.

Вместе эти уязвимости показывают, как атакующие могут перейти от удаленного выполнения кода к повышению привилегий всего за несколько шагов. Но, что более важно, они демонстрируют, как Senior DevOps-инженер может обнаруживать, смягчать и отслеживать такие угрозы с помощью автоматизации, интеграции CI/CD и инфраструктуры как кода.

CVE‑2025‑55226 – Критическое удаленное выполнение кода в графическом ядре Windows

Дата выпуска: 16 сентября 2025 г. (вторник обновлений)

Уязвимость, достойная заголовков: почему она важна для каждого пользователя Windows

В последнем бюллетене безопасности Microsoft указана серьезная уязвимость в win32k.sys — ядре графической подсистемы, используемом как в настольных, так и в серверных выпусках Windows. Слабость представляет собой состояние гонки, которое позволяет атакующему вызвать удаленное выполнение кода (RCE) на любой системе, где работает уязвимый драйвер. Поскольку драйвер находится в центре GDI (Graphics Device Interface), его можно использовать для выполнения произвольного кода в режиме ядра — уровне привилегий, который может поставить под угрозу всю машину.

Почему это важно:

  • Он затрагивает ключевую подсистему, обеспечивающую работу каждого графического интерфейса — от обычных офисных компьютеров до высокопроизводительных серверов.
  • Выпущенный во вторник патч дает немедленное исправление, но только если администраторы знают, как вовремя его обнаружить, развернуть и отслеживать.

Почему CVE‑2025‑55226 важна?

  • Ключевая подсистема — win32k.sys используется всеми машинами Windows, отображающими пользовательский интерфейс.
  • Удаленное выполнение кода (RCE) — уязвимость позволяет аутентифицированному атакующему выполнять произвольный код в режиме ядра, то есть скомпрометировать весь хост, если вовремя не устранить проблему.
  • Актуальность в реальном мире — многие современные дата-центры полагаются на этот драйвер для рендеринга панелей мониторинга и управления высоконагруженными графическими задачами; поэтому исправление одного «вторника обновлений» ценно как для малого бизнеса, так и для крупных предприятий.

Скрипт обнаружения PowerShell

Следующий фрагмент получает текущую версию win32k.sys из реестра, сравнивает ее с пропатченной версией и записывает несовпадения в CSV-файл, который можно импортировать в Excel или Tableau.

root@kitploit:~
# DetectWin32k.ps1 – check for vulnerable win32k.sys
$target = 'Microsoft-Windows-GraphicsKernel'
$patchVersion = '6.0.22.7'   # Expected patched version

$regPath = "HKLM:\SYSTEM\CurrentControlSet\Services\$target"
$currentVer = Get-ItemProperty $regPath | Select-Object -ExpandProperty ImagePath
$kernelFile = Join-Path $env:SystemRoot \System32\win32k.sys
$fileVersion = (Get-ChildItem $kernelFile).VersionInfo.FileVersion

if ($fileVersion -ne $patchVersion) {
    Write-Output "vulnerable: $currentVer (actual=$fileVersion, expected=$patchVersion)" | Out-File -Encoding ascii .\report.csv
}

Что это делает:

  1. Читает текущую версию win32k.sys из реестра.
  2. Сравнивает ее с ожидаемой строкой пропатченной версии.
  3. Записывает запись при несовпадении; затем эти данные использует инструмент отчетности или шаг CI.

Ansible-плейбук для развертывания обновления

Следующий YAML-файл указывает Ansible применить обновление win32k.sys и перезапустить службу GDI на всех целевых хостах.

root@kitploit:~
---
- name: Deploy Windows graphics kernel patch
  hosts: windows_servers
  gather_facts: yes
  tasks:
    - name: Copy new win32k.sys
      copy:
        src: /tmp/patches/win32k.sys
        dest: C:\Windows\System32\
        mode: '0644'
        force: yes

    - name: Restart GDI service
      win_service:
        name: w32k
        state: restarted

Что это делает:

  1. Отправляет новый файл драйвера на каждый Windows-сервер в инвентаре (windows_servers).
  2. Принудительно перезапускает службу ядра w32k, чтобы новая копия вступила в силу немедленно.

Фрагмент дашборда Grafana

Создайте простую панель, которая визуализирует использование таблицы объектов GDI с течением времени.

root@kitploit:~
# grafana-dashboard.yml
apiVersion: 1
dashboard:
  title: “GDI Usage”
  panels:
    - name: “Objects in use”
      type: graph
      targets:
        - query: "SELECT timestamp, gdi_objects FROM win32k_stats WHERE $__timeFilter()"

Что это делает:

  • Получает метрики из пользовательского счетчика производительности Windows (win32k_stats) и отображает их на панели Grafana. Вы можете настроить оповещения на случай, когда использование превышает порог, — это ранний индикатор регрессий драйвера.

Интеграция с CI/CD

Добавьте в конвейер Jenkins или GitHub Actions тестовый шаг, который проверяет обновление с помощью фаззинга win32k.sys легковесным инструментом (например, wdfuzz).

root@kitploit:~
# .github/workflows/cve55226.yml
name: CVE‑2025‑55226 CI

on:
  push:
    branches:
      - main

jobs:
  test_and_deploy:
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v3
      - name: Run fuzzer
        run: |
          wdfuzz.exe -t win32k.sys -c config.yaml
          if ($LASTEXITCODE -eq 0) { Write-Host "Fuzz passed" }
      - name: Deploy patch
        uses: ansible/[email protected]
        with:
          playbook: DetectWin32k.ps1

Что это делает:

  1. Выполняет checkout кодовой базы при каждом изменении в ветке main.
  2. Запускает быстрый фаззинг-тест, который обрабатывает win32k.sys и проверяет регрессии состояния гонки.
  3. Если тест успешен, Ansible автоматически развертывает обновление.

Как две ошибки Windows могут обрушить вашу гибридную инфраструктуру

Все начинается с единственной ошибки в графическом движке. Атакующий находит способ эксплуатировать состояние гонки в ядре Windows, как показано выше, обходит защиту и удаленно выполняет код. Это CVE-2025-55226. Но настоящая опасность проявляется, когда она сочетается с CVE-2025-54918 — уязвимостью в аутентификации NTLM. Внезапно атакующий не просто проникает в систему — он получает контроль.

То, что начиналось как графическая ошибка, превращается в полноценное повышение привилегий и дает доступ уровня SYSTEM. Эта цепочка событий не просто теоретическая. Это напоминание о том, что в современных гибридных средах уязвимости редко существуют по отдельности.

CVE‑2025‑54918 – Повышение привилегий в Windows NTLM

Опубликовано: 9 сентября 2025 г. (вторник обновлений)

Оценка CVSS v3.1: 8.8 (высокая)
Вектор: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CWE: CWE‑287 – Неправильная аутентификация
Затронутый компонент: Windows NTLM (New Technology LAN Manager)


В чем суть уязвимости?

Ошибка заключается в логической погрешности проверки аутентификационных данных NTLM. Атакующий, способный подключиться к хосту по сети, даже с минимальными привилегиями, может обмануть систему и получить права уровня SYSTEM. Это означает, что после компрометации рабочей станции или контроллера домена злоумышленник может устанавливать приложения, похищать конфиденциальные файлы и создавать новые учетные записи администратора — по сути, полностью управлять целью.

Эта уязвимость является частью растущей тенденции 2025 года: уже сообщалось о двух других ошибках NTLM (CVE‑2025‑53778, CVE‑2025‑21311). Патч Microsoft для этой проблемы исправляет некорректную процедуру сравнения, которая ошибочно принимает определенные хэш-значения.


Обнаружение – скрипт PowerShell

root@kitploit:~
# Find hosts with vulnerable NTLM settings
$target = "dc01.company.local"
Invoke-Command -ComputerName $target -ScriptBlock {
    Get-WmiObject -Class Win32_OperatingSystem | 
        Select-Object CSName, Version, BuildNumber
} | Out-File -FilePath C:\temp\nlm_detection.txt

# Check the NTLM policy value
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon" |
    Select-Object "LmCompatibilityLevel"

# Export to CSV for quick review
$report = @()
foreach ($item in Get-WmiObject -Class Win32_Service | Where { $_.Name -eq "netlogon"}) {
    $report += [pscustomobject]@{
        Service   = $item.Name
        LmCompat  = (Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon").LmCompatibilityLevel
    }
}
$report | Export-Csv -Path C:\temp\nlm_report.csv -NoTypeInformation

Скрипт получает текущую сборку ОС, проверяет, что ключ Netlogon имеет рекомендованное Microsoft значение (3), и записывает результаты в удобный для чтения CSV-файл.

Митигирование – Ansible-плейбук

root@kitploit:~
---
- name: Patch NTLM for Windows servers
  hosts: windows_dc01, windows_dc02, windows_dc03
  gather_facts: true
  tasks:
    - name: Enable Netlogon compatibility level
      win_regedit:
        path: HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon
        key: LmCompatibilityLevel
        value: 3
        datatype: dword

    - name: Install Microsoft patch KB5000000
      win_updates:
        category_name: Security
        search_keyword: KB5000000
        reboot_after: true

Разверните плейбук на всех контроллерах домена. Задача гарантирует правильную настройку политики и установку последнего обновления безопасности, чтобы та же логическая ошибка больше не была эксплуатируемой.

Симуляция эксплуатации – лабораторная среда

Используя Responder и Impacket, вы можете воспроизвести реальную NTLM relay-атаку:

  1. Responder прослушивает порт 445 для SMB-трафика.
  2. secretsdump.py из Impacket захватывает аутентификационные данные.
  3. Перехваченный хэш воспроизводится на целевой машине, что доказывает наличие уязвимости.
root@kitploit:~
# Start Responder on the attack box
responder -i eth0 -f

# Dump credentials from the victim
python3 impacket/secretsdump.py <victim-ip> <domain-admin-username>

# Replay hash to the target
python3 impacket/ntlmrelay.py <victim-ip> <target-ip>

Запустите скрипт в контролируемой среде и убедитесь, что вы получаете доступ уровня SYSTEM.

Интеграция с CI/CD – проверки усиления защиты

Добавьте задачу усиления безопасности NTLM в свой конвейер:

root@kitploit:~
- name: Validate Netlogon compatibility level
  win_regedit:
    path: HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon
    key: LmCompatibilityLevel
    value: 3
    datatype: dword
    state: present

# Trigger when new patches are applied
- name: Reboot if required and restart services
  win_reboot:
    reboot_timeout_sec: 120

Задача выполняется автоматически при каждом запуске конвейера после сборки нового обновления.

Мониторинг – оповещения ELK/Sentinel

Создайте оповещение, которое срабатывает, когда хост выполняет вход с аутентификацией NTLM, соответствующей уязвимому шаблону хэша:

root@kitploit:~
input {
    beats {
        type => "winlogbeat"
    }
}

filter {
    if [event_id] == "4624" and [logon_type] =~ /NTLM/ { 
        mutate {
            add_field => { "[ntlm_match]" => "true" }
        }
    }
}

output {
    elasticsearch {
        hosts => ["es.company.local"]
        index => "ntlm_audit"
    }
}

Оповещение попадает в Sentinel для визуализации, позволяя ответственным специалистам видеть, что исправление применено и находится под мониторингом.


Заключение

Безопасность — это не только установка обновлений. Это понимание того, как уязвимости связаны, как они развиваются и как их можно превратить в оружие способами, которые не очевидны на первый взгляд. Связав CVE-2025-55226 и CVE-2025-54918, я показал, как единственная ошибка в графическом драйвере может открыть дверь к полной компрометации системы. Но, что более важно, я продемонстрировал, как DevOps-инженер может реагировать не только техническими исправлениями, но и предвидением, автоматизацией и устойчивостью.


Скачать инструмент