
هذا هو PoC لتجاوز UAC باستخدام اختطاف DLL وإساءة استخدام التحقق من "Trusted Directories".
هذا هو إثبات مفهوم (PoC) لتجاوز UAC باستخدام اختطاف DLL وإساءة استخدام التحقق من "الدلائل الموثوقة".
يمكن استخدام السكريبت CsvToHeader.py المكتوب بلغة Python لإنشاء ملف رأس. بشكل افتراضي، سيستخدم ملف CSV dll_hijacking_candidates.csv الموجود هنا: dll_hijacking_candidates.csv.
سيتحقق السكريبت من كل ملف تنفيذي محمول (PE) للشروط التالية:
asInvokerhighestAvailablerequireAdministrator<autoElevate>true</autoElevate>
-c، سيتحقق السكريبت مما إذا كان DLL المراد اختطافه موجودًا في قائمة DLLs المستوردة من جدول PE.> python .\CsvToHeader.py -h
usage: CsvToHeader.py -f [DLL_PATH] -c
CsvToHeader can be used to generate a header file from a CSV.
optional arguments:
-h, --help show this help message and exit
-f [DLL_PATH] Path of the csv to convert (default="dll_hijacking_candidates.csv")
-c Enable import dll in PE (default=False)
-v, --version Show program's version number and exit
لإنشاء ملف الرأس، يمكنك استخدام الأمر التالي:
python CsvToHeader.py > dll_hijacking_candidates.h
الملفات التي سيتم استخدامها هي DLLHijacking.exe و test.dll.
DLLHijacking.exe هو الملف الذي سيتم استخدامه لإنشاء قائمة PE القابلة للاختراق. سيقوم بالخطوات التالية:
CreateFakeDirectory
دالة تقوم بإنشاء مجلد في C:\windows \system32.
نسخ الملفات إلى المجلد الجديد
C:\windows\system32\[TARGET.EXE] إلى C:\windows \system32\[TARGET.EXE][CUSTOM_DLL_PATH] إلى C:\windows \system32\[TARGET.DLL]التشغيل
تشغيل الملف التنفيذي من C:\windows \system32\[TARGET.EXE]
تنظيف المجلد الوهمي
دالة تقوم بحذف المجلد الذي تم إنشاؤه في الخطوة 1 والملفات من الخطوة 2.
التحقق من الاستغلال
التحقق من محتوى الملف C:\ProgramData\exploit.txt لمعرفة ما إذا كان الاستغلال ناجحًا.
سيقوم DLLHijacking.exe دائمًا بإنشاء ملف سجل exploitable.log بالمحتوى التالي:
مثال:
1,computerdefaults.exe,PROPSYS.dll
0,computerdefaults.exe,Secur32.dll
الأمر لتشغيله:
DLLHijacking.exe [DLL_PATH]
إذا لم يتم تمرير أي وسيط، سيستخدم السكريبت DLL test.dll المخزنة في موارد DLLHijacking.exe.
تم الاختبار على Windows 10 Pro (10.0.19043 N/A Build 19043).

test.dll هي مكتبة ديناميكية بسيطة سيتم استخدامها لمعرفة ما إذا كان الاستغلال ناجحًا.
سيقوم DLL بإنشاء ملف C:\ProgramData\exploit.txt بالمحتوى التالي:
سيتم حذف هذا الملف بمجرد اكتمال الاستغلال.
هذا المشروع تم إعداده لأغراض التعليم والاختبار الأخلاقي فقط. استخدام هذه البرامج لمهاجمة أهداف دون موافقة متبادلة مسبقة غير قانوني.
تقع على عاتق المستخدم النهائي مسؤولية الامتثال لجميع القوانين المحلية والولائية والفيدرالية المعمول بها.
لا يتحمل المطورون أي مسؤولية ولا يتحملون مسؤولية أي إساءة استخدام أو ضرر ناتج عن هذا البرنامج.