1. Introduzione
Le aziende che non avevano organizzato sistemi di accesso remoto, hanno dovuto implementarlo d'urgenza alcuni mesi fa. Non tutti gli amministratori erano pronti per un tale 'cambiamento', con la conseguenza di trascuratezze nella sicurezza: configurazioni errate dei servizi o addirittura installazioni di versioni obsolete di software con vulnerabilità già note. Per alcuni, queste negligenze sono già tornate come un boomerang, mentre altri hanno avuto più fortuna, ma le conclusioni sono sicuramente da trarre per tutti. La fedeltà al lavoro a distanza è aumentata drasticamente e sempre più aziende accettano il lavoro remoto come un formato valido su base permanente.
Quindi, ci sono molte opzioni per garantire l'accesso remoto: vari VPN, RDS e VNC, TeamViewer e altri. Gli amministratori hanno una vasta scelta, basata sulla specificità della rete aziendale e dei dispositivi utilizzati. Le soluzioni VPN rimangono le più popolari, tuttavia, molte piccole aziende scelgono RDS (Remote Desktop Services), che sono più semplici e veloci da implementare.
In questo articolo parleremo più in dettaglio della sicurezza RDS. Faremo una breve panoramica delle vulnerabilità note e esamineremo alcuni scenari di avvio degli attacchi alle infrastrutture di rete basate su Active Directory. Speriamo che il nostro articolo possa aiutare qualcuno a rivedere i propri errori e aumentare la sicurezza.
2. Recenti vulnerabilità RDS/RDP
Qualsiasi software contiene errori e vulnerabilità che possono essere sfruttati dagli aggressori, e RDS non fa eccezione. Recentemente, Microsoft ha frequentemente segnalato nuove vulnerabilità, quindi abbiamo deciso di fornire una breve panoramica:
Questa vulnerabilità mette a rischio gli utenti che si connettono a un server compromesso. Un aggressore può ottenere il controllo del dispositivo dell'utente o stabilirsi nel sistema per avere accesso remoto permanente.
- / /
Questo gruppo di vulnerabilità consente a un aggressore non autorizzato di eseguire codice arbitrario su un server con RDS tramite una richiesta appositamente formata. Possono anche essere utilizzate per creare worm, cioè software malevolo che infetta autonomamente i dispositivi vicini nella rete. Pertanto, queste vulnerabilità possono mettere in pericolo l'intera rete aziendale, e l'unico modo per proteggersi è effettuare aggiornamenti tempestivi.
Il software per l'accesso remoto ha ricevuto maggiore attenzione sia da parte dei ricercatori che degli aggressori, quindi potremmo presto sentire parlare di nuove vulnerabilità simili.
La buona notizia è che non tutte le vulnerabilità hanno exploit pubblici disponibili. La cattiva notizia è che un aggressore esperto non avrà difficoltà a scrivere un exploit per una vulnerabilità basandosi su una descrizione, oppure utilizzando tecniche come il Patch Diffing (di cui hanno scritto i nostri colleghi in ). Pertanto, raccomandiamo di aggiornare regolarmente il software e di prestare attenzione alle nuove segnalazioni di vulnerabilità scoperte.
3. Attacchi
Passiamo alla seconda parte dell'articolo, dove mostreremo come iniziano gli attacchi all'infrastruttura di rete basata su Active Directory.
I metodi descritti si applicano al seguente modello di aggressore: un malintenzionato che possiede un'account utente e ha accesso al Remote Desktop Gateway, il server terminale (spesso accessibile, ad esempio, dalla rete esterna). Utilizzando questi metodi, l'aggressore sarà in grado di continuare l'attacco all'infrastruttura e consolidare la sua presenza nella rete.
La configurazione di rete può variare in ogni caso specifico, ma i metodi descritti sono abbastanza universali.
Esempi di uscita da un ambiente limitato e di escalation dei privilegi
Accedendo al Remote Desktop Gateway, l'aggressore si troverà probabilmente ad affrontare un ambiente limitato. Quando ci si connette al server terminale, viene avviata un'applicazione: una finestra per la connessione tramite protocollo Remote Desktop a risorse interne, un esploratore, suite per ufficio o qualsiasi altro software.
L'obiettivo dell'attaccante sarà ottenere l'accesso all'esecuzione di comandi, ovvero avviare cmd o powershell. Diverse tecniche classiche di evasione dalla “sandbox” per Windows possono essere utili in questo caso. Esaminiamole di seguito.
Opzione 1. L'attaccante ha accesso alla finestra di connessione Remote Desktop all'interno del Remote Desktop Gateway:

Si apre il menu “Show Options”. Appaiono opzioni per manipolare i file di configurazione della connessione:

Da questa finestra è possibile accedere liberamente a Esplora file, premendo uno dei pulsanti “Open” o “Save”:

Si apre Esplora file. La sua “barra degli indirizzi” consente l'esecuzione di file eseguibili autorizzati e la visualizzazione del file system. Questo può essere utile per l'attaccante nel caso in cui i dischi di sistema siano nascosti e l'accesso diretto a essi non sia possibile:

→
Uno scenario simile può essere riprodotto, ad esempio, utilizzando Excel come software remoto dal pacchetto Microsoft Office.
→
Inoltre, non bisogna dimenticare i macro utilizzati in questo pacchetto per ufficio. I nostri colleghi hanno esaminato il problema della sicurezza dei macro in questo contesto. .
Opzione 2. Utilizzando gli stessi input del precedente scenario, l'attaccante avvia diverse connessioni al desktop remoto con lo stesso account. Quando si riconnette, la prima sarà chiusa e verrà visualizzata una finestra con un messaggio di errore. Il pulsante di aiuto in questa finestra aprirà Internet Explorer sul server, consentendo all'attaccante di accedere a Esplora File.
→
Opzione 3. Con le restrizioni impostate per l'esecuzione di file eseguibili, l'attaccante potrebbe trovarsi di fronte a situazioni in cui le politiche di gruppo vietano l'esecuzione di cmd.exe da parte dell'amministratore.
Esiste un modo per bypassare questo eseguendo un file bat sul desktop remoto con un contenuto del tipo cmd.exe /K . L'errore durante l'esecuzione di cmd e un esempio di successo nell'esecuzione del file bat sono mostrati nell'immagine sottostante.

Opzione 4. Vietare l'esecuzione di applicazioni tramite blacklist dei nomi dei file eseguibili non è una soluzione definitiva, in quanto può essere aggirato.
Consideriamo il seguente scenario: abbiamo vietato l'accesso alla riga di comando, impedito l'avvio di Internet Explorer e PowerShell tramite criteri di gruppo. L'attaccante cerca di invocare la guida — nessuna risposta. Prova a lanciare PowerShell tramite il menu contestuale di una finestra modale attivata con il tasto Shift — messaggio di divieto di avvio da parte dell'amministratore. Tenta di avviare PowerShell tramite la barra degli indirizzi — di nuovo nessuna risposta. Come può eludere questa limitazione?
È sufficiente copiare powershell.exe dalla cartella C:WindowsSystem32WindowsPowerShellv1.0 nella cartella dell'utente, cambiare nome in qualcosa di diverso da powershell.exe, e così la possibilità di avvio apparirà.
Per impostazione predefinita, quando ci si connette a un desktop remoto, viene fornito l'accesso ai dischi locali del client, da cui l'attaccante può copiare powershell.exe e dopo averlo rinominato, avviarlo.
→
Abbiamo elencato solo alcuni metodi per eludere le restrizioni, ma si possono inventare molti altri scenari, e ciò che li unisce è l'accesso a Esplora file di Windows. Ci sono molte applicazioni che utilizzano gli strumenti standard di Windows per lavorare con i file, e collocandole in un ambiente limitato, si possono applicare tecniche simili.
4. Raccomandazioni e conclusioni
Come possiamo vedere, anche in un ambiente limitato c'è spazio per lo sviluppo di un attacco. Tuttavia, è possibile rendere la vita più difficile all'attaccante. Ecco alcune raccomandazioni generali che possono essere utili sia nei casi esaminati che in altre situazioni.
- Limitare l'esecuzione di programmi tramite liste nere/white, utilizzando criteri di gruppo.
Tuttavia, nella maggior parte dei casi rimane la possibilità di eseguire codice. Ti consigliamo di dare un'occhiata al progetto , per avere un'idea dei metodi non documentati di manipolazione dei file e di esecuzione del codice nel sistema.
Consigliamo di combinare entrambi i tipi di restrizioni: ad esempio, è possibile consentire l'esecuzione di file eseguibili firmati da Microsoft, ma limitare l'esecuzione di cmd.exe. - Disattivare le schede delle impostazioni di Internet Explorer (puoi farlo localmente nel registro).
- Disattiva tramite regedit la chiamata alla guida integrata di Windows.
- Disattiva la possibilità di montare dischi locali per connessioni remote, se tale restrizione non è critica per gli utenti.
- Limitare l'accesso ai dischi locali della macchina remota, mantenere l'accesso solo alle cartelle degli utenti.
Speriamo che tu abbia trovato questo articolo interessante e che possa contribuire a rendere il lavoro remoto della tua azienda più sicuro.
Fonte: habr.com
