
Incarcero هي أداة لإنشاء أجهزة افتراضية (VMs) مُجهّزة مسبقًا بأدوات تحليل البرمجيات الخبيثة وإعدادات أمنية مخصصة لتحليل البرمجيات الخبيثة دون أي تفاعل من المستخدم.
تحليل البرمجيات الخبيثة يشبه نزع فتيل القنابل. الهدف هو تفكيك وفهم برنامج صُمم لإلحاق الضرر، وغالبًا ما يكون مشوّشًا (أي معبأ) لتعقيد عملية التحليل.
إنكارسيرو هي أداة تنشئ أجهزة افتراضية (VMs) مهيأة مسبقًا بأدوات تحليل البرمجيات الخبيثة وإعدادات أمان مصممة خصيصًا لتحليل البرمجيات الخبيثة دون أي تفاعل من المستخدم.
بالإضافة إلى ذلك، يتضمن هذا المستودع على الأرجح أكبر مجموعة لرموز مصدرية للبرمجيات الخبيثة بالإضافة إلى وحدة تتيح للمستخدم تنزيل عينات برمجيات خبيثة من قواعد بيانات شائعة عبر الإنترنت.
ملاحظة: الملفات التنفيذية ذات الأسماء العامة مثل قيمة MD5 أو smbXXX.tmp لم يتم اكتشافها كبرمجيات خبيثة بواسطة VirusTotal في وقت الرفع، لكن هذا لا يعني أنها ليست عينة برمجية خبيثة. لا تتردد في إعداد وتحليل وتنفيذ هندسة عكسية على أي وجميع العينات في هذا المستودع، وإذا فعلت ذلك بالفعل، فأخبرني بنتائج تحقيقك.
dnf install ruby-devel gcc-c++ zlib-devel
vagrant plugin install winrm winrm-fs
apt install vagrant git python3-pip
apt install git python3-pip
pacman -Sy vagrant packer python-pip git
sudo pip3 install git+https://github.com/0x48piraj/incarcero.git#egg=incarcero
ملاحظة: بدءًا من Windows 10، يعمل Hyper-V دائمًا أسفل نظام التشغيل. نظرًا لأن VT-X يجب أن يُدار حصريًا بواسطة مشغّل افتراضي واحد فقط، فإن ذلك يتسبب في فشل VirtualBox (وincarcero). لتعطيل Hyper-V والسماح لـ VirtualBox بالعمل، نفّذ الأمر التالي في موجه أوامر بصلاحيات إدارية ثم أعد التشغيل: bcdedit /set hypervisorlaunchtype off. منذ الإصدار 6 من VirtualBox، أصبح يدعم استخدام Hyper-V كنواة تنفيذ احتياطية (سجل التغييرات)
تفترض الخطوات التالية أن لديك https://chocolatey.org/[Chocolatey] مثبتًا. بخلاف ذلك، اتبع إجراء التثبيت اليدوي.
ثبّت التبعيات:
choco install python vagrant packer git virtualbox
حدّث وحدة التحكم:
refreshenv
ثبّت incarcero:
pip3 install setuptools
pip3 install -U git+https://github.com/0x48piraj/incarcero.git#egg=incarcero
C:\Windows\System32\pip3 install setuptools
pip3 install -U git+https://github.com/0x48piraj/incarcero.git#egg=incarcero
نفّذ هذا الأمر بعد التثبيت العادي:
vagrant plugin install vagrant-aws
ملاحظة: تم اختبار ميزة AWS على Linux فقط في الوقت الحالي، ولا يدعم EC2 الإصدار 32-بت من سطح مكتب Windows 10.
يؤدي ذلك إلى إنشاء الصندوق الأساسي الذي يتم استيراده في Vagrant. بعد ذلك يمكنك إعادة استخدام نفس الصندوق عدة مرات لكل تحليل عينة.
نفّذ:
incarcero build <template>
يمكنك أيضًا سرد جميع القوالب المدعومة باستخدام:
incarcero list
سيؤدي هذا إلى بناء صندوق Vagrant جاهز للتحقيق في البرمجيات الخبيثة، ويمكنك الآن تضمينه في ملف Vagrantfile لاحقًا.
على سبيل المثال:
incarcero build win10_x64_analyst
يحتوي قسم الإعدادات على مزيد من المعلومات حول ما يمكن تكوينه باستخدام incarcero.
incarcero spin win10_x64_analyst <name>
سيؤدي هذا إلى إنشاء Vagrantfile مُعد للاستخدام في تحليل البرمجيات الخبيثة. انقله إلى المجلد الذي تختاره ونفّذ:
vagrant up
افتراضيًا، تتم مشاركة المجلد المحلي داخل الجهاز الافتراضي على سطح المكتب. يمكن تغيير ذلك بتعليق الجزء ذي الصلة من Vagrantfile.
على سبيل المثال:
incarcero spin win7_x86_analyst 20160519.cryptolocker.xyz
يمكن لـ incarcero رفع جهاز افتراضي والتفاعل معه على Amazon Web Services. للقيام بذلك، اتبع الخطوات التالية:
. ستحتاج incarcero إلى دلو S3 على AWS لرفع الجهاز الافتراضي قبل تحويله إلى AMI (Amazon Machine Image). إذا لم يكن لديك واحد، أنشئ واحدًا الآن.
. يتطلب مثيلك أيضًا مجموعة أمان تحتوي على قاعدة واحدة على الأقل تسمح بالاتصالات الواردة لـ WinRM (النوع: WinRM-HTTP، البروتوكول: TCP، نطاق المنفذ: 5985، المصدر: عنوان IP العام للمضيف).
. بعد ذلك، تحتاج إلى تكوين دور خدمة vmimport.
اتبع القسم المسمى VM Import Service Role من هذا الدليل.
يجب تنفيذ هذه الخطوات باستخدام حساب لديه صلاحيات iam:CreateRole و iam:PutRolePolicy.
. إذا تم استخدام الإعداد الافتراضي، فغيّر برنامج التشغيل الافتراضي (hypervisor) إلى aws واملأ الخيارات الإلزامية ذات الصلة. بخلاف ذلك، تأكد من إضافة جميع الخيارات المتعلقة بـ AWS إلى الإعداد المخصص لديك.
. أخيرًا، يمكنك اتباع الخطوات نفسها الموضحة في قسمي إنشاء الصندوق ومثيلات كل تحليل لتشغيل مثيلك!
ملاحظة: قد يستغرق استيراد AMI وقتًا طويلاً جدًا (حوالي ساعة)، ومع ذلك يمكنك التحقق من حالة المهمة من خلال هذا. في الوقت الحالي، يمكن بناء AMI واحد فقط لكل قالب.
ثبّت awscli باستخدام pip:
pip install awscli
قم بتكوين awscli باستخدام:
aws configure
ثم نفّذ:
aws ec2 describe-import-image-tasks
للاتصال بمثيل على السحابة باستخدام RDP، نفّذ هذا الأمر في نفس موقع ملف Vagrantfile الخاص بك:
vagrant rdp -- /cert-ignore
لكي يعمل هذا، سيتطلب المثيل مجموعة أمان تسمح باتصالات RDP الواردة (النوع: RDP، البروتوكول: TCP، نطاق المنفذ: 3389، المصدر: عنوان IP العام للمضيف).
ملاحظة: يمكنك تجاهل الخطأ التالي بأمان لأن rsync غير مطبق بعد: No host IP was given to the Vagrant core NFS helper. This is an internal error that should be reported as a bug.
لإيقاف مثيل على السحابة، نفّذ هذا الأمر في نفس موقع ملف Vagrantfile الخاص بك:
vagrant halt
يقع إعداد incarcero في دليل يتبع اصطلاحات نظام التشغيل المعتادة:
~/.config/incarcero/~/Library/Application Support/incarcero/C:\Users\<username>\AppData\Local\incarcero\incarcero\اسم الملف هو config.js ويتم نسخه من ملف مثال عند أول تشغيل.
مثال الإعداد موثق.
يستخدم incarcero virtualbox كخلفية افتراضية بشكل افتراضي، ولكن منذ الإصدار 0.3.0 تمت إضافة دعم ESXi / vSphere. تتوفر ملاحظات حول الخطوات المطلوبة لدعم ESXi / vSphere. نظرًا لأن إعداد كل شخص يختلف قليلاً، لا تتردد في فتح مشكلة (issue) إذا واجهت مشكلة أو تحسين وثائقنا عبر طلب سحب (pull request).
نستكشف مفهوم الملفات الشخصية التي تُخزن بشكل منفصل عن الإعدادات ويمكن استخدامها لإنشاء ملفات أو تعديل السجل (Registry) أو تثبيت حزم إضافية. راجع profile-example.js للحصول على مثال للإعداد. هذه الإمكانية الجديدة تجريبية وقابلة للتغيير بينما نجربها.
حاليًا، لا يدعم incarcero الإنشاء التلقائي لمجموعات الأمان، لذا سيتعين عليك استخدام وحدة تحكم AWS لإنشاء مجموعاتك. ومع ذلك، باستخدام مكتبة Boto3 يجب أن تكون هناك طريقة لتنفيذ ذلك.
هذا المستودع لأغراض البحث فقط، واستخدام هذا الكود هو مسؤوليتك.
أنا لا أتحمل أي مسؤولية و/أو تبعة تجاه كيفية اختيارك لاستخدام أي من الكود المصدري المتاح هنا. باستخدامك أيًا من الملفات المتاحة في هذا المستودع، فأنت تدرك أنك توافق على الاستخدام على مسؤوليتك الخاصة. مرة أخرى، جميع الملفات المتاحة هنا هي لأغراض التعليم و/أو البحث فقط.
أنا لست مؤلف أي من الكود المتاح هنا. يحتوي هذا المستودع على عينات من الكود المصدري لبرمجيات خبيثة تم تسريبها عبر الإنترنت (وتم العثور عليها في مصادر متعددة أخرى)، وقد رفعتها إلى GitHub لتبسيط العملية لأولئك الذين يرغبون في تحليل الكود.
أي إجراءات و/أو أنشطة متعلقة بالمحتوى الموجود داخل هذا المستودع هي مسؤوليتك وحدك. يمكن أن يؤدي إساءة استخدام المعلومات في هذا المستودع إلى توجيه تهم جنائية للأشخاص المعنيين. لن أتحمل المسؤولية في حال توجيه أي تهم جنائية ضد أي أفراد يسيئون استخدام الكود الموجود في هذا المستودع لخرق القانون.
لا يروج هذا المستودع لأي نشاط متعلق بالقرصنة. جميع المعلومات في هذا المستودع هي لأغراض تعليمية فقط.
تم إحياء هذا المشروع بمساعدة malboxes.