هذه تقنية جديدة تمامًا لحقن Shellcode للتهرب من AVS و EDRs. هذه التقنية مستوحاة من الدوس الوحدة ولديها بعض أوجه التشابه. فيما يتعلق بهذا التاريخ (23-01-2022) لا يجدها Hollows-Hunter.
أكبر ميزة لهذه التقنية هي أنها لا تكتب وحدة أو PE بأكملها ، وهي وظيفة واحدة فقط ويمكن لعملية الهدف استخدام أي وظيفة أخرى من الوحدة النمطية الهدف.
العيب هو أنه لن ينجح في كل وظيفة في البرية (ولكنها ستعمل لمعظمها) ، والتفسير الدقيق في مدونتي: جيد ، والسيئة والوظيفة الداس.
ملاحظة: من المحتمل أن AV سيعلم هذا ، إذا كان التوقيع عبارة عن توقيع من MSFVENOM/Metasploit ، فهذا جيد! تحتاج فقط إلى تغيير رمز الصدفة أو تشفيره.
استكمال: هذا ليس هو أول POC Avaliable و Rastamouse كتب منشور مدونة يمثل شيئًا مشابهًا في C#.
يمكنك إما تضمين الرأس لبرنامجك مثل هذا:
# include " functionstomping.hpp "
int main () {
// Just get the pid in any way and pass it to the function.
DWORD pid = 3110 ;
FunctionStomping (pid);
return 0 ;
}أو استخدم برنامج الصدأ:
cd functionstomping
cargo b
functionstomping.exe < pid >بعد تشغيل هذا البرنامج ، يجب عليك الاتصال بالوظيفة من العملية عن بُعد! (إذا استخدمت الوظيفة الافتراضية CreateFile ، فيجب عليك الاتصال بها من العملية البعيدة!).
حاليًا ، فإن رمز shellcode هو فقط لوباء حاسبة ، ولكن كل ما عليك فعله هو استبدال unsigned char shellcode[] برمز الصدفة الخاص بك. لقد استخدمت C ++ 17 و VS2019 لتجميع البرنامج برأس C ++ وإصدار Rust 2021 لتجميع برنامج Rust (يمكنك رؤية التبعيات في Cargo.toml).

لست مسؤولاً بأي طريقة عن أي نوع من الضرر الذي يحدث لجهاز الكمبيوتر / البرنامج الخاص بك كسبب لهذا المشروع. أنا أقبل بسعادة المساهمة ، وأقدم طلب سحب وسأراجعها!
وحدات
إخفاء الذاكرة الخبيثة بواسطة cyberark
نسخة راستاموز