Utilizzo di PowerShell per l'elevazione dei privilegi degli account locali

Utilizzo di PowerShell per l'elevazione dei privilegi degli account locali

L'aumento dei privilegi è l'uso da parte di un attaccante dei diritti correnti di un account per ottenere un ulteriore, generalmente più alto livello di accesso nel sistema. Anche se l'aumento dei privilegi può essere il risultato dell'exploitation di vulnerabilità zero-day, oppure di hacker di alto livello che stanno conducendo un attacco mirato, o di malware abilmente mascherati, nella maggior parte dei casi si verifica a causa di una cattiva configurazione del computer o dell'account. Sviluppando ulteriormente l'attacco, gli aggressori sfruttano una serie di vulnerabilità specifiche, il che complessivamente può portare a una catastrofica fuga di dati.

Perché gli utenti non dovrebbero avere diritti di amministratore locale?

Se sei un esperto di sicurezza, può sembrare ovvio che gli utenti non dovrebbero avere diritti di amministratore locale, poiché ciò:

  • Rende i loro account più vulnerabili a vari attacchi
  • Rende quegli attacchi molto più gravi

Sfortunatamente, per molte organizzazioni questo rimane ancora un argomento molto controverso e spesso accompagnato da vivaci discussioni (vedi ad esempio, il mio supervisore dice che tutti gli utenti dovrebbero essere amministratori locali). Senza addentrarci nei dettagli di questa discussione, riteniamo che l'attaccante abbia ottenuto diritti di amministratore locale sul sistema esaminato: o attraverso un exploit, o perché le macchine non erano adeguatamente protette.

Passo 1. Risoluzione inversa dei nomi DNS tramite PowerShell

Per impostazione predefinita, PowerShell è installato su molte workstation locali e su gran parte dei server Windows. E sebbene possa sembrare un po' esagerato definirlo uno strumento incredibilmente utile per l'automazione e la gestione, è altrettanto capace di trasformarsi in un malware fileless (programma di hacking che non lascia tracce di attacco).

Nel nostro caso, l'attaccante inizia a eseguire una ricognizione di rete utilizzando uno script PowerShell, iterando attraverso lo spazio degli indirizzi IP della rete, cercando di determinare se un determinato IP si risolve in un nodo e, in caso affermativo, qual è il nome di rete di quel nodo.
Ci sono molti modi per eseguire questo compito, ma l'utilizzo del cmdlet Get-ADComputer è un'opzione affidabile, poiché restituisce un insieme di dati molto ricco su ogni nodo:

 import-module activedirectory Get-ADComputer -property * -filter { ipv4address -eq '10.10.10.10'}

Se la velocità di funzionamento nelle grandi reti causa problemi, è possibile utilizzare la chiamata di sistema DNS inversa:

[System.Net.Dns]::GetHostEntry('10.10.10.10').HostName

Utilizzo di PowerShell per l'elevazione dei privilegi degli account locali

Questo metodo di enumerazione dei nodi nella rete è molto popolare, poiché la maggior parte delle reti non utilizza un modello di sicurezza a fiducia zero e non tiene traccia delle richieste DNS interne per picchi di attività sospetti.

Passo 2: Selezione dell'obiettivo

Il risultato finale di questo passaggio è la creazione di un elenco di nomi host dei server e delle workstation, che può essere utilizzato per continuare l'attacco.

Utilizzo di PowerShell per l'elevazione dei privilegi degli account locali

A giudicare dal nome, il server 'HUB-FILER' sembra un obiettivo degno, poiché nel tempo i server di file tendono ad accumulare un gran numero di cartelle di rete e accessi eccessivi da parte di un'ampia varietà di persone.

La visualizzazione tramite Esplora file di Windows ci consente di determinare la presenza di una cartella condivisa aperta, ma il nostro attuale account non ha accesso (probabilmente abbiamo solo diritti di elenco).

Passo 3: Esaminare le ACL

Ora sul nostro host HUB-FILER e sulla cartella condivisa target share, possiamo eseguire uno script PowerShell per ottenere l'elenco delle ACL. Possiamo farlo dalla macchina locale, poiché abbiamo già i diritti di amministratore locale:

(get-acl hub-filershare).access | ft IdentityReference,FileSystemRights,AccessControlType,IsInherited,InheritanceFlags –auto

Risultato dell'esecuzione:

Utilizzo di PowerShell per l'elevazione dei privilegi degli account locali

Da questo vediamo che il gruppo Utenti di Dominio ha accesso solo per l'elenco, mentre il gruppo Helpdesk ha anche diritti di modifica.

Passo 4: Identificazione degli Account

Eseguendo Get-ADGroupMember, potremo ottenere tutti i membri di questo gruppo:

Get-ADGroupMember -identity Helpdesk

Utilizzo di PowerShell per l'elevazione dei privilegi degli account locali

In questo elenco vediamo l'account del computer che abbiamo già identificato e al quale abbiamo già avuto accesso:

Utilizzo di PowerShell per l'elevazione dei privilegi degli account locali

Passo 5: Utilizzare PSExec per operare dall'account del computer

PsExec di Microsoft Sysinternals consente di eseguire comandi nel contesto dell'account di sistema SYSTEM@HUB-SHAREPOINT, che, come sappiamo, è membro del gruppo target Helpdesk. Quindi, è sufficiente eseguire:

PsExec.exe -s -i cmd.exe

Tuttavia, avete pieno accesso alla cartella destinazione HUB-FILERshareHR, poiché lavorate nel contesto dell'account del computer HUB-SHAREPOINT. E con questo accesso, i dati possono essere copiati su un dispositivo di archiviazione portatile o estratti e trasferiti tramite la rete.

Passo 6: Rilevamento di questo attacco

Questa specifica vulnerabilità nella configurazione dei diritti degli account (account dei computer che accedono a condivisioni di rete anziché account di utenti o account di servizio) può essere rilevata. Tuttavia, senza gli strumenti giusti, è molto difficile farlo.

Per rilevare e prevenire questa categoria di attacchi, possiamo utilizzare DatAdvantage per identificare i gruppi con account di computer al loro interno, quindi revocare l'accesso. DatAlert va oltre e consente di creare un avviso specifico per uno scenario simile.

Nello screenshot qui sotto è mostrato un avviso utente che verrà attivato ogni volta che un account di computer accede ai dati sul server monitorato.

Utilizzo di PowerShell per l'elevazione dei privilegi degli account locali

I passaggi successivi con PowerShell

Vuoi saperne di più? Utilizza il codice di sblocco "blog" per l'accesso gratuito al completo corso video PowerShell e Fondamenti di Active Directory.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster