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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-54110-Kernel-EoP-PoC — Дата проекта : Окт 2025 / реализация PoC для CVE-2025-54110 уязвимости целочисленного переполнения на уровне ядра в Windows системном вызове `NtQueryDirectoryObject`. | Kitploit
Инструменты/GitHubGitHub/canomer
/
cve-2025-54110-kernel-eop-poc
Анализ уязвимостейЭксплуатацияОбратная инженерияСтатьи и ИсследованияОбучение и ОбразованиеЭксплуатация Бинарных Файлов
GitHubcanomer/cve-2025-54110-kernel-eop-poc

CVE-2025-54110-Kernel-EoP-PoC

Дата проекта : Окт 2025 / реализация PoC для CVE-2025-54110 уязвимости целочисленного переполнения на уровне ядра в Windows системном вызове `NtQueryDirectoryObject`.

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

Популярное

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

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

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

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

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

CVE-2025-54110-Kernel-EoP-PoC

Реализация PoC для CVE-2025-54110 — уязвимости переполнения целого числа на уровне ядра в системном вызове Windows NtQueryDirectoryObject.

CVE-2025-54110 - Анализ переполнения целого числа в ядре Windows

CVE: https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-54110

Этот репозиторий содержит Crash-Only PoC для уязвимости CVE-2025-54110 повышения привилегий ядра, разработанный исключительно для исследования безопасности, реверс-инжиниринга и исследований разработки эксплойтов. Этот код предназначен для демонстрации методов исследования уязвимостей, включая:

  • Бинарное диффинг с помощью Version Tracking в Ghidra
  • Анализ Windows Patch Tuesday
  • Методологии исследования уязвимостей ядра
  • Анализ поведения структурированной обработки исключений (SEH)

Этот PoC НЕ обеспечивает повышение привилегий или надежный BSOD. Он предназначен для безопасного вызова нарушений доступа, которые перехватываются защитой ядра Windows.


Обзор

CVE-2025-54110: Уязвимость повышения привилегий ядра Windows

Дата публикации: Сентябрь 2025 (Windows Tuesday Security Patch)

СвойствоЗначение
CWECWE-190: Переполнение целого числа или циклический переход
Оценка CVSS 3.18.8 (Высокий) / 7.7 (Временная)
Вектор атакиCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H/E:U/RL:O/RC:C
Вектор атакиЛокальный
Сложность атакиНизкая
Необходимые привилегииНизкие
Взаимодействие пользователяНет
Область действияИзменена
КонфиденциальностьВысокая
ЦелостностьВысокая
ДоступностьВысокая
Зрелость эксплойтаНе доказана

Краткое описание

Уязвимость переполнения целого числа в ядре Windows позволяет аутентифицированному злоумышленнику потенциально повысить привилегии локально. Согласно рекомендациям Microsoft:

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

Потенциальное воздействие

  • Привилегии SYSTEM могут быть получены успешным злоумышленником
  • Выход из изолированной среды (sandbox) из процессов с ограничениями в пользовательском режиме
  • Повреждение памяти ядра, приводящее к выполнению кода

Оценка возможности эксплуатации

  • Публично раскрыто: Нет
  • Эксплуатируется в реальных атаках: Нет
  • Оценка Microsoft: Эксплуатация более вероятна

Методология исследования

1. Анализ исправлений (Workflow)```

Windows Update Files from Aug 2025 & Sep 2025 (KB.msu) ↓ Extract CAB Files ↓ Calculate SHA-256 Hashes (August vs September) ↓ Identify Changed Files ↓ Ghidra Version Tracking Analysis ↓ Setting Symbol Servers to Clarify Function Names ↓ Function-Level Diff Comparison

### 2. Проанализированные файлы

Первоначальный анализ был сосредоточен на двух основных компонентах ядра:

#### win32k.sys (-)
- **Результат:** Значительных изменений не обнаружено
- **Диапазон оценок:** 0.97-1.0 (высокое сходство)
- **Заключение:** Не является уязвимым компонентом для CVE-2025-54110

#### ntoskrnl.exe (+)
- **Результат:** Множество функций со значительными изменениями
- **Диапазон оценок:** Функции с оценками ≤0.951
- **Различия в длине:** Обнаружены различия в длине байтов между исходным и целевым файлами
- **Всего экспортировано элементов:** 2,036 функций для анализа

### 3. Результаты отслеживания версий Ghidra

Пример выявленных изменений в `ntoskrnl.exe`:

| Оценка | Достоверность | Длина источника | Длина назначения | Исходная функция | Целевая функция |
|-------|---------------|-----------------|-----------------|------------------|-----------------|
| 0.951 | 2.618 | 1023 | 365 | FUN_1403146d0 | FUN_1403a4ea0 |
| 0.950 | 2.285 | 113 | 203 | FUN_140680810 | FUN_1406d952c |
| 0.950 | 3.137 | 782 | 1050 | FUN_14032106c | FUN_140303a38 |
| 0.951 | 2.675 | 141 | 171 | FUN_140407bd0 | FUN_140a172a0 |
| 0.951 | 2.660 | 346 | 150 | FUN_140610e60 | FUN_1406115d4 |

---

## Заявление о PoC

### Технический подход

PoC (`precise_overflow_bsod.c`) пытается вызвать уязвимость целочисленного переполнения через:

1. **Точное вычисление порога:** `0xfffffdbc` (получено из base=0x20, name=0x200)
2. **API NtQueryDirectoryObject:** Целевая функция для запуска переполнения
3. **Многофазная стратегия атаки:**
   - Фаза 1: Попытки точного целочисленного переполнения
   - Фаза 2: Нацеливание на память ядра
   - Фаза 3: Многопоточная эксплуатация

### Структура кода```c
// Key threshold values calculated for overflow
ULONG precise_thresholds[] = {
    0xfffffdbc,  // Precise threshold - base=0x20, name=0x200
    0xfffffdbb,  // Threshold - 1
    0xfffffdbd,  // Threshold + 1
    0xfffffdba,  // Threshold - 2  
    0xfffffdbe,  // Threshold + 2
};

// Buffer configurations to test edge cases
PVOID buffer_types[] = {
    VirtualAlloc(NULL, 0x1000, MEM_COMMIT, PAGE_READWRITE),  // Normal buffer
    VirtualAlloc(NULL, 0x10, MEM_COMMIT, PAGE_READWRITE),    // Small buffer
    NULL,                                                    // NULL pointer
    (PVOID)0x4141414141414141,                              // Invalid pointer
    (PVOID)0x0000000000000000,                              // Zero address
};

Проверенные векторы эксплуатации```

NtQueryDirectoryObject() Parameters: ├── DirectoryHandle: \BaseNamedObjects, \KernelObjects, etc. ├── Buffer: Various pointer configurations ├── BufferLength: Calculated overflow thresholds (0xfffffdbc variants) ├── ReturnSingleEntry: TRUE/FALSE variations ├── RestartScan: TRUE/FALSE variations └── Context: Controlled iteration state

---

## Почему PoC не приводит к сбою системы

### Фактические результаты

PoC последовательно возвращает `STATUS_ACCESS_VIOLATION (0xC0000005)` без появления синего экрана смерти (BSOD). Это **сделано намеренно** и демонстрирует несколько критических механизмов безопасности ядра Windows:

### 1. Структурированная обработка исключений (SEH)```
User-Mode Input → NtQueryDirectoryObject
                        ↓
                  ProbeForRead/Write
                        ↓
                  __try { ... }
                        ↓
              Access Violation Detected
                        ↓
                  __except { ... }
                        ↓
            Return STATUS_ACCESS_VIOLATION

Почему это работает:

  • Системные вызовы ядра Windows оборачивают доступ к указателям пользовательского режима в обработчики исключений
  • Недопустимые обращения к памяти перехватываются, а не распространяются
  • Система возвращает код ошибки вызывающему вместо аварийного завершения

2. SMAP (Защита от доступа в режиме супервизора)

Современная функция процессора, которая предотвращает доступ режима ядра (Ring 0) к памяти пользовательского режима (Ring 3) без явного разрешения:``` Kernel attempts to access user pointer ↓ SMAP checks permission (STAC/CLAC instructions) ↓ Unauthorized access detected ↓ CPU generates #PF (Page Fault) ↓ Caught by kernel exception handler

**Влияние на PoC:**
- Даже если происходит переполнение, прямой доступ к памяти из ядра в пользовательское пространство блокируется
- Предотвращает эксплуатацию уязвимостей, связанных с разыменованием указателей

### 3. KASLR (Рандомизация макета адресного пространства ядра)```
Boot Time: Kernel Base = Random Address
                ↓
Hardcoded PoC address (0xfffffdbc)
                ↓
        Does NOT match actual kernel structures
                ↓
    Write to non-critical memory OR caught by SEH

Почему BSOD не происходит:

  • PoC использует статические адреса/пороги
  • Реальные структуры ядра находятся в рандомизированных местах
  • Записи промахиваются мимо критических целей (например, EPROCESS, Pool Headers)
Скачать инструмент