Privilege escalation: acquisire privilegi più elevati è ancora possibile in Windows

Diversi script PowerShell permettono di raccogliere informazioni sulla configurazione del sistema operativo e sferrare attacchi che portano all'acquisizione di privilegi utente più elevati.
Privilege escalation: acquisire privilegi più elevati è ancora possibile in Windows

Formare i dipendenti e collaboratori nonché utilizzare una soluzione per la sicurezza che agisca a livello centralizzato bloccando il download di elementi potenzialmente dannosi resta la chiave di volta per evitare problemi in azienda: Sicurezza informatica, come difendersi dalle minacce più moderne in ufficio e in azienda.
Perché una volta che un file o uno script malevolo vanno in esecuzione sul sistema questi possono in molti casi acquisire privilegi più elevati (spesso i diritti SYSTEM) facendo leva su vulnerabilità conosciute oppure sfruttando problemi di configurazione legati ad eseguibili, librerie DLL e servizi di terze parti.

Nel nostro articolo Password dimenticata Windows 10: esclusivo, come accedere al sistema abbiamo visto che con un semplice “giochetto” è possibile modificare le password degli utenti amministrativi creati su una macchina Windows oppure creare un nuovo account amministratore e avere “carta bianca” sul sistema in uso.
L’espediente presentato funziona sulle installazioni di Windows che non usano né Bitlocker né altre soluzioni per la sicurezza che si occupano di crittografare tutto il contenuto delle unità di memorizzazione.

Esistono però degli script che permettono di guadagnare i privilegi di amministratore o i diritti SYSTEM usando normali account utente, con una “libertà d’azione” decisamente più limitata.

Com’è ovvio, ci asterremo dal fornire le indicazioni dettagliate per acquisire diritti più elevati ma desideriamo comunque evidenziare quanto oggi restino ancora molto semplici le operazioni di privilege escalation in ambiente Windows.

In rete è semplicissimo trovare un potente script PowerShell chiamato PowerUp.ps1. Realizzato da Matthew Graeber e distribuito sotto licenza BSD, lo script è reperibile digitando privesc powerup.ps1 nella casella di ricerca di Google.
Lo script non va scaricato così com’è perché esso sarà rilevato e bloccato dalla stragrande maggioranza delle soluzioni antimalware trattandosi di un “hack tool“.

Se si volesse provare il suo funzionamento, suggeriamo di fare clic su PowerUp.ps1 nella pagina di GitHub, cliccare sul pulsante Raw in modo da accedere allo script PowerShell visualizzandolo in una scheda del browser. Lo script dovrà essere selezionato e copiato in memoria (CTRL+C), fatta eccezione per le prime 10 righe.

Premendo la combinazione di tasti Windows+R quindi digitando %userprofile%, si potrà creare un nuovo file di testo nella cartella del proprio account utente.
Lo script PowerShell copiato in memoria dovrà essere incollato all’interno del file di testo appena creato quindi si dovrà memorizzare il file e rinominarlo in PowerUp.ps1.

Aprendo il prompt di PowerShell (Windows+X, Windows PowerShell) si potranno temporaneamente disattivare (con un account sprovvisto di privilegi) la execution policy (funzionalità che controlla le condizioni sotto le quali PowerShell può caricare i file ed eseguire gli script) e AMSI (Anti-Malware Scan Interface), meccanismo che permette a PowerShell di riconoscere e bloccare script potenzialmente dannosi.
Il file PowerUp.ps1 non ha nulla di dannoso in sé ma può essere ovviamente utilizzato da utenti malintenzionati per guadagnare privilegi elevati sulla macchina in uso: per questo, nella configurazione predefinita, viene bloccato da AMSI.

Eseguendo i due comandi pubblicati in questa pagina al prompt di PowerShell è possibile disabilitare momentaneamente entrambe le funzionalità (fonte: Recipe for Root).
Il secondo comando è semplicemente una “gabola” per evitare l’analisi del codice da parte di AMSI (come possono verificare gli utenti più esperti, il codice viene ricomposto “a pezzi” usando un astuto meccanismo basato sull’utilizzo di array).

Successivamente basterà impartire i seguenti comandi per impartire come nuovi moduli utilizzabili in PowerShell, le varie funzioni contenute nello script:

Import-Module (Resolve-Path('PowerUp.ps1'))
. Resolve-Path('PowerUp.ps1')

Digitando, infine, Invoke-AllChecks -HTMLReport, lo script PowerShell verificherà nel dettaglio la configurazione del sistema in uso e indicherà le eventuali configurazioni scorrette che possono essere utilizzate per acquisire privilegi più elevati (la diagnosi viene salvata anche come file HTML, memorizzato nella stessa cartella dello script).

Lo script indica ad esempio la lista dei servizi vulnerabili o degli elementi di sistema che vengono richiamati nel registro di sistema senza usare la corretta sintassi (doppie virgolette). In entrambi i casi, un aggressore può guadagnare privilegi elevati inducendo Windows a eseguire codice potenzialmente dannoso oppure a creare un utente dotato dei privilegi più elevati in assoluto. Lo script, tra le varie informazioni restituite, enumera le librerie vulnerabili ad attacchi di tipo DNS hijacking e snocciola eventuali lacune relative alla configurazione del sistema operativo.

Durante i nostri test – proprio usando PowerUp.ps1 – siamo riusciti a individuare senza alcuno sforzo i “punti deboli” di diverse installazioni di Windows. Lo script può essere quindi utilizzati anche dagli utenti più evoluti e dagli amministratori per toccare con mano quanto sia ancora semplice sferrare un attacco di privilege escalation.

Ti consigliamo anche

Link copiato negli appunti