Shinigami هي أداة تجريبية مصممة لاكتشاف وتفكيك البرامج الضارة المزروعة التي يتم حقنها عبر عملية التجويف أو إجراءات التعبئة العامة.
تعمل الأداة عن طريق ربط وظائف NT المتعلقة بعملية التجويف ووضع علامة على صفحات الذاكرة القابلة للتنفيذ حديثًا باستخدام بتة حماية الصفحة. تسمح هذه التقنية للشينيجامي باكتشاف تغييرات التدفق غير المباشرة، والتي تنتج عادةً عن كود القشرة أو الكود غير المعبأ، والتي غالبًا ما تشير إلى وجود برامج ضارة. يقوم Shinigami بإنشاء الهدف القابل للتنفيذ في حالة معلقة ويحقن مكتبة DLL تسمى "Ichigo". تقوم هذه المكتبة تلقائيًا بربط كل وظيفة ضرورية لاكتشاف الغرسة واستخراجها. بمجرد استخراج القطعة الأثرية بالكامل، ستقتل الأداة العملية.
قد تختلف فعالية الشينيغامي اعتمادًا على البرامج الضارة المحددة التي تستهدفها. ومع ذلك، فهي إضافة قيمة لأي مجموعة أدوات لتحليل البرامج الضارة وقد تكون مفيدة في اكتشاف وتحليل البرامج الضارة التي تستخدم إجراءات تفريغ العمليات أو إجراءات التعبئة العامة.
هام: هذه أداة تفريغ ديناميكية ولا ينبغي تشغيلها على جهازك الشخصي أو في معمل تحليل ثابت
تتضمن طريقة Shinigami الأساسية لاستخراج الغرسات المحقونة باستخدام عملية التجويف ربط وظيفتين NT: NtResumeThread وNtWriteVirtualMemory. وإليك كيف يعمل:
ربط NtResumeThread
خطاف NtWriteVirtualMemory
--stop-at-write
. تحدد وحدة فك الحزم العامة الخاصة بـ Shinigami مناطق الذاكرة المخصصة حديثًا باستخدام بت PAGE_GUARD، كما أنها تطبق هذا البت إذا تم استبدال حماية أي منطقة ذاكرة موجودة بشيء قابل للتنفيذ. باستخدام صفحات الحماية، يمكنه تتبع منطقة الذاكرة التي سيتم استخدامها لتخصيص بعض كود القشرة أو صور PE.
لكل كود قشرة يتم اكتشافه، يقوم الشينيغامي بحفظ كود القشرة الخام نفسه على القرص. كما يقوم أيضًا بمسح منطقة الذاكرة تلك للعثور على أي ملفات PE وحفظها أيضًا. يتعامل الشينيغامي مع كل تنفيذ مختلف لأكواد القشرة كمرحلة جديدة، لذا في النهاية، سيكون لديك دليل العمل الخاص بك مع ملفات تسمى filename_shellcode_STAGENUM.bin or .exe
.
تحتوي الأداة على خيارين:
Usage: Shinigami [--help] [--version] [--output VAR] [--stop-at-write] [--verbose] [--only-executables] [--exported VAR] program_name
Positional arguments:
program_name Name of the program to execute
Optional arguments:
-h, --help shows help message and exits
-v, --version prints version information and exits
-o, --output Directory to dump artefacts
--stop-at-write Unhollow: Stop the execution when the PE file is being to be written
--verbose Display a verbose output
-p, --only-executables Only extract PE artefacts
-e, --exported Exported Function: Choose a exported function to execute if the target is a DLL (rundll will be used)
بعض الخيارات المهمة هي:
-o, --output : يحدد الدليل لتفريغ العناصر المستخرجة. افتراضيًا، سيتم حفظ العناصر المستخرجة في دليل يسمى الإخراج في دليل العمل الحالي. يمكنك تحديد دليل مختلف عن طريق تمرير مساره كوسيطة.
--stop-at-write : يتم استخدام هذه الوسيطة أثناء تفريغ العملية المجوفة. عندما يكتشف الشينيغامي أن ملف PE يتم كتابته في العملية المجوفة، فإنه سيوقف التنفيذ ويحفظ ملف PE المستخرج. يمكن أن يكون هذا الخيار مفيدًا إذا كنت تريد تجنب تنفيذ العملية المجوفة بأكملها وتحتاج فقط إلى استخراج التعليمات البرمجية التي تم فك حزمتها.
--verbose : يعرض إخراجًا مطولًا. يمكن أن يكون هذا مفيدًا لتصحيح الأخطاء أو فهم الأعمال الداخلية للشينيجامي.
اختبار ضد Dridex |
بعد الانتهاء من الاستخراج، يتم إيقاف العملية وسيكون لديك (آمل ذلك) PE المستخرج:
زرع ملقاة |
سيتم التخلص من الغرسة المكتشفة باتباع التنسيق الموضح في قسم طرق الكشف
تفريغ محمل عشوائي موصوف هنا |
في المثال أعلاه، اكتشف Shinigami تلقائيًا سلوك المُحمل العام واستخرج جميع أكواد القشرة والصور المنفذة بداخله، دون الحاجة إلى أي مفاتيح محددة لتمكين أو تعطيل روتين التفريغ. كان هذا ممكنًا لأن الشينيغامي يشارك بعض الوظائف مع الوحدة غير المجوفة، باستخدام الخطافات المشتركة التي توفرها مكتبة Gancho.
تفريغ Emotet DLL |
يتمتع Shinigami أيضًا بدعم DLL والقدرة على إعادة بناء الثنائيات المحقونة باستخدام رؤوس DOS المنفصلة. والجدير بالذكر أن عينات البرامج الضارة مثل Emotet تستخدم هذه التقنية للتهرب من الماسحات الضوئية PE الموجودة في الذاكرة. يكتشف الشينيجامي مثل هذه الأجزاء المفقودة (رأس DOS) ويستخدم الاستدلال لإعادة بنائها.
احصل على نكهتك في صفحة الإصدار.
سيكون من المدهش أن تساعد هذا المشروع، لذلك إذا أردت، فإليك التبعيات والخطوات
الرجاء فتح مشكلة أو سحب طلب لأية تغييرات ترغب في إجرائها.
هذه الصورة الرائعة للتميمة مستوحاة من Bleach وتم إنشاؤها بواسطة Dall-E.