
D(COM) V(ulnerabilità) S(canner) alias coltello svizzero subdolo - Movimento laterale utilizzando oggetti DCOM
Ti sei mai chiesto come puoi muoverti lateralmente all'interno delle reti? o interagire con macchine remote senza allertare gli EDR?
Supponiamo di avere credenziali valide, o una sessione attiva con accesso a una macchina remota, ma senza un'opzione per eseguire un processo remoto in un modo noto, atteso o altamente monitorato (ad es. WMI, Task Scheduler, WinRM, PowerShell Remoting).
Per questi scenari, il framework DVS viene in soccorso.
Il framework DVS è un coltellino svizzero che ti consente di enumerare funzioni vulnerabili di oggetti DCOM remoti, lanciarle e persino lanciare attacchi utilizzandoli.
Il framework è sviluppato con una mentalità "Red Team" e utilizza metodi furtivi per compromettere macchine remote.
Il framework DVS contiene vari modi per bypassare l'hardening remoto contro DCOM riabilitando l'accesso DCOM da remoto e concedendo automaticamente le autorizzazioni necessarie all'utente attaccante.
Il framework può anche ripristinare le modifiche sulla macchina remota allo stato originale, prima dell'attacco - nascondendo queste modifiche ai difensori.
Il nostro principale insight è che lo strumento può anche eseguire comandi utilizzando oggetti DCOM non vulnerabili attraverso una tecnica aqsome (leggi sotto su Invoke-RegisterRemoteSchema)
Compatibile con PowerShell 2.0 e successivi
Video PoC su Youtube: DVS
Questo strumento è solo per scopi di test e educativi. Qualsiasi altro utilizzo di questo codice non è consentito. Usalo a tuo rischio.
L'autore non si assume ALCUNA responsabilità per l'uso improprio di questo strumento.
Utilizzandolo accetti il fatto che qualsiasi danno causato dall'uso di questo strumento è di tua responsabilità.
Accesso al registro remoto (MS-RRP)
AutoGrant è attiva, controlla i permessi di scrittura. altrimenti, controlla i permessi di letturaProvider di registro standard (Se il registro remoto è negato)
StdRegProv è accessibileAutoGrant è attiva, controlla i permessi di scrittura, altrimenti, controlla i permessi di letturaLo strumento DVS controlla prima se l'identità principale ha accesso alla macchina remota tramite i seguenti passaggi:
Azioni di base
SkipRegAuth non è attivo)
AutoGrant attivo), altrimenti fallisceadsi/WindowsIdentity), hanno il permesso di interagire con il DCOM (tramite query del registro remoto)AutoGrant attivo), altrimenti fallisceHKLM o HKCU)Invoke-DCOMObjectScan
Get-ExecutionCommand
Invoke-ExecutionCommand
Invoke-RegisterRemoteSchema
git clone https://github.com/ScorpionesLabs/DVS
powershell -ep bypass
PS> Import-Module .\DVS.psm1
PS> Get-Help Invoke-DCOMObjectScan -Detailed # Get details of the Invoke-DCOMObjectScan command
PS> Get-Help Get-ExecutionCommand -Detailed # Get details of the Get-ExecutionCommand command
PS> Get-Help Invoke-ExecutionCommand -Detailed # Get details of the Invoke-ExecutionCommand command
PS> Get-Help Invoke-RegisterRemoteSchema -Detailed # Get details of the Invoke-RegisterRemoteSchema command
La funzione Invoke-DCOMObjectScan ti consente di scansionare oggetti DCOM e trovare funzioni vulnerabili tramite un elenco di pattern o nomi di funzioni esatti che hai incluso in un file.
Esempi:
Enumera e scansiona l'oggetto MMC20.Application (ProgID) dalla macchina attaccante all'host DC01 senza interrogare il registro.
Invoke-DCOMObjectScan -Type Single -ObjectName "MMC20.Application" -HostList DC01 -SkipRegAuth -Username "lab\administrator" -Password "Aa123456!" -Verbose
Nota: Lo strumento non analizzerà i permessi ACL, e quando lo strumento avrà successo, risolverà tutte le informazioni sull'oggetto, tranne i dettagli menzionati sul registro (come nome oggetto, file eseguibile, ecc.)
Controlla se l'oggetto MMC20.Application (ProgID) è accessibile dalla macchina attaccante all'host DC01 senza prima interrogare e verificare l'elenco di accesso dell'oggetto DCOM.
PS> Invoke-DCOMObjectScan -Type Single -ObjectName "MMC20.Application" -HostList DC01 -SkipPermissionChecks -CheckAccessOnly -Verbose