Da die Werte von HKCU von den Benutzern geändert werden können, könnte COM Hijacking als persistente Mechanismen verwendet werden. Mit procmon ist es einfach, nach COM-Registrierungen zu suchen, die nicht existieren und die ein Angreifer erstellen könnte, um persistiert zu werden. Filter:
RegOpenKey-Operationen.
wo das ErgebnisNAME NOT FOUND ist.
und der Pfad mit InprocServer32 endet.
Sobald Sie entschieden haben, welche nicht existierende COM Sie impersonieren möchten, führen Sie die folgenden Befehle aus. Seien Sie vorsichtig, wenn Sie sich entscheiden, eine COM zu impersonieren, die alle paar Sekunden geladen wird, da dies übertrieben sein könnte.
Windows-Aufgaben verwenden benutzerdefinierte Trigger, um COM-Objekte aufzurufen, und da sie über den Task Scheduler ausgeführt werden, ist es einfacher vorherzusagen, wann sie ausgelöst werden.
# Zeige 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"Aufgabenname: " $Task.TaskNameWrite-Host"Aufgabenpfad: " $Task.TaskPathWrite-Host"CLSID: " $Task.Actions.ClassIdWrite-Host}}}}# Beispielausgabe:# Aufgabenname: Beispiel# Aufgabenpfad: \Microsoft\Windows\Beispiel\# CLSID: {1936ED8A-BD93-3213-E325-F38D112938E1}# [mehr wie der vorherige...]
Wenn Sie die Ausgabe überprüfen, können Sie eine auswählen, die jedes Mal ausgeführt wird, wenn sich ein Benutzer anmeldet.
Jetzt suchen Sie nach der CLSID {1936ED8A-BD93-3213-E325-F38D112938EF} in HKEY_CLASSES_ROOT\CLSID und in HKLM und HKCU, normalerweise werden Sie feststellen, dass der Wert in HKCU nicht existiert.
# 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.
Dann können Sie einfach den HKCU-Eintrag erstellen, und jedes Mal, wenn der Benutzer sich anmeldet, wird Ihr Backdoor aktiviert.