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

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

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

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

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

Категории

Все категории
Loading categories
UsoDllLoader — Windows - Вооружение привилегированных записей в файлы с помощью Update Session Orchestrator service | Kitploit
Инструменты/GitHubGitHub/itm4n/usodllloader
Повышение привилегийГенерация полезной нагрузкиЭксплуатацияТестирование на ПроникновениеArchived
GitHubitm4n/usodllloader

UsoDllLoader

Windows - Вооружение привилегированных записей в файлы с помощью Update Session Orchestrator service

Репозиторий
4061006 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

UsoDllLoader

⚠️ Обновление от 06.06.2020: этот трюк больше не работает на последних сборках Windows 10 Insider Preview. Это означает, что хотя он всё ещё работает в основной версии Windows 10, следует ожидать, что в ближайшие месяцы он будет исправлен.

Описание

Эта PoC демонстрирует технику, которую можно использовать для превращения уязвимостей привилегированной записи файлов в оружие в Windows. Она представляет собой альтернативу «эксплойту» загрузки DLL через DiagHub, найденному Джеймсом Форшоу (он же @tiraniddo), который был исправлен Microsoft, начиная со сборки 1903.

TL;DR

Начиная с Windows 10, Microsoft представила службу Update Session Orchestrator. Как обычный пользователь, вы можете взаимодействовать с этой службой через COM и, например, запустить «проверку обновлений» (т.е. проверить наличие обновлений) или начать загрузку ожидающих обновлений. Существует даже недокументированная встроенная утилита usoclient.exe, которая служит этой цели.

С точки зрения атакующего эта служба интересна тем, что она работает как NT AUTHORITY\System и пытается загрузить несуществующую DLL (windowscoredeviceinfo.dll) при каждом создании сеанса обновления.

Это означает, что если мы найдем уязвимость привилегированной записи файлов в Windows или в стороннем ПО, мы сможем скопировать собственную версию windowscoredeviceinfo.dll в C:\Windows\Sytem32\, а затем загрузить её через службу USO для получения произвольного выполнения кода с правами NT AUTHORITY\System.

Для дополнительной информации:
Часть 1 - https://itm4n.github.io/usodllloader-part1/
Часть 2 - https://itm4n.github.io/usodllloader-part2/

Сборка PoC

Состав

Решение состоит из двух проектов: WindowsCoreDeviceInfo и UsoDllLoader.

  • WindowsCoreDeviceInfo

Предоставляет PoC DLL, который при вызове функции QueryDeviceInformation() запускает bind shell на порту 1337 (только localhost). Именно эта функция используется рабочими процессами USO.

  • UsoDllLoader (опционально)

Это урезанная версия usoclient.exe. Её можно запускать от имени обычного пользователя для взаимодействия со службой USO и загрузки windowscoredeviceinfo.dll. После этого она попытается подключиться к bind shell. В случае ошибок обратитесь к разделу «Известные проблемы».

Сборка решения

Решение уже предварительно настроено, так что компиляция должна быть простой. Я использую Visual Studio 2019. С более старыми версиями может не работать.

  1. Выберите конфигурацию Release и архитектуру x64.
  2. Соберите решение.
  3. Результат: DLL .\x64\Release\WindowsCoreDeviceInfo.dll и загрузчик .\x64\Release\UsoDllLoader.exe.

Тестирование

Использование 1 - UsoDllLoader

Для целей тестирования вы можете:

  1. От имени администратора скопировать WindowsCoreDeviceInfo.dll в C:\Windows\System32\.
  2. Запустить загрузчик от имени обычного пользователя.
  3. Надеемся, получить shell с правами NT AUTHORITY\SYSTEM.

Использование 2 - UsoClient

Если UsoDllLoader.exe не сработает, вы можете проделать вышеописанное вручную.

  1. От имени администратора скопировать WindowsCoreDeviceInfo.dll в C:\Windows\System32\.
  2. Использовать команду usoclient StartInteractiveScan от имени обычного пользователя. Обратите внимание, что команда не выдаст никакого отклика.
  3. Скачайте netcat для Windows и используйте команду nc.exe 127.0.0.1 1337 для подключения к bindshell.

Известные проблемы

  • Ожидающие обновления

Этот метод, вероятно, не сработает, если одно или несколько обновлений ожидают установки или обновления устанавливаются.

  • Ошибки RPC

В зависимости от версии Windows UsoDllLoader.exe может завершаться с различными кодами ошибок. Я не слишком глубоко исследовал эти проблемы. Причина в том, что это всего лишь PoC, который я разработал для удобства. Самое важное — это DLL, а не загрузчик. Подробнее см. «Использование 2».

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