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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
TopazTerminator — أداة مبنية على لغة C تستغل برنامج تشغيل النواة الضعيف wsftprm.sys لإنهاء عمليات EDR/AV المحمية على ويندوز، بما في ذلك عمليات PPL، عبر منطق إرسال IOCTL المعكوس. | Kitploit
أدوات/GitHubGitHub/thannikudam/topazterminator
أدوات دفاعيةتصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةاختبار الاختراقالفريق الأحمراستغلال الملفات الثنائية
GitHubthannikudam/topazterminator

TopazTerminator

أداة مبنية على لغة C تستغل برنامج تشغيل النواة الضعيف wsftprm.sys لإنهاء عمليات EDR/AV المحمية على ويندوز، بما في ذلك عمليات PPL، عبر منطق إرسال IOCTL المعكوس.

عرض المستودع
14122منذ 7 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

TopazTerminator

لقد احترق سائق آخر.. كنت أحتفظ بسائق wsftprm.sys لنفسي لفترة 😉 ولكن بما أن شخصًا ما نشر إثباتًا عامًا، فقد قررت إطلاقه. الكل يعلم أنه سيُضاف قريبًا إلى قائمة السائقين المحظورين، لذا ها هو تطبيقي الخاص لنفس الشيء — بلغة C

يستغل هذا المشروع سائق wsftprm.sys (سائق نواة Topaz لمكافحة الاحتيال) الضعيف لإنهاء العمليات المحمية (مثل خدمات مكافحة الفيروسات/EDR) على ويندوز.

اعتبارًا من يناير 2026، لا يزال wsftprm.sys (SHA-256: FF5DBDCF6D7AE5D97B6F3EF412DF0B977BA4A844C45B30CA78C0EEB2653D69A8) أحد السائقين الضعفاء الموقعين الذين ليسوا في قائمة السائقين الضعفاء الرسمية لمايكروسوفت

الهندسة العكسية

هناك الكثير من المعلومات حول كيفية تحميل وعكس هندسة سائق، لذا راجع أيًا منها. الشيء الوحيد المثير للاهتمام في هذا السائق هو كيفية تعامله مع IOCTLs. لا يستخدم السائق جملة switch قياسية لتوزيع IOCTL. بدلاً من ذلك، يستخدم سلسلة من عمليات الطرح من كود IOCTL لإخفاء القيم المقصودة.

دالة التوزيع الرئيسية (معالج IRP_MJ_DEVICE_CONTROL)

root@kitploit:~
__int64 __fastcall DispatchDeviceControl(__int64 a1, __int64 a2, ...)
{
    // ...
    v7 = IoControlCode;  // v6[6] = Parameters.DeviceIoControl.IoControlCode

    v8  = v7 - 0x222000;
    v9  = v8 - 4;
    v10 = v9 - 4;
    v11 = v10 - 16;

    if ( v11 == 4 && InputBufferLength == 1036 )
    {
        // نسخ مخزن الإدخال بحجم 1036 بايت
        // استخراج أول DWORD على أنه PID (v41)
        // استدعاء sub_14000264C(v41, buffer) → يؤدي إلى الإنهاء
    }
}

استدعاء دالة ZwTerminateProcess()

root@kitploit:~
sub_14000264C(unsigned int a1, __int64 a2)
{
    // ...
    v4 = sub_140002848(a1);  // a1 = PID من buffer[0..3]
}

__int64 __fastcall sub_140002848(unsigned int a1)  // PID
{
    CLIENT_ID ClientId = { (HANDLE)a1, 0 };
    OBJECT_ATTRIBUTES ObjAttr = { sizeof(ObjAttr), 0, 0, 0, 0, 0 };
    HANDLE ProcessHandle;

    ZwOpenProcess(&ProcessHandle, PROCESS_ALL_ACCESS, &ObjAttr, &ClientId);
    if (NT_SUCCESS(status) && ProcessHandle)
    {
        ZwTerminateProcess(ProcessHandle, 0);
        ZwClose(ProcessHandle);
    }
    // ...
}

حساب كود IOCTL (عن طريق عكس عمليات الطرح)

الآن نعرف المتطلبات المسبقة للوصول إلى دالة الثغرة. بشكل أساسي v11 == 4 && InputBufferLength == 1036 لذا يمكننا العمل بشكل عكسي من الشرط للحصول على كود IOCTL.. شيء كهذا:

root@kitploit:~
v11 == 4
→ v10 - 16 == 4    → v10 = 20 (0x14)
→ v9  - 4  == 20   → v9  = 24 (0x18)
→ v8  - 4  == 24   → v8  = 28 (0x1C)
→ v7  - 0x222000 == 28 → v7 = 0x222000 + 0x1C = 0x22201C

وبعد ذلك يمكنك استخدام DeviceIoControl مع كود IOCTL لإنهاء العملية التي تريدها (بما في ذلك عمليات PPL)

آخر اختبار على إصدار ويندوز 25H2!

تنزيل الأداة