Уязвимость службы резервного копирования Windows Backup Service
Уязвимость службы резервного копирования Windows Backup Service
Категория: Программы Теги: Уязвимости Опубликовано: 2 июля 2025

Уязвимость BDU:2023-00067 (CVE-2023-21752) Windows Backup Service

Уязвимость BDU:2023-00067 (CVE-2023-21752) затрагивает службу резервного копирования Windows Backup Service и связана с некорректным управлением привилегиями при обработке путей к файлам. Успешная эксплуатация позволяет локальному злоумышленнику повысить привилегии до уровня SYSTEM, что эквивалентно полному контролю над системой.

Анализ уязвимости

Уровень опасности: 7.1 HIGH
Вектор атаки: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H

  • AV:L (Attack Vector): Локальный – атакующий должен иметь физический или удаленный доступ к системе (например, через RDP или локальный сеанс).

  • AC:L (Attack Complexity): Низкая – эксплуатация не требует сложных условий.

  • PR:L (Privileges Required): Низкие – достаточно прав обычного пользователя.

  • UI:N (User Interaction): Не требуется – атака выполняется без участия пользователя.

  • S:U (Scope): Не оказывает влияния на другие компоненты.

  • C:N (Confidentiality): Нет воздействия на конфиденциальность.

  • I:H (Integrity): Высокое – полный контроль над системными ресурсами.

  • A:H (Availability): Высокое – возможен отказ в обслуживании.

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

  1. Злоумышленник должен иметь возможность выполнить код на целевой системе (например, через RDP, SSH или локальный сеанс).

  2. Требуются низкие привилегии (обычный пользователь без админских прав).

  3. Уязвимые ОС: Windows 7/10/11.


Технический анализ эксплоита

Рассмотрим код эксплоита для понимания работы вектора атаки с использованием этой уязвимости.

Эксплоит использует комбинацию символических ссылок (symlinks)junction points и oplock (блокировок файлов) для манипуляции службой резервного копирования. Ключевые этапы:

1. Создание временного каталога

dir = GetTmpDir();  // C:\users\<user>\appdata\local\temp\<uuid>
CreateDirectory(dir, NULL);
hDir = CreateFile(dir, ..., FILE_FLAG_DELETE_ON_CLOSE, ...);

Каталог создается с флагом FILE_FLAG_DELETE_ON_CLOSE, что гарантирует его удаление после закрытия дескриптора.

2. Отслеживание изменений в каталоге

CreateThread(..., FindFile, ...);

VOID FindFile(HANDLE hDir) {
  ReadDirectoryChangesW(hDir, ...);  // Мониторинг новых файлов
  if (fi->Action == FILE_ACTION_ADDED) {
    hFile = CreateFile(file, ...);  // Открытие нового файла
    FileOpLock::CreateLock(hFile, cb);  // Oplock на файл
  }
}

При появлении файла (созданного службой) на него устанавливается oplock.

3. Механизм oplock

Когда служба пытается получить доступ к файлу, срабатывает callback:

void cb() {
  CreateJunction(hDir, L"\\RPC Control");  // Перенаправление каталога
  DosDeviceSymLink(object, BuildPath(target));  // Симлинк на целевой файл
}
  • Junction перенаправляет путь в \RPC Control (глобальное пространство имён).

  • DosDeviceSymLink связывает объект с целевым файлом (например, системным DLL).

4. Триггер уязвимости

BOOL Trigger() {
  CoCreateInstance(__uuidof(CLSID_SDC), ..., (LPVOID*)&sdc);
  sdc->Proc7(unc, ...);  // Вызов уязвимого метода
}

Метод Proc7 интерфейса ISdScheduledBackup принимает контролируемый путь (unc), что приводит к обработке символических ссылок с правами SYSTEM.

5. Результат

// После срабатывания oplock:
DeleteJunction(hDir);  // Очистка
DelDosDeviceSymLink(object, BuildPath(target));

Служба, обрабатывая подменённый путь, выполняет операции (например, удаление) с целевым файлом от имени SYSTEM.


Что может получить злоумышленник?

  1. Повышение привилегий до SYSTEM: Полный контроль над ОС.

  2. Удаление системных файлов: Нарушение работы ОС (DoS).

  3. Подмена системных компонентов: Например, замена winlogon.exe.

  4. Обход механизмов защиты: Отключение EDR, антивирусов.


Методы защиты

  1. Установка обновлений:
    Патч от Microsoft.

  2. Принцип минимальных привилегий:

    • Ограничить локальный доступ пользователей через GPO:
      Computer Configuration → Policies → Windows Settings → Security Settings → Local Policies → User Rights Assignment.

    • Запретить выполнение неизвестных бинарников.

  3. Контроль целостности файлов:

    • Включить Windows Defender Credential Guard.

    • Использовать Windows Defender Application Control (WDAC).

  4. Мониторинг подозрительных действий:

    • События создания символических ссылок (CreateFile с флагом FILE_FLAG_OPEN_REPARSE_POINT).

    • Вызовы API DefineDosDevice и FSCTL_SET_REPARSE_POINT.

Правила для Suricata (IPS)

alert tcp any any -> $HOME_NET 445 (msg:"CVE-2023-21752 Exploit Attempt"; 
flow:to_server; 
content:"|FF|SMB"; depth:4; 
content:"|00|"; distance:0; 
content:"CreateDirectory"; 
content:"GetTmpDir"; distance:0; 
sid:2023021752; rev:1;)

Где размещать IPS: На шлюзах доступа к критичным серверам (RDP-шлюзы, VPN-серверы) для детекта попыток передачи эксплоита.


Заключение

BDU:2023-00067 (CVE-2023-21752) — критичная уязвимость, требующая локального доступа, но позволяющая получить полный контроль над системой. Для защиты необходимо:

  1. Срочно обновить ОС.

  2. Внедрить политику минимальных привилегий.

  3. Мониторить аномальную активность (создание symlinks, oplocks).

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