RDP e la sicurezza delle credenziali: come funziona la modalità Restricted Admin e i rischi del Pass-the-Hash
La Restricted Admin Mode è una modalità di sicurezza per Remote Desktop Protocol (RDP) introdotta con Windows 8.1 e Windows Server 2012 R2. Il suo scopo principale è proteggere le credenziali degli utenti quando si connettono a un sistema remoto tramite Remote Desktop Connection (mstsc), prevenendo attacchi di tipo Pass-the-Hash (PtH).
Normalmente, quando vi connettete a un host remoto tramite RDP, il sistema remoto riceve e memorizza le vostre credenziali, esponendole al rischio di furto se il computer è compromesso. Con la Restricted Admin Mode, invece, le credenziali non vengono mai trasmesse all’host remoto.
Come funziona una connessione RDP normale (senza /RestrictedAdmin)?
Prima di Windows 8.1, l’unico metodo per connettersi e autenticarsi a un computer remoto tramite RDP era il Remote Interactive Logon Process:
- L’utente inserisce le credenziali nel client RDP.
- Il client RDP esegue un “network logon” al server remoto per autorizzare l’utente.
- Una volta autorizzato, il client RDP trasmette in modo sicuro le credenziali al sistema remoto tramite un canale protetto.
- Il server remoto utilizza queste credenziali per eseguire un logon interattivo per conto dell’utente.
Nota: Il server remoto deve avere accesso alle credenziali reali dell’utente per consentire la connessione RDP.
Come funziona una connessione RDP con /RestrictedAdmin?
Utilizzando questa modalità con credenziali amministrative, RDP tenta di eseguire un logon interattivo al server remoto senza inviare le credenziali.
La modalità Restricted Admin per RDP non invia mai credenziali in chiaro o in altri formati riutilizzabili ai computer remoti.
Implicazioni di sicurezza e attacchi Pass-the-Hash via RDP
Restricted Admin Mode sfrutta pesantemente l’autenticazione di rete, quindi supporta sia NTLM che Kerberos per impostazione predefinita.
In passato, se un attaccante conosceva l’hash della password di un amministratore, poteva eseguire un attacco Pass-the-Hash con strumenti come PsExec, prendendo il controllo del sistema remoto se le porte SMB/RPC (445, 135, 139, etc.) erano aperte.
Oggi, molti amministratori bloccano queste porte (o almeno si spera!), lasciando solo RDP aperto per le connessioni in entrata. Questo permette a un attaccante di eseguire un attacco Pass-the-Hash direttamente tramite il protocollo RDP, aggirando le restrizioni sulle altre porte di rete.
Figura 1: Confronto tra una connessione RDP normale e una connessione RDP in modalità Restricted Admin
Confronto con Remote Credential Guard
Confrontando il Remote Credential Guard con altre modalità di connessione RDP, come il Restricted Admin Mode, emergono differenze significative in termini di sicurezza e funzionalità. Ne ho parlato diffusamente nella guida Windows Defender Remote Credential Guard: connessioni RDP sicure e in SSO – ICT Power
Remote Credential Guard offre i seguenti vantaggi:
- Protezione delle credenziali: Le credenziali dell’utente non vengono inviate all’host remoto, riducendo il rischio di attacchi Pass-the-Hash.
- Single Sign-On (SSO): Durante la sessione remota, è possibile connettersi ad altri sistemi utilizzando l’accesso SSO.
- Limitazione delle azioni malevole: Un utente malintenzionato può agire per conto dell’utente solo quando la sessione è in corso.
D’altra parte, la Restricted Admin Mode presenta le seguenti caratteristiche:
- Nessun invio di credenziali: Analogamente al Remote Credential Guard, le credenziali non vengono inviate all’host remoto.
- Assenza di SSO: Non è possibile utilizzare l’accesso SSO per connettersi ad altri sistemi durante la sessione remota.
- Limitazioni operative: Le funzionalità potrebbero essere ridotte rispetto al Remote Credential Guard.
Figura 2: Comparazione tra le diverse opzioni di sicurezza delle connessioni di desktop remoto RDP
Se volete una connessione sicura con maggiore flessibilità, Remote Credential Guard è la scelta migliore. Se invece la priorità è massima sicurezza e isolamento delle credenziali, Restricted Admin Mode è l’opzione più sicura.
Figura 3: Scenari d’uso consigliato della modalità di connessione di desktop remoto RDP
Come attivare la Restricted Admin Mode?
Per attivare la Restricted Admin Mode, è necessario configurare sia il computer remoto che il computer client e avviare la connessione con il parametro appropriato.
Per prima cosa, bisogna abilitare la modalità Restricted Admin Mode sul server RDP. Ci sono due metodi per farlo. Il primo è tramite Group Policy (GPO): Navigate in Computer Configurations > Administrative Templates > System > Credential Delegation e configurate Restrict Delegation of credentials to remote servers mettendo la voce su Require Restricted Admin. Assicuratevi di collegare la GPO sia sui client che sui server.
Figura 4: Abilitazione della modalità Restricted Admin tramite GPO
In alternativa, potete attivarla sulle macchine interessate tramite Registro di sistema (Registry Editor). Aprite regedit.exe, andate alla chiave HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa, create un valore DWORD (32-bit) chiamato DisableRestrictedAdmin e impostatelo su 0.
Figura 5: Abilitazione della modalità Restricted Admin tramite registro di Windows
Connessione RDP con la modalità Restricted Admin mode
Una volta completata la configurazione tramite Group Policy (GPO) o Editor del Registro di sistema, è possibile connettersi al server RDP remoto utilizzando la riga di comando o la finestra Esegui. Per avviare una connessione in Restricted Admin Mode, è necessario inserire un parametro aggiuntivo al comando del client di Desktop Remoto (mstsc) e digitare mstsc /v:NOME_SERVER_REMOTO /restrictedadmin oppure mstsc /restrictedadmin
Figura 6: Avvio della connessione RDP con la modalità Restricted Admin mode
Il client RDP tenterà di autenticarsi automaticamente utilizzando le credenziali correnti dell’utente di Windows.
Figura 7: Connessione al server remoto utilizzando le credenziali correnti dell’utente di Windows
Se si tenta di connettersi a un computer remoto utilizzando la Restricted Admin Mode con un account che non ha privilegi amministrativi sul serve remoto, si riceverà l’errore mostrato in figura:
“Account restrictions are preventing this user from signing in. For example: blank passwords aren’t allowed, sign-in times are limited, or a policy restriction has been enforced.”
Figura 8: L’utilizzo della Restricted Admin Mode con un account non amministrativo non è permesso
Ho quindi eseguito Windows PowerShell con privilegi di un account amministratore sul server remoto per avviare Remote Desktop Connection Client (mstsc) in Restricted Admin Mode, come mostrato nella figura sotto:
Figura 9: Avvio del Remote Desktop Connection Client con un account che ha privilegi amministrativi sul server remoto
La connessione è riuscita e l’utente ha accesso completo al server remoto. L’autenticazione del server remoto è stata verificata con il protocollo di sicurezza Kerberos, garantendo un accesso sicuro e autenticato alla macchina remota.
Figura 10: Connessione al server remoto effettuata con successo
Per verificare che le credenziali dell’utente non siano memorizzate sul server remoto dopo una connessione RDP in Restricted Admin Mode potete controllare la cache delle credenziali con cmdkey /list. Il comando cmdkey permette, infatti, di vedere se ci sono credenziali memorizzate nel sistema remoto.
L’output sotto mostra le credenziali attualmente memorizzate nel sistema. Non ci sono credenziali specifiche dell’utente amministratore per la sessione RDP. Questo conferma che le credenziali di accesso non sono state trasmesse né salvate nel server remoto, suggerendo che la connessione RDP sia stata stabilita con successo in Restricted Admin Mode.
Figura 11: Credenziali attualmente memorizzate nel sistema. Non ci sono credenziali specifiche dell’utente amministratore per la sessione RDP
Windows registra dettagli sull’accesso nei log di sistema. Se Restricted Admin Mode è stato utilizzato, l’evento di accesso 4624 mostrerà che l’utente si è autenticato senza inviare credenziali.
Figura 12: L’evento di logon mostra che è stata utilizzata la modalità Restricted Admin mode
Conclusioni
La Restricted Admin Mode per Remote Desktop Protocol (RDP) rappresenta una soluzione efficace per migliorare la sicurezza delle connessioni remote, riducendo il rischio di attacchi Pass-the-Hash (PtH) e il furto di credenziali. Uno dei principali vantaggi di questa modalità è che le credenziali dell’utente non vengono trasmesse al server remoto, impedendone la compromissione. Inoltre, offre una maggiore protezione contro attacchi di tipo credential theft e man-in-the-middle, sfruttando l’autenticazione di rete tramite NTLM o Kerberos.
Tuttavia, Restricted Admin Mode presenta alcune limitazioni. Può essere utilizzata solo da account amministrativi e il server remoto deve essere configurato per supportarla. Inoltre, non permette l’accesso a risorse di rete dal server remoto, come condivisioni SMB, a meno che non sia configurata la Kerberos Delegation. Sebbene questa modalità impedisca il furto di credenziali in chiaro, un attaccante con accesso all’hash della password di un amministratore potrebbe comunque autenticarsi via RDP se la modalità non è disabilitata quando non necessaria.