Utilizzo di PowerShell per elevare i privilegi degli account locali

Utilizzo di PowerShell per elevare i privilegi degli account locali

L'escalation dei privilegi è l'uso da parte di un utente malintenzionato dei diritti correnti di un account per ottenere un livello di accesso aggiuntivo, solitamente più elevato, al sistema. Sebbene l'escalation dei privilegi possa essere il risultato dello sfruttamento di vulnerabilità zero-day, o del lavoro di hacker di prima classe che conducono un attacco mirato o di malware ben camuffato, nella maggior parte dei casi è dovuto a un'errata configurazione del computer o dell'account. Sviluppando ulteriormente l'attacco, gli aggressori utilizzano una serie di singole vulnerabilità, che insieme possono portare a una fuga di dati catastrofica.

Perché gli utenti non dovrebbero disporre dei diritti di amministratore locale?

Se sei un professionista della sicurezza, potrebbe sembrare ovvio che gli utenti non debbano avere diritti di amministratore locale, in quanto questo:

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

Purtroppo per molte organizzazioni questo è ancora un tema molto controverso e talvolta è accompagnato da accese discussioni (vedi, ad esempio, il mio supervisore dice che tutti gli utenti devono essere amministratori locali). Senza entrare nei dettagli di questa discussione, riteniamo che l'attaccante abbia ottenuto i diritti di amministratore locale sul sistema sotto indagine, o attraverso un exploit o perché le macchine non erano adeguatamente protette.

Passaggio 1Risoluzione DNS inversa con PowerShell

Per impostazione predefinita, PowerShell è installato su molte workstation locali e sulla maggior parte dei server Windows. E mentre non è senza esagerazione che è considerato uno strumento di automazione e controllo incredibilmente utile, è ugualmente capace di trasformarsi in uno strumento quasi invisibile malware senza file (un programma di hacking che non lascia tracce dell'attacco).

Nel nostro caso, l'attaccante inizia a eseguire la ricognizione della rete utilizzando uno script PowerShell, iterando in sequenza sullo spazio degli indirizzi IP della rete, cercando di determinare se un determinato IP si risolve in un host e, in tal caso, qual è il nome di rete di questo host.
Esistono molti modi per eseguire questa attività, ma utilizzando il cmdlet Ottenere-ADComputer è un'opzione solida perché restituisce un set di dati davvero ricco su ciascun nodo:

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

Se la velocità su reti di grandi dimensioni è un problema, è possibile utilizzare una richiamata DNS:

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

Utilizzo di PowerShell per elevare i privilegi degli account locali

Questo metodo di elencare gli host su una rete è molto popolare, poiché la maggior parte delle reti non utilizza un modello di sicurezza zero-trust e non monitora le richieste DNS interne per scoppi di attività sospette.

Passaggio 2: scegli un obiettivo

Il risultato finale di questo passaggio è ottenere un elenco di nomi host di server e workstation che possono essere utilizzati per continuare l'attacco.

Utilizzo di PowerShell per elevare i privilegi degli account locali

Dal nome, il server "HUB-FILER" sembra un obiettivo degno, da allora nel tempo, i file server, di norma, accumulano un gran numero di cartelle di rete e l'accesso eccessivo ad esse da parte di troppe persone.

La navigazione con Windows Explorer ci permette di rilevare la presenza di una cartella condivisa aperta, ma il nostro account corrente non può accedervi (probabilmente abbiamo solo diritti di quotazione).

Passaggio 3: impara gli ACL

Ora, sul nostro host HUB-FILER e sulla condivisione di destinazione, possiamo eseguire uno script PowerShell per ottenere l'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 elevare i privilegi degli account locali

Da esso vediamo che il gruppo Domain Users ha accesso solo all'elenco, ma anche il gruppo Helpdesk ha i diritti di modifica.

Passaggio 4: identificazione dell'account

In esecuzione Get-ADGroupMember, possiamo ottenere tutti i membri di questo gruppo:

Get-ADGroupMember -identity Helpdesk

Utilizzo di PowerShell per elevare i privilegi degli account locali

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

Utilizzo di PowerShell per elevare i privilegi degli account locali

Passaggio 5: utilizzare PSExec per l'esecuzione come account computer

PsExec di Microsoft Sysinternals consente di eseguire comandi nell'ambito dell'account di sistema SYSTEM@HUB-SHAREPOINT, che sappiamo essere un membro del gruppo target Helpdesk. Cioè non ci resta che fare:

PsExec.exe -s -i cmd.exe

Bene, allora hai pieno accesso alla cartella di destinazione HUB-FILERshareHR, poiché stai lavorando nel contesto dell'account computer HUB-SHAREPOINT. E con questo accesso, i dati possono essere copiati su un dispositivo di archiviazione portatile o altrimenti recuperati e trasmessi in rete.

Passaggio 6: rilevamento di questo attacco

Questa particolare vulnerabilità legata all'ottimizzazione dei privilegi dell'account (account computer che accedono alle condivisioni di rete anziché account utente o account di servizio) può essere scoperta. Tuttavia, senza gli strumenti giusti, questo è molto difficile da fare.

Per rilevare e prevenire questa categoria di attacchi, possiamo utilizzare Vantaggio dati per identificare i gruppi con account computer al loro interno e quindi negare loro l'accesso. Avviso dati va oltre e ti consente di creare una notifica specifica per questo tipo di scenario.

Lo screenshot qui sotto mostra una notifica personalizzata che si attiverà ogni volta che un account di computer accede ai dati su un server monitorato.

Utilizzo di PowerShell per elevare i privilegi degli account locali

Passaggi successivi con PowerShell

Voglio sapere di più? Usa il codice di sblocco "blog" per accedere gratuitamente alla versione completa Video corso di base su PowerShell e Active Directory.

Fonte: habr.com

Aggiungi un commento