Vulnerabilità nei più popolari client RDP (Remote Desktop Protocol)

07/02/2019

Microsoft RDP Vulnerabilità

I ricercatori di Check Point hanno recentemente condotto un’analisi dettagliata dei più popolari client RDP identificando in essi un totale di 25 vulnerabilità, 16 delle quali classificate come “Principali“.

I client RDP presi in considerazione sono i seguenti:

  • FreeRDP (il client RDP open source più popolare su Github)
  • Rdesktop (un vecchio client RDP open source che viene fornito di default nelle distribuzioni Kali Linux)
  • Client RDP integrato in sistemi operativi Windows

In particolare il client FreeRDP, è affetto da 6 vulnerabilità, cinque delle quali riguardano la corruzione di memoria che potrebbe provocare l’esecuzione di codice in modalità remota sul computer del client RDP.

Il client Rdesktop risulta essere il più vulnerabile con un totale di 19 vulnerabilità, 11 delle quali potrebbero consentire a un server RDP dannoso di eseguire codice arbitrario sul computer del client RDP.

Infine, sebbene il client RDP integrato in windows non è affetto da vulnerabilità che consentono esecuzione di codice remoto, i ricercatori hanno scoperto alcuni interessanti scenari di attacco che risultano possibili in quanto il client e il server condividono i dati degli appunti, consentendo al client di accedere e modificare i dati degli appunti sul server e vice versa.

Protocollo RDP

Il Remote Desktop Protocol (RDP) noto anche come “mstsc” nel client RDP incorporato di Microsoft, è un protocollo ampiamente utilizzato per l’amministrazione remota. Il protocollo viene solitamente utilizzato dagli utenti tecnici e dagli amministratori IT per connettersi da remoto ad altri dispositivi sulla rete.

Scenario di attacco

In uno scenario normale, si utilizza un client RDP e ci si connette a un server RDP remoto. Dopo una connessione riuscita, si può avere accesso e controllo della macchina remota, in base alle autorizzazioni dell’utente. Il ricercatore di Check Point Eyal Itkin invece, fa riferimento ad uno scenario di attacco di tipo Reverse RDP, nel quale è stata invertita la normale direzione della comunicazione RDP al fine di controllare ed eseguire il codice sul dispositivo client e verificare se il server RDP può attaccare e ottenere il controllo sul computer del client RDP connesso.

Analisi Vulnerabilità Microsoft RDP

Dopo aver verificato le implementazioni open source le cui vulnerabilità possono comportare problemi di corruzione della memoria, bug di tipo Denial of Service in FreeRDP e importanti vulnerabilità di buffer overflow in rdesktop, i ricercatori si sono concentrati su Microsoft RDP, nel quale è stata individuata una vulnerabilità nella funzionalità di condivisione degli appunti “Mstsc.exe“.

Tale vulnerabilità del client RDP di Microsoft è legata al format “CF_HDROP” che contiene la funzione “Drag & Drop”. Attraverso l’analisi della funzione “Drag & Drop” – “Copia e incolla” su una connessione RDP i ricercatori hanno dimostrato come sia possibile copiare semplicemente un gruppo di file dal primo computer e incollarli nel secondo computer. Ogni volta che la clipboard viene aggiornata, si avvia una sincronizzazione su entrambi i lati della connessione RDP attraverso un messaggio CLIPRDR_FORMAT_LIST. In questo modo, come affermato dai ricercatori di Check Point, un server malevolo viene avvisato ogni volta che il client copia qualcosa nei suoi appunti “locali” dandogli la possibilità di interrogare i valori e leggerli.

Attraverso un video PoC  i ricercatori hanno dimostrato un attacco basato sulla funzione “Drag & Drop” degli appunti. Tale attacco consentirebbe al server RDP dannoso di ingannare il sistema client utilizzando il software RDP di Microsoft, e consentire il salvataggio di un file (malware) nella cartella di avvio di Windows, che verrà automaticamente eseguita ogni volta che si avvia il sistema.  “Se un client utilizza la funzionalità “Drag & Drop” su una connessione RDP, un server RDP dannoso può rilasciare in modo trasparente file arbitrari in percorsi arbitrari sul computer del client, limitati solo dalle autorizzazioni del client. Si precisa che gli attacchi mostrati nel video sono stati eseguiti con autorizzazioni utente e non con particolari privilegi.

Raccomandazioni

Checkpoint ha riportato le analisi ai team di sviluppo degli strumenti RDP nello scorso ottobre 2018.  Gli sviluppatori di FreeRDP hanno risolto i problemi con una patch al software nel repository GitHub a novembre e gli sviluppatori di Rdesktop hanno rilasciato una correzione a metà gennaio. Per quanto riguarda Microsoft, la società ha confermato i risultati dello studio ma non ha rilasciato nessuna patch, lasciando quindi i propri utenti potenzialmente vulnerabili a tale tipologia di attacchi.

Il CERT-PA consiglia quindi agli utilizzatori di FreeRDP e RDesktop di aggiornare all’ultima versione disponibile, mentre per quanto riguarda gli utenti Windows possono proteggersi dagli attacchi semplicemente disabilitando la funzionalità di condivisione degli appunti che viene abilitata per impostazione predefinita quando ci si connette a una macchina remota.