انتحال DLL (اختطاف DLL)

تحية للجميع. في الوقت الحالي ، فتحت OTUS مجموعة لإطلاق دورة الهندسة العكسية المحدثة في أبريل . تحسبًا لبدء الدورة ، قمنا بإعداد ترجمة لمواد مثيرة للاهتمام.




في نظام التشغيل Windows ، تبحث التطبيقات والخدمات عند بدء التشغيل عن ملفات DLL الضرورية لعملها بشكل صحيح. إذا لم يتم العثور على ملفات DLL هذه أو تم تحميلها بطريقة غير آمنة (يتم استدعاء DLLs دون استخدام المسار الكامل) ، فيمكنك حينئذٍ زيادة الامتيازات من خلال إجبار التطبيق على تنزيل ملف DLL ضار وتنفيذه.

وتجدر الإشارة إلى أنه عندما يحتاج التطبيق إلى تنزيل ملف DLL ، يتم البحث عنه بالترتيب التالي:

  • الدليل الذي يتم تنزيل التطبيق منه
  • C: \ Windows \ System32
  • C: \ Windows \ System
  • C: \ Windows
  • دليل العمل الحالي
  • الدلائل في متغير بيئة PATH المستخدم
  • الدلائل في متغير بيئة نظام PATH

الخطوة 1 - العمليات مع ملفات DLL المفقودة


الخطوة الأولى هي العثور على العمليات التي تعمل على النظام ومحاولة تحميل DLL المفقودة. يمكن القيام بذلك باستخدام Sysinternals Process Monitor من خلال تطبيق عامل التصفية المدرج أدناه:


مرشحات Procmon للبحث عن العمليات التي تقوم بتنزيل Missing DLLs

Process Monitor ستحدد ملفات DLL المفقودة التي يحاول التطبيق تحميلها ويظهر المسار الفعلي الذي يتم البحث عن ملف DLL هذا.


عملية تحتوي على ملف DLL مفقود

في هذا المثال ، لا Bginfo.exeتحتوي العملية على العديد من ملفات .dll التي يمكن استخدامها لرفع الامتيازات.

الخطوة 2 - أذونات المجلد


إذا تم تثبيت البرنامج في الدليل C:\بدلاً من ذلك C:\Program Files، فسيكون لدى المستخدمين المصادق عليهم حق الوصول إلى هذا الدليل افتراضيًا. بالإضافة إلى ذلك ، تتم عادةً إضافة برامج مثل Perl و Python و Ruby وما إلى ذلك إلى متغير PATH. هذا يجعل من الممكن زيادة الامتيازات ، حيث يمكن للمستخدم كتابة ملف DLL ضار إلى هذا الدليل ، والذي سيتم تحميله في المرة التالية التي تبدأ فيها العملية والحصول على حقوق هذه العملية.


أذونات المجلد ضعيفة

الخطوة 3 - استبدال DLL


باستخدام Metasploit ، يمكنك إنشاء DLL حمولة كجلسة عمل مع امتيازات الخدمة.


إنشاء DLL الخبيث

يتم تشغيل العملية Bginfo.exeضمن SYSTEM ، لذلك بعد إعادة تشغيل DLL الخبيثة سيكون لها نفس الامتيازات ، حيث يتم تحميل DLL وتنفيذه بواسطة هذه العملية.


تم تشغيل العملية ضمن SYSTEM.

كما هو موضح أعلاه ، لا يمكن العثور على العملية Riched32.dll، لذا pentestlab.dllيجب إعادة تسميتها إلى Riched32.dll. سيؤدي ذلك إلى إرباك التطبيق وسيحاول تحميل DLL لأنه يعتقد أنه ملف DLL شرعي. يجب وضع ملف DLL الخبيث في أحد المجلدات التي يبحث فيها Windows عن ملفات DLL.


تمت إعادة تسمية مكتبة DLL الضارة واستضافتها

كما ترى أدناه ، عند إعادة تشغيل الخدمة باستخدام ملف DLL الانتحال ، تفتح جلسة Meterpreter مع امتيازات النظام.


Metasploit - تصعيد الامتيازات من خلال خداع DLL

Powersploit


يمكن إجراء عملية استبدال مكتبات DLL من خلال PowerSploit ، حيث توجد ثلاث وحدات تساعد في العثور على الخدمات التي تحتوي على ملفات DLL المفقودة ، وفي العثور على المجلدات التي لها حقوق التعديل وإنشاء ملفات DLL. سوف تجد

الوحدة النمطية Find-ProcessDLLHijackكافة العمليات في النظام التي تحاول تحميل DLL المفقودة.


PowerSploit - الكشف عن العمليات باستخدام ملفات DLL المفقودة

والخطوة التالية هي تحديد المجلدات حيث يمكن للمستخدم تعديل المحتويات. سيتم العثور على المجلدات حيث يجب طرح ملفات DLL الخبيثة.


البحث عن مجلدات لها حقوق التعديل

الخطوة الأخيرة هي إنشاء ملف DLL ضار في أحد المجلدات بأذونات تعديل (M).


قم بإنشاء DLL في مجلد بأذونات ضعيفة

استنتاج


لكي تكون قادرًا على رفع الامتيازات من خلال انتحال DLL ، يجب استيفاء الشروط التالية:

  • أذونات الكتابة إلى مجلد النظام
  • تثبيت البرنامج في دليل غير الدليل الافتراضي
  • خدمة تعمل تحت SYSTEM وتحاول تحميل DLL مفقود
  • إعادة تشغيل الخدمة

Program Filesليس من الصعب العثور على التطبيقات غير المثبتة ، لأنه بصرف النظر عن تطبيقات الجهات الخارجية التي لا تضطر إلى التثبيت على طول هذا المسار ، هناك العديد من البرامج المخصصة الموجودة خارج هذه المجلدات المحمية. بالإضافة إلى ذلك ، هناك عدد من خدمات Windows ، مثل وحدات IKEEXT (IKE و AuthIP IPsec Keying Modules) مع ملفات DLL ( wlbsctrl.dll) المفقودة ، والتي يمكن استخدامها إما يدويًا أو تلقائيًا. توجد وحدة Metasploit خاصة لـ IKEEXT:

exploit/windows/local/ikeext_service



.



All Articles