Utilizzo di PowerShell per l'escalation dei privilegi delle account locali

Utilizzo di PowerShell per l'escalation dei privilegi delle account locali

L'escalation dei privilegi è l'uso da parte di un attaccante dei diritti attuali di un account per ottenere accesso aggiuntivo, generalmente a un livello superiore nel sistema. Sebbene l'escalation dei privilegi possa derivare dall'exploitation di vulnerabilità zero-day, da attacchi mirati da parte di hacker esperti, o da malware abilmente mascherato, nella maggior parte dei casi è causata da una cattiva configurazione del computer o dell'account. Proseguendo con l'attacco, gli aggressori sfruttano diverse vulnerabilità che, nel loro insieme, possono portare a una catastrofica perdita di dati.

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

Se sei un esperto di sicurezza, potrebbe sembrare ovvio che gli utenti non debbano avere diritti di amministratore locale, in quanto ciò:

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

Sfortunatamente, per molte organizzazioni questa è ancora una questione molto controversa, spesso accompagnata da animate discussioni (vedi ad esempio, il mio supervisore dice che tutti gli utenti devono essere amministratori locali). Senza approfondire i dettagli di questa discussione, riteniamo che un attaccante abbia ottenuto i diritti di amministratore locale sul sistema in esame: o attraverso un exploit, o perché le macchine non erano state 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. Anche se non senza esagerazione, è considerato uno strumento incredibilmente utile per l'automazione e la gestione, è altrettanto capace di trasformarsi in qualcosa di quasi invisibile malware fileless (un programma di hacking che non lascia tracce dell'attacco).

Nel nostro caso, l'attaccante inizia a eseguire una ricognizione di rete utilizzando uno script PowerShell, esaminando sequenzialmente lo spazio degli indirizzi IP della rete, cercando di determinare se un determinato IP risolve a un nodo e, se sì, 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 ciascun nodo:

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

Se la velocità operativa in grandi reti presenta problemi, può essere utilizzato una chiamata inversa al sistema DNS:

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

Utilizzo di PowerShell per l'escalation dei privilegi delle 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 monitora le richieste DNS interne per attività sospette.

Passo 2: Selezione dell'obiettivo

Il risultato finale di questo passo è ottenere un elenco di nomi host di server e workstation, che può essere utilizzato per proseguire con l'attacco.

Utilizzo di PowerShell per l'escalation dei privilegi delle account locali

A giudicare dal nome, il server ‘HUB-FILER’ sembra un obiettivo valido, poiché nel tempo i server di file tendono ad accumulare un gran numero di cartelle di rete e di accessi eccessivi da parte di troppe persone.

La visualizzazione tramite Esplora file di Windows ci consente di determinare se c'è una condivisione aperta, ma il nostro attuale account non può accedervi (probabilmente abbiamo solo diritti di listing).

Passo 3: Esaminiamo le ACL

Ora sul nostro host HUB-FILER e nella cartella condivisa target share possiamo eseguire uno script PowerShell per ottenere un elenco delle ACL. Possiamo farlo dalla macchina locale, dato che abbiamo già diritti da amministratore locale:

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

Risultato dell'esecuzione:

Utilizzo di PowerShell per l'escalation dei privilegi delle account locali

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

Passo 4: Identificazione degli Account

Eseguendo Get-ADGroupMember, saremo in grado di ottenere tutti i membri di questo gruppo:

Get-ADGroupMember -identity Helpdesk

Utilizzo di PowerShell per l'escalation dei privilegi delle account locali

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

Utilizzo di PowerShell per l'escalation dei privilegi delle account locali

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

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

PsExec.exe -s -i cmd.exe

A questo punto, hai pieno accesso alla cartella target HUB-FILERshareHR, poiché stai operando 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 rete.

Passo 6: Rilevamento di questo attacco

Questa vulnerabilità specifica nella configurazione dei diritti degli account (gli account dei computer che accedono alle cartelle di rete condivise al posto degli account utente o degli 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 gli account dei computer in essi e poi chiudere l'accesso. DatAlert va oltre e consente di creare una notifica specificamente per uno scenario del genere.

Nello screenshot qui sotto, viene mostrato un avviso per l'utente che si attiverà ogni volta che l'account del computer accede ai dati sul server monitorato.

Utilizzo di PowerShell per l'escalation dei privilegi delle account locali

Passaggi successivi con PowerShell

Vuoi saperne di più? Usa il codice di sblocco «blog» per avere accesso gratuito al completo corso video su 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