Poiché i valori di HKCU possono essere modificati dagli utenti, COM Hijacking potrebbe essere utilizzato come un meccanismo persistente. Utilizzando procmon è facile trovare registri COM cercati che non esistono e che un attaccante potrebbe creare per persistere. Filtri:
Operazioni RegOpenKey.
dove il Risultato è NOME NON TROVATO.
e il Percorso termina con InprocServer32.
Una volta deciso quale COM inesistente impersonare, esegui i seguenti comandi. Fai attenzione se decidi di impersonare un COM che viene caricato ogni pochi secondi, poiché potrebbe essere eccessivo.
Windows Tasks utilizzano Trigger personalizzati per chiamare oggetti COM e poiché vengono eseguiti tramite il Task Scheduler, è più facile prevedere quando verranno attivati.
# 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...]
Controllando l'output puoi selezionare uno che verrà eseguito ogni volta che un utente accede ad esempio.
Ora cercando il CLSID {1936ED8A-BD93-3213-E325-F38D112938EF} in HKEY_CLASSES_ROOT\CLSID e in HKLM e HKCU, di solito scoprirai che il valore non esiste in 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.
Poi, puoi semplicemente creare l'entry HKCU e ogni volta che l'utente accede, il tuo backdoor verrà attivato.