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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-60709 — Windows CLFS LPE exploit PoC для исследований в области безопасности | Kitploit
Инструменты/GitHubGitHub/kondordevsecuritycorp/cve-2025-60709
Оборонительные ИнструментыПовышение привилегийАнализ уязвимостейЭксплуатацияОбучение и ОбразованиеРазработка Полезной НагрузкиЭксплуатация Бинарных Файлов
GitHub

Популярное

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

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

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

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

Смотреть все инструменты →
kondordevsecuritycorp/cve-2025-60709

CVE-2025-60709

Windows CLFS LPE exploit PoC для исследований в области безопасности

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

CVE Type Target Component C Go Research


🚨 EXPLOIT PoC — ТОЛЬКО ДЛЯ ИССЛЕДОВАНИЙ БЕЗОПАСНОСТИ, АНАЛИЗА УЯЗВИМОСТЕЙ И ЗАЩИТНЫХ ЦЕЛЕЙ

🚨 EXPLOIT PoC — ТОЛЬКО ДЛЯ ИССЛЕДОВАНИЙ БЕЗОПАСНОСТИ, АНАЛИЗА УЯЗВИМОСТЕЙ И ЗАЩИТНЫХ ЦЕЛЕЙ


🌐 Языки / Languages

  • 🇷🇺 Русский
  • 🇷🇺 Русский

🇷🇺 Документация на русском

Описание

CVE-2025-60709 — это уязвимость локального повышения привилегий (LPE) в драйвере CLFS.sys (Common Log File System) Windows. Она позволяет атакующему с локальным выполнением кода повысить привилегии от стандартного пользователя до NT AUTHORITY\SYSTEM через переполнение буфера при разборе контейнеров CLFS, получая примитив произвольной записи в память ядра.

Этот репозиторий содержит две реализации:

  • CVE-2025-60709.c — Оригинальная реализация на C (прямой доступ к нативным API Windows)
  • CVE-2025-60709.go — Порт на Go (демонстрационная/обучающая версия — НЕ эксплуатирует реальные уязвимости)

🎯 Детали уязвимости

ПолеДеталь
CVE IDCVE-2025-60709
ТипЛокальное повышение привилегий (LPE)
КомпонентCLFS.sys (драйвер Common Log File System)
Целевая ОСWindows 11 24H2 (сборка 26100.3485+)
АрхитектураТолько x64
ВекторПереполнение буфера при разборе контейнера CLFS
ВоздействиеПовышение до NT AUTHORITY\SYSTEM
Предварительные условияЛокальное выполнение кода (стандартный пользователь)

🏗️ Структура репозитория

CVE-2025-60709/
├── CVE-2025-60709.c    (5.3 КБ, 157 строк) — Оригинальный эксплойт на C
├── CVE-2025-60709.go   (9.2 КБ, 285 строк) — Порт на Go (демо, обучающая)
└── README.txt          (4.2 КБ, 132 строки) — Оригинальная документация

🔬 Подробный технический анализ

Полный поток эксплуатации

┌─────────────────────────────────────────────────────────────┐
│                    CVE-2025-60709 LPE                       │
└─────────────────────────────────────────────────────────────┘

[1] ОБХОД ЗАЩИТЫ
    ├─ KillETW()   → Патчит EtwEventWrite в ntdll с помощью RET (0xC3)
    └─ KillAMSI()  → Патчит AmsiScanBuffer в amsi.dll с помощью RET (0xC3)

[2] HEAP GROOMING (подготовка памяти)
    └─ GroomLookaside()
       ├─ Создаёт 4096 файлов: C:\Windows\Temp\groom_00000.blf
       ├─ Вызывает CreateLogFile() + AddLogContainer() для каждого
       └─ Истощает lookaside списки → гарантирует предсказуемый макет кучи

[3] ПРИМИТИВ ПРОИЗВОЛЬНОЙ ЗАПИСИ — ClfsArbWrite(Address, Value)
    ├─ Создаёт неправильно сформированный буфер CLFS (0x102010 байт)
    │    ├─ Действительная подпись CLFS в +0x00: 0x0201
    │    ├─ Oversized cbRecord в +0x100: 0xFF00 (65 280 байт)
    │    ├─ Маркер теневой зоны в +0x9A8: 0x13371337
    │    └─ Поддельный CClfsContainerContext по смещению (0xFF00 + 0x100):
    │         ├─ pContainer  = TargetAddress - 0x10
    │         └─ cbContainer = Value (записываемые данные)
    ├─ Вычисляет корректную контрольную сумму CLFS (драйвер проверяет)
    ├─ Записывает неправильный контейнер → C:\Windows\Temp\evil.blf
    ├─ Создаёт журнал, указывающий на evil.blf
    ├─ Вызывает ClfsReadRestartArea() → запускает разбор в ядре
    └─ Драйвер переполняет буфер → записывает Value по адресу Address ✓

[4] КРАЖА ТОКЕНА SYSTEM
    ├─ Читает EPROCESS процесса SYSTEM через PsInitialSystemProcess
    └─ Извлекает токен по адресу EPROCESS + 0x4C0

[5] ПОВЫШЕНИЕ ПРИВИЛЕГИЙ
    └─ ClfsArbWrite(CurrentEprocess + 0x4C0, SystemToken)
       └─ Перезаписывает токен текущего процесса токеном SYSTEM ✓

[6] ЗАПУСК ПОЛЕЗНОЙ НАГРУЗКИ C2
    ├─ VirtualAlloc(PAGE_EXECUTE_READWRITE)
    ├─ Копирует 1789-байтовый shellcode beacon
    ├─ CreateThread() → выполняется как NT AUTHORITY\SYSTEM
    └─ Beacon: IPv6 + DoH C2 → резервный канал Gmail drafts
       └─ sRDI + обфускация сна + ETW/AMSI уже пропатчены

[7] ПЕРСИСТЕНТНОСТЬ
    └─ Sleep(INFINITE) → процесс сохраняет токен SYSTEM

Смещения EPROCESS (Windows 11 24H2 сборка 26100.3485+)

ПолеСмещениеОписание
EPROCESS_TOKEN0x4C0Токен безопасности процесса
EPROCESS_PID0x440Идентификатор процесса (PID)
EPROCESS_LINKS0x448Связанный список активных процессов
EPROCESS_NAME0x5A8Имя процесса (ImageFileName)

⚠️ Эти смещения различаются между сборками Windows. Требуется обновление для других версий.


Механизм переполнения буфера в CLFS

Легитимный контейнер CLFS:
  [Заголовок 0x100 байт][Запись: cbRecord байт реальных данных]

Неправильный контейнер (evil.blf):
  [Действительный заголовок][cbRecord=0xFF00 → ядро читает 65 280 байт]
                        ↓
  Переполнение в ядре → достигает поддельного CClfsContainerContext
                        ↓
  pContainer  = TargetKernelAddress - 0x10
  cbContainer = ValueToWrite
                        ↓
  Драйвер использует поддельную структуру → записывает ValueToWrite по адресу TargetKernelAddress

Ключевые функции — CVE-2025-60709.c

ФункцияНазначение
GetKernelBase()ZwQuerySystemInformation(SystemModuleInformation) → база ntoskrnl.exe
KillETW()VirtualProtect + перезапись EtwEventWrite в ntdll.dll с 0xC3 (RET)
KillAMSI()Загрузка amsi.dll + перезапись AmsiScanBuffer с 0xC3 (RET)
GroomLookaside()Создание 4096 журналов CLFS для истощения lookaside списков → детерминированная куча
ClfsArbWrite()Ядро эксплойта — примитив произвольной записи в память ядра
main()Оркестровка атаки: ETW→AMSI→groom→кража токена→arb write→beacon

Различия C и Go

АспектВерсия CВерсия Go
ТипРабочий эксплойт (согласно документации)Только обучающая демонстрация
APIПрямой доступ (ntdll, clfsw32, advapi32)Обёртки syscall.NewLazyDLL()
Контрольная сумма CLFSПолный алгоритмУпрощённый заполнитель
Ядерные адресаРеальныеЖёстко заданный заполнитель (0x123456)
Полезная нагрузка C2Шеллкод 1789 байтТестовые байты NOP (0x90)
Ожидаемый результатПовышение до SYSTEMСообщение "Arb write failed (yeah)"

Компиляция

Версия C (требуется Visual Studio Build Tools + Windows SDK):

cl /O1 /MT /link ntdll.lib advapi32.lib clfsw32.lib CVE-2025-60709.c

Версия Go (требуется Go 1.19+ на Windows x64):

go build -ldflags="-s -w" -o CVE-2025-60709.exe CVE-2025-60709.go

🛡️ Смягчения и обнаружение

Смягчения Windows

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