
VMWare vSphere फोरेंसिक्स के लिए पावरशेल मॉड्यूल

DFIR4vSphere PowerShell मॉड्यूल ESXi होस्ट और vCenter कंसोल दोनों पर लॉग और फोरेंसिक कलाकृतियाँ (artefacts) एकत्र करता है।
मॉड्यूल में दो मुख्य कार्य हैं:
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
मॉड्यूल उपयोग के लिए तैयार है।
पिछले 30 दिनों के vCenter VI इवेंट्स एकत्र करें:
$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 इवेंट्स के लिए डिफ़ॉल्ट लॉग अवधारण (retention) 30 दिन है, लेकिन आप पुराने इवेंट्स को पुनः प्राप्त करने का प्रयास कर सकते हैं। कभी-कभी लॉग्स कॉन्फ़िगर की गई अवधारण नीति से परे प्राप्त हो जाते हैं।
यह कमांड इनपुट के रूप में एक ESXi होस्ट को उसके नाम से या Get-VMHost PowerCLI cmdlet से प्राप्त करके लेगा। उदाहरण के लिए, vCenter से जुड़े सभी ESXi होस्ट पर मूल संग्रहण करने के लिए:
Get-VMHost | Start-ESXi_Investigation
उपरोक्त कमांड चल रहे प्रोसेस, खुले कनेक्शन, स्थानीय खातों का वर्णन करने वाली कई CSV फ़ाइलें उत्पन्न करेगा और विभिन्न कॉन्फ़िगरेशन सेटिंग्स प्राप्त करेगा...
यदि आपको ESXi के स्थानीय लॉग्स (जैसे shell.log या auth.log) भी प्राप्त करने की आवश्यकता है, तो आपको एक सपोर्ट बंडल उत्पन्न करना होगा।
नीचे दिया गया कमांड किसी दिए गए क्लस्टर के लिए प्रत्येक ESXi को प्राप्त करता है और प्रत्येक हाइपरवाइज़र के लिए एक सपोर्ट बंडल उत्पन्न करता है।
Get-VMHost -Location %ClusterName% | Start-ESXi_Investigation -ESXBundle
आप किसी विशेष ESXi होस्ट को लक्षित कर सकते हैं और उसका नाम देकर उसका सपोर्ट बंडल उत्पन्न कर सकते हैं।
Start-ESXi_Investigation -Name %ESXi% -ESXBundle
बड़े वातावरणों में vCenter से जुड़े प्रत्येक ESXi के लिए सपोर्ट बंडल उत्पन्न करने में कुछ समय लग सकता है।
प्रत्येक फ़ंक्शन द्वारा उत्पन्न फ़ाइलें निम्न हैं:
विभिन्न फ़ंक्शनों को चलाने से समान निर्देशिका संरचना उत्पन्न होगी:
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 को समाप्त (kill) कर देता है और यह अतिरिक्त रूप से स्थानीय रूट ESXi खातों को रीसेट कर सकता है। उस स्थिति में आपका एकमात्र विकल्प vCenter को बैकअप से पुनर्स्थापित करना है, समझौता किए गए ESXi फिर स्वचालित रूप से vCenter से पुनः जुड़ जाएंगे और फिर आप DFIR4vSphere लॉन्च कर सकते हैं। स्थानीय खातों के साथ समझौता किए गए ESXi तक पुनः पहुँचने के लिए आप vCenter API कॉल्स के माध्यम से पासवर्ड रीसेट कर सकते हैं (कार्रवाई करने के लिए यह एक स्क्रिप्ट है https://www.hypervisor.fr/?p=5655)