
وحدة PowerShell للطب الشرعي الرقمي لـ VMWare vSphere

تجمع الوحدة النمطية DFIR4vSphere الخاصة بـ PowerShell السجلات والأدلة الجنائية على كلٍ من مضيفات ESXi ووحدة تحكم vCenter.
للوحدة النمطية وظيفتان رئيسيتان:
تم تقديم DFIR4vSphere لأول مرة في CoRI&IN 2022 (Conférence sur la réponse aux incidents et l’investigation numérique). شرائح العرض التقديمي، باللغة الفرنسية، متاحة . كما تم تقديمه في قمة SANS DFIR Summit 2022، ويمكن .
تستخدم DFIR4vSphere الوحدة النمطية VMware PowerCLI، يرجى تثبيتها قبل استخدام الوحدة:
Install-Module VMware.PowerCLI -Scope CurrentUser
بعد التثبيت، حدد مسار وحدات PowerShell باستخدام الأمر التالي:
PS> $env:PSModulePath
انسخ مجلد DFIR4vSphere إلى أحد مسارات الوحدات، على سبيل المثال:
%USERPROFILE%\Documents\WindowsPowerShell\Modules
%ProgramFiles%\WindowsPowerShell\Modules
%SYSTEMROOT%\system32\WindowsPowerShell\v1.0\Modules
تم تثبيت الوحدة النمطية DFIR4vSphere، أعد تشغيل وحدة تحكم PowerShell ثم حمّل الوحدة:
PS> Import-module DFIR4vSphere
يجب عليك بعد ذلك الاتصال بخادم vCenter الذي تحقق فيه قبل بدء جمع البيانات:
PS> Connect-VIServer %VC_Name%
استخدم docker-compose لبناء الصورة، وتشغيل الحاوية، وتركيب وحدة تخزين لاسترجاع السجلات:
sudo docker-compose run dfir4vsphere
الوحدة النمطية جاهزة للاستخدام.
اجمع أحداث VI الخاصة بـ vCenter لآخر 30 يومًا:
$enddate = get-date
$startdate = $enddate.adddays(-30)
Start-VC_Investigation -StartDate $startdate -Enddate $enddate
نفّذ نفس عملية الجمع مع حزمة دعم vCenter، وافعل ذلك إذا كنت تشتبه في تعرض جهاز vCenter نفسه للاختراق، وفي هذه الحالة يجب عليك أيضًا إجراء تحقيق جنائي تقليدي على نظام لينكس لمضيف vCenter:
$enddate = get-date
$startdate = $enddate.adddays(-30)
Start-VC_Investigation -StartDate $startdate -Enddate $enddate -VCBundle
المعامل LightVIEvents سيجمع فقط أنواع الأحداث التي تُعتبر ذات أهمية. استخدم هذا الخيار إذا كانت البنية التحتية قيد التحقيق كبيرة وكان الجمع العادي بطيئًا جدًا.
$enddate = get-date
$startdate = $enddate.adddays(-30)
Start-VC_Investigation -StartDate $startdate -Enddate $enddate -LightVIEvents
باستخدام LightVIEventTypesId يمكنك تحديد أنواع الأحداث التي ترغب في جمعها. القائمة الكاملة لمعرّفات أنواع الأحداث متاحة هنا. على سبيل المثال، لاسترجاع أحداث المصادقة فقط على vCenter، يمكنك تشغيل الأمر التالي:
$enddate = get-date
$startdate = $enddate.adddays(-30)
Start-VC_Investigation -StartDate $startdate -Enddate $enddate -LightVIEvents -LightVIEventTypesId "com.vmware.sso.LoginSuccess","com.vmware.sso.LoginFailure"
الاحتفاظ الافتراضي بسجلات أحداث VI هو 30 يومًا، ولكن يمكنك محاولة استرجاع أحداث أقدم. في بعض الأحيان يتم استرجاع سجلات تتجاوز استراتيجية الاحتفاظ المكوّنة.
يقبل هذا الأمر مضيف ESXi كمدخلات إما باسمه أو باستخدام cmdlet Get-VMHost الخاص بـ PowerCLI. على سبيل المثال، لإجراء جمع أساسي على جميع مضيفات ESXi المرتبطة بـ vCenter:
Get-VMHost | Start-ESXi_Investigation
سيقوم الأمر أعلاه بتوليد عدة ملفات CSV تصف العمليات الجارية والاتصالات المفتوحة والحسابات المحلية، كما يسترجع إعدادات تكوين متنوعة...
إذا كنت بحاجة أيضًا إلى استرجاع السجلات المحلية لـ ESXi (مثل shell.log أو auth.log) فستحتاج إلى إنشاء حزمة دعم.
الأمر التالي يسترجع كل ESXi لمجموعة (cluster) معينة وينشئ حزمة دعم لكل مُشغّل افتراضي.
Get-VMHost -Location %ClusterName% | Start-ESXi_Investigation -ESXBundle
يمكنك أيضًا استهداف مضيف ESXi معين وتوليد حزمة الدعم الخاصة به عن طريق إعطاء اسمه.
Start-ESXi_Investigation -Name %ESXi% -ESXBundle
قد يستغرق إنشاء حزم الدعم لكل ESXi مرتبط بـ vCenter بعض الوقت في البيئات الكبيرة.
الملفات التي تولّدها كل وظيفة هي:
سيؤدي تشغيل الوظائف المختلفة إلى إنشاء بنية دليل مشابهة:
DFIR4vSphere_Collection
│ Start-ESXi_Investigation.log
│ Start-VC_Investigation.log
│ VC_ConnectionInfo_%VC_Name%.csv
| VC_ESXiInventory_%VC_Name%.csv
│ VC_Permissions_%VC_Name%.csv
│ VC_Users_%VC_Name%.csv
└───%ESX_Name1%
│ │ ESXi_%ESX_Name1%_DomJoin.csv
│ │ ESXi_%ESX_Name1%_General.csv
│ │ ESXi_%ESX_Name1%_Hostd.log
│ │ ESXi_%ESX_Name1%_Network_ARPCache.csv
│ │ ESXi_%ESX_Name1%_Network_DNS.csv
│ │ ESXi_%ESX_Name1%_Network_IPv4.csv
│ │ ESXi_%ESX_Name1%_Network_IPv4routes.csv
│ │ ESXi_%ESX_Name1%_Network_Netstat.csv
│ │ ESXi_%ESX_Name1%_Network_VMs.csv
│ │ ESXi_%ESX_Name1%_Network_vSwitchs.csv
│ │ ESXi_%ESX_Name1%_Services.csv
│ │ ESXi_%ESX_Name1%_Software_BaseImage.csv
│ │ ESXi_%ESX_Name1%_Software_Profile.csv
│ │ ESXi_%ESX_Name1%_Software_VIB.csv
│ │ ESXi_%ESX_Name1%_Software_VIBSigCheck.csv
│ │ ESXi_%ESX_Name1%_Storage_FileSystem.csv
│ │ ESXi_%ESX_Name1%_Storage_IOFilter.csv
│ │ ESXi_%ESX_Name1%_System_Accounts.csv
│ │ ESXi_%ESX_Name1%_System_Advanced-delta.csv
│ │ ESXi_%ESX_Name1%_System_Certstore.csv
│ │ ESXi_%ESX_Name1%_System_ExecPolicy.csv
│ │ ESXi_%ESX_Name1%_System_GuestRepo.csv
│ │ ESXi_%ESX_Name1%_System_modules.csv
│ │ ESXi_%ESX_Name1%_System_Kernel-Delta.csv
│ │ ESXi_%ESX_Name1%_System_permissions.csv
│ │ ESXi_%ESX_Name1%_System_process.csv
│ │ ESXi_%ESX_Name1%_System_version.csv
└───%ESX_Name2%
│ │ ESXi_%ESX_Name2%_DomJoin.csv
│ │ ESXi_%ESX_Name2%_General.csv
│ │ ...
└───Support_Bundles
│ │ esx-%ESX_Name1%-YYY-MM-DD.tgz
│ │ esx-%ESX_Name2%-YYY-MM-DD.tgz
│ │ vcsupport-%GUID%.tgz
└───VI_Events_%VC_Name%
│ │ VIEvents_%EventTypeId1%.json
│ │ VIEvents_%EventTypeId2%.json
│ │ ...
│ └───YYYY-MM-DD
│ | │ VIEvents_YYYY-MM-DD_HH-00-00.json
│ | │ ...
│ └───YYYY-MM-DD
│ │ │ VIEvents_YYYY-MM-DD_HH-00-00.json
│ │ │ ...
│ └───...
عند اكتمال الجمع باستخدام الوظيفتين، ستحصل على سجلات من:
في بعض حالات برامج الفدية، يوقف المهاجم (TA) خدمة VC وقد يقوم أيضًا بإعادة تعيين حسابات الجذر المحلية لـ ESXi. في هذه الحالة، فرصتك الوحيدة هي استعادة vCenter من النسخة الاحتياطية، وعندها سيعيد ESXi المخترَق الاتصال تلقائيًا بـ vCenter ويمكنك بعد ذلك تشغيل DFIR4vSphere. للوصول مرة أخرى إلى ESXi المخترَق باستخدام الحسابات المحلية، يمكنك إجراء إعادة تعيين لكلمة المرور عبر استدعاءات واجهة برمجة تطبيقات vCenter (إليك برنامجًا نصيًا للقيام بذلك https://www.hypervisor.fr/?p=5655)