Meerkat

Meerkat هو مجموعة من وحدات PowerShell المصممة لجمع القطع الأثرية والاستطلاع لنقاط النهاية المستندة إلى Windows دون الحاجة إلى وكيل منشور مسبقًا. تشمل حالات الاستخدام فرز الاستجابة للحوادث، صيد التهديدات، مراقبة الأساس، مقارنات اللقطات، والمزيد.
القطع الأثرية
- استخدم نظام SIEM المفضل لديك (تحقق من مستودع SIEM!)
الفهرس
البداية السريعة
المتطلبات
- يتطلب Powershell 5.0 أو أعلى على جهاز "المسح".
- يتطلب Powershell 3.0 أو أعلى على الأنظمة المستهدفة. يمكنك جعل هذا متوافقًا للخلف أكثر مع PowerShell 2.0 عن طريق استبدال حالات "Get-CIMinstance" بـ "Get-WMIObject".
- يتطلب الوصول إلى WinRM.
التثبيت باستخدام Git
في وحدة تحكم الأوامر أو PowerShell، اكتب ما يلي...
git clone "https://github.com/TonyPhipps/Meerkat" "C:\Program Files\WindowsPowerShell\Modules\Meerkat"
للتحديث...
cd C:\Program Files\WindowsPowerShell\Modules\Meerkat
git pull
التثبيت باستخدام PowerShell
انسخ/الصق هذا في وحدة تحكم PowerShell
$Modules = "C:\Program Files\WindowsPowerShell\Modules\"
New-Item -ItemType Directory $Modules\Meerkat\ -force
Invoke-WebRequest https://github.com/TonyPhipps/Meerkat/archive/master.zip -OutFile $Modules\master.zip
Expand-Archive $Modules\master.zip -DestinationPath $Modules
Copy-Item $Modules\Meerkat-master\* $Modules\Meerkat\ -Force -Recurse
Remove-Item $Modules\Meerkat-master -Recurse -Force
للتحديث، ما عليك سوى تشغيل نفس مجموعة الأوامر مرة أخرى.
يمكن أيضًا استخدام الوظائف عن طريق فتح ملف .psm1 ونسخ محتوياته بالكامل ولصقها في وحدة تحكم PowerShell.
تشغيل Meerkat
سيقوم هذا الأمر بإخراج النتائج إلى C:\Users\YourName\Meerkat\
ملاحظة: لن تعود الوحدات التالية بنتائج إذا لم يتم تشغيلها بامتيازات إدارية
- AuditPolicy
- Drivers
- EventsLoginFailures
- Hotfixes
- RegistryMRU
- Registry
- Processes
- RecycleBin
التحليل
يتم توفير منهجيات وتقنيات التحليل في صفحات الويكي.
استكشاف الأخطاء وإصلاحها
تثبيت وحدة PowerShell
إذا لم يقم نظامك بتحميل الوحدات تلقائيًا في ملفك الشخصي، فقد تحتاج إلى استيراد الوحدة يدويًا.
Import-Module C:\Program Files\WindowsPowerShell\Modules\Meerkat\Meerkat.psm1
يوصى باتباع النهج التالي للمساعدة في تحديد مكان المشكلة الفعلية.
الاختبار 1 – هل يعمل Meerkat محليًا؟
- اختبر Meerkat على النظام المحلي
الاختبار 2 – هل يعمل المسح عن بُعد؟
ملاحظة: قم بإجراء هذا الاختبار باستخدام حساب لديه حقوق المسؤول المحلي على النظام المستهدف.
- اختبر Meerkat على نظام Windows عن بُعد
- Invoke-Meerkat -Computer RemoteName
الاختبار 3 – هل يمكنك إنشاء المهمة المجدولة وحساب MSA؟
- قم بإزالة أي مهام مجدولة موجودة متعلقة بـ Meerkat
- قم بإزالة أي حسابات MSA متعلقة بـ Meerkat
- قم بتكوين ملف Schedule-Meerkat.ps1، ثم قم بتشغيله.
الاختبار 4 – هل يعمل Meerkat-Task.ps1؟
ملاحظة: قم بإجراء هذا الاختبار باستخدام حساب لديه حقوق المسؤول المحلي على النظام المستهدف.
- قم بتكوين ملف Meerkat-Task.ps1 باستخدام # OPTION 1 (مضيف محلي)
- قم بتشغيل البرنامج النصي يدويًا.
الاختبار 5 – هل تعمل المهمة المجدولة وحساب MSA؟
- قم بتشغيل البرنامج النصي Meerkat-Task.ps1 عبر المهام المجدولة.
إذا فشل ذلك:
- تأكد من تمكين WinRM على المضيف البعيد
- تأكد من أن حساب MSA لديه حقوق المسؤول المحلي على المضيف البعيد
الاختبار 6 – هل يعمل Meerkat-Task.ps1 عن بُعد؟
- قم بتكوين ملف Meerkat-Daily-Task.ps1 باستخدام # OPTION 3 (مضيف بعيد، يوميًا)
- حدد مضيفًا بعيدًا في hosts.txt
- قم بتشغيل البرنامج النصي يدويًا باستخدام حساب لديه حقوق المسؤول المحلي على النظام البعيد.
الاختبار 7 – هل لدى حساب MSA الأذونات الصحيحة على المضيفين البعيدين؟
- قم بتكوين ملف Meerkat-Task.ps1 باستخدام # OPTION 3 (مضيف بعيد، يوميًا)
- حدد مضيفًا بعيدًا في hosts.txt
- قم بتشغيل البرنامج النصي Meerkat-Task.ps1 عبر المهام المجدولة.
الاختبار 8 – هل يعمل كل شيء الآن؟
- قم بتكوين ملف Meerkat-Task.ps1 باستخدام # OPTION 2 (فحص النطاق المؤتمت بالكامل)
- قم بتشغيل البرنامج النصي يدويًا باستخدام حساب لديه حقوق المسؤول المحلي على النظام البعيد.
- قم بتشغيل البرنامج النصي Meerkat-Task.ps1 عبر المهام المجدولة.
إضافة وحدة جديدة
- قم بإنشاء ملف .psm1 الجديد، ويفضل أن يكون من خلال نسخ وحدة موجودة ذات منطق مماثل واستخدامها كنقطة بداية.
- قم بتحديث اسم الوحدة
- باستخدام البحث والاستبدال، قم باستبدال جميع حالات اسم القالب
- قم بتحديث أقسام الملخص والوصف والمعلمات والأمثلة والملاحظات
- استبدل منطق process{} بالمنطق الجديد. تأكد من أنه يعيد مصفوفة من كائنات PowerShell المطابقة.
- احفظ الوحدة باسم مناسب.
- أضف اسم الوحدة الجديدة إلى Meerkat.psd1. يمكن القيام بذلك يدويًا أو عن طريق تشغيل /Utilities/Generate-ModuleManifest.ps1
- أضف الوحدة الجديدة إلى الجدول في هذا الملف README.md
- أضف إلى جدول القطع الأثرية.
- أضف الوحدة الجديدة إلى Invoke-Meerkat.psm1
- أضف إلى المعلمة m/mod/modules، بما في ذلك كل من ValidateSet ومصفوفة $Modules نفسها.
- في begin{}، أضف إلى $ModuleCommandArray
- في begin{}، أضف إلى كتلة التعليمات البرمجية
if ($All) {}
- إذا استغرقت الوحدة أكثر من بضع ثوانٍ، أضف أيضًا إلى كتلة التعليمات البرمجية
if ($Quick) {. هذا يمنع تشغيلها عندما يقوم المستخدم باستدعاء -Fast
لقطات الشاشة
مخرجات الأمر "Invoke-Meerkat"

ملفات المخرجات

مشاريع مماثلة
ما الذي يميز Meerkat؟
- خفيف الوزن. يتسع لقرص مرن!
- بصمة / تأثير صغير جدًا على الأهداف.
- يستفيد من Powershell و WMI/CIM.
- أسلوب الترميز يشجع على مراجعة الكود المناسبة والتعلم و"الاستعارة".
- لا يحتوي على مكتبات DLL أو مكونات مترجمة.
- مخرجات معيارية - الافتراضي هو .csv، ويمكنه دعم json و xml وما إلى ذلك بسهولة.