
تقنية حقن شيل كود (shellcode) بلغة C++ باستخدام تشفير XOR وتحويل سلسلة UUID لتجاوز Windows Defender، مع إخفاء استدعاءات الدوال وتنفيذ الذاكرة عبر VirtualAlloc وEnumChildWindows.
تقنية أخرى لحقن الشيل كود باستخدام C++ تحاول تجاوز Windows Defender باستخدام سحر تشفير XOR وسلاسل UUID الجنونية :).
أولاً، قم بتوليد حمولة بتنسيق ثنائي (باستخدام إما Havoc أو CobaltStrike أو msfvenom). على سبيل المثال، في msfvenom، يمكنك فعل ذلك كالتالي (الحمولة التي أستخدمها هي لأغراض التوضيح، يمكنك استخدام أي حمولة تريدها):
msfvenom -p windows/messagebox -f raw -o shellcode.bin
ثم قم بتحويل الشيل كود (بالتنسيق الثنائي/الخام) إلى تنسيق سلسلة UUID باستخدام سكريبت Python3، bin_to_uuid.py:
./bin_to_uuid.py -p shellcode.bin -o uuid.txt
قم بتشفير XOR لسلاسل UUID الموجودة في uuid.txt باستخدام سكريبت Python3، xor_encryptor.py:
./xor_encryptor.py uuid.txt > xor_crypted_out.txt
انسخ مصفوفة النمط C الموجودة في الملف xor_crypted_out.txt، والصقها في ملف C++ كمصفوفة من نوع unsigned char، أي unsigned char payload[]{your_output_from_xor_crypted_out.txt}
تتألف تقنية حقن الشيل كود هذه من الخطوات المتتالية التالية:
VirtualAllocXOR للحمولة باستخدام قيمة مفتاح xorUuidFromStringA لتحويل سلاسل UUID إلى تمثيلها الثنائي وتخزينها في الذاكرة المخصصة سابقاً. يُستخدم هذا لتجنب استخدام واجهات برمجة تطبيقات مشبوهة مثل WriteProcessMemory أو memcpy.EnumChildWindows لتنفيذ الحمولة المحملة مسبقاً في الذاكرة (في الخطوة 1)memcpy أو WriteProcessMemory المعروفة بإثارة الإنذارات لدى برامج مكافحة الفيروسات/أنظمة كشف الاستجابة (AVs/EDRs)، بل يستخدم هذا البرنامج دالة واجهة برمجة تطبيقات ويندوز المسماة UuidFromStringA والتي يمكن استخدامها لفك تشفير البيانات وكذلك كتابتها في الذاكرة (أليس هذا رائعاً يا رفاق؟ ورجاءً لا تقولوا "لا!" :)).xor (السطر 85) إلى ما ترغب. ويجب فعل ذلك أيضاً في سكريبت ./xor_encryptor.py في Python3 بتغيير المتغير KEY. يجب أن يتطابق المفتاحان!اسم الملف التنفيذي الافتراضي (الصف 90) إلى اسم ملفك.mingw ولكن يمكنك استخدام أي مترجم تفضله. :)make


تم فحص الملف الثنائي باستخدام antiscan.me بتاريخ 01/08/2022.

https://research.nccgroup.com/2021/01/23/rift-analysing-a-lazarus-shellcode-execution-method/