
أداة اكتشاف تصعيد الامتيازات في ويندوز تقوم بتحليل سجلات التمهيد من Process Monitor لتحديد اختطاف DLL، و ACLs الضعيفة، ومسارات تصعيد أخرى، مع إنشاء تلقائي لرمز مصدر DLL وكيل.
Enable Boot Logging.

raw.PML.Ctrl-R.boot.PML.Crassus.exe boot.PML.results.csv.صنعت Accenture أداة تُسمى Spartacus، والتي تكتشف فرص اختطاف DLL على ويندوز. باستخدام Spartacus كنقطة انطلاق، أنشأنا Crassus لتوسيع قدرات اكتشاف تصعيد الامتيازات في ويندوز إلى ما هو أبعد من مجرد البحث عن الملفات المفقودة. يمكن لـ ACLs التي تستخدمها ملفات وأدلة العمليات ذات الامتيازات أن تجد أكثر من مجرد البحث عن الملفات المفقودة لتحقيق الهدف.
... ولكن مع لمسة مختلفة حيث أن Crassus يستخدم مراقب عمليات SysInternals ويقوم بتحليل ملفات PML الأولية. الاستخدام النموذجي هو إنشاء سجل تمهيد باستخدام مراقب العمليات ثم تحليله باستخدام Crassus. سيقوم أيضًا بإنشاء كود مصدر تلقائيًا لـ Proxy DLLs مع جميع الصادرات ذات الصلة لـ DLLs الضعيفة.
version.dll، فسوف ينشئ Crassus ملفي version.cpp و version.def لك مع جميع الصادرات المضمنة فيه. بشكل افتراضي، سيقوم الـ Proxy DLLs بتشغيل calc.exe. يتم تضمين نصوص بناء لبناء الـ DLLs على Visual Studio أو MinGW.يمكن تلخيص الفكرة العامة لكيفية عمل Crassus في هذا المخطط الانسيابي:






تم تطوير Crassus كمشروع Visual Studio 2019. لبناء Crassus.exe:
Crassus.slnCtrl+Shift+B على لوحة المفاتيحإذا كنت تثق في تشغيل كود الآخرين دون معرفة ما يفعله، فإن Crassus.exe متوفر في هذا المستودع.
Enable Boot Logging.

Ctrl-R.boot.PML. سبب إعادة حفظ ملف السجل ذو شقين:
| الوسيطة | الوصف |
|---|---|
<PMLFILE> | موقع (ملف) ملف سجل أحداث ProcMon الموجود. |
--verbose | تفعيل الإخراج المفصل. |
--debug | تفعيل إخراج التصحيح. |
قم بتحليل سجل تمهيد مراقب العمليات المحفوظ في boot.PML. سيتم حفظ جميع المسارات الضعيفة كـ results.csv وجميع ملفات مصدر الـ Proxy DLL في الدليل الفرعي stubs.
C:\tmp> Crassus.exe boot.PML
أدناه هو القالب المستخدم عند إنشاء Proxy DLLs. بالنسبة لـ DLLs التي يعثر عليها Crassus، سيحتوي الـ Proxy DLL على نفس أسماء الصادرات كما هو محدد في %_EXPORTS_%، بالإضافة إلى نفس الأرقام الترتيبية كما هو محدد في ملف .def. سيكتشف Crassus ما إذا كان الـ DLL يحتاج إلى البناء كمكتبة 32 بت أم 64 بت من خلال النظر في بنية العملية الأم، ووضع علامة على الكود المصدري في حقل %_BUILD_AS_% وفقًا لذلك.
إذا تعذر العثور على الـ DLL الحقيقي باستخدام سجل مراقب العمليات، أو إذا كان اسم التصدير إشكاليًا، فستتراجع نصوص البناء إلى إنشاء DLL بدون صادرات محددة.
#pragma once
//%_BUILD_AS%
#include <windows.h>;
extern "C" {
VOID Payload() {
// قم بتشغيل الحمولة الخاصة بك هنا.
WinExec("calc.exe", 1);
}