Introduzione
Presentata per la prima volta all'Intel Developer Forum Fall del 2004, Active Management Technology (AMT) consente, tramite le funzionalità integrate e applicazioni di gestione e sicurezza di terze parti, la gestione remota del sistema permettendo di aggiornarlo, ripararlo e proteggerlo. Tale tecnologia, inclusa nei processori Intel Core con Intel vPro e in determinati processori Intel Xeon, opera a livello firmware e consente di gestire un sistema remoto indipendentemente dal sistema operativo installato anche se è spento o se presenta componenti guasti (ad. es il disco fisso).
Intel Active Management Technology (AMT), Intel Standard Manageability (ISM) e Intel Small Business Technology con versioni del firmware dalla 6.x alla 11.6 presentano una grave falla che permette di prendere il controllo dei sistemi gestiti con tali tecnologie. La vulnerabilità non è presente sui PC consumer, sui server Intel che utilizzano Intel Server Platform Services (Intel SPS), sui processori Intel Xeon E3 e E5 che utilizzano il firmware Intel SPS. Maggiori dettagli sono disponibili sulla pagina messa a disposizione da Intel.
Come funziona
L'accesso da remoto a Intel Active Management Technology avviene attraverso una semplice interfaccia web gestita da un servizio in ascolto sulle porte 16992 e 16993. All'accesso vengono generalmente richieste utenza e password che vanno a costruire la passphrase inviata impiegando lo standard HTTP Digest Authentication: all'utenza e alla password viene applicata una funzione hash utilizzando un nonce del firmware AMT insieme ad alcuni bit di metadata. La "response" venuta fuori da tale operazione viene inviata all'AMT, analizzata da quest'ultimo e, se ritenuta valida, l'utente verrà autorizzato all'accesso all'interfaccia di gestione. La vulnerabilità consente di avere accesso al AMT inviando una response vuota.
Decompilando in C il firmware Intel si nota un codice simile al seguente che chiarisce come sia possibile ottenere l'accesso al sistema inviando una response vuota
if(strncmp(computed_response, user_response, response_length))
deny_access();
L'idea di fondo è quella di confrontare la response dell'utente (user_response) con quello che si attende il sistema (computed_response) e verificare se siano identiche o meno. La funzione strncmp limita il confronto al numero di caratteri indicato da response_length. Il problema nasce dal fatto che response_length viene calcolato sulla lunghezza di user_response pertanto fornendo una response vuota (lunghezza 0) non avviene alcun confronto e il sistema autorizza l'accesso.
Tale vulnerabilità è facilmente sfruttabile utilizzando un proxy, o un analogo editor di traffico, che consente al malintenzionato di inviare una response vuota. Di seguito mostrerò i passaggi, a scopo didattico, per accedere da remoto a AMT bypassando l'autenticazione utilizzando Kali Linux che integra già tutto il necessario.
ATTENZIONE:
Danneggiare o violare un sistema informatico (anche da remoto) rappresenta un reato penale. Le informazioni presenti in quest'articolo vanno utilizzate solo per testare/verificare sistemi di cui si è titolari. Declino ogni responsabilità civile e penale derivante da un utilizzo non legale delle informazioni presentate in questo articolo a solo scopo didattico.
Dimostrazione di un attacco
Innanzitutto è necessario disporre dell'indirizzo IP del sistema da attaccare. Tramite il motore di ricerca SHODAN è possibile ricercare i sistemi vulnerabili a questo tipo di attacco.
|
FIG 1 - Motore di ricerca Shodan |
Avviare Firefox e nella barra degli indirizzi digitare l'indirizzo del sistema a cui vogliamo connetterci seguito dal numero di porta :16992.
Ad es.
http://192.168.1.1:16992
Apparirà la schermata di logon indicata in FIG 2
|
FIG 2 - Schermata di Log On Intel Active Management Technology |
Per raggiungere lo scopo verranno utilizzare alcune funzioni della suite di sicurezza Burp Suite, in particolare verranno utilizzare le funzioni Proxy, Intercept al fine di intercettare e modificare al volo i dati che vengono inviati al server. Avviare Burp Suite cliccando sull'apposita icona.
|
FIG 3 - Kali Linux, Burp Suite |
Cliccare sul pulsante Next.
|
FIG 4 - Burp Suite |
Cliccare su Start Burp.
|
FIG 5 - Burp Suite, Start Burp |
Selezionare la scheda Proxy quindi assicurarsi che nella scheda Intercept sia presente la dicitura Intercept is on.
|
FIG 6 - Burp Suite, Proxy, Intercept |
Ritornare a Firefox e impostare il proxy come mostrato in FIG 7 (dal menu hamburger, Preferences, Advanced, selezionare Network quindi cliccare sul pulsante Settings).
|
FIG 7 - Firefox, impostazione Proxy |
Nella pagina http://192.168.1.1:16992 cliccare sul pulsante Log on.
Ritornare a Burp Suite e cliccare sul pulsante Forward.
|
FIG 8 - Burp Suite, intercettazione |
In Firefox viene aperta la finestra di richiesta credenziali, inserire admin come user name e password a caso quindi cliccare su OK.
|
FIG 9 - Intel Active Management Technology, inserimento credenziali |
Ritornare in Burp Suite, eliminare il valore contenuto in response e cliccare su Forward per inviare i dati modificati al server.
|
FIG 10 - Burp Suite, modifica della response |
|
FIG 11 - Burp Suite, modifica della response |
A questo punto siamo all'interno dell'interfaccia di gestione AMT. Possiamo creare un nostro account amministratore con una nostra password per gestire il sistema senza passare per Burp Suite o utilizzare programmi di terze parti come MeshCommander per prendere il controllo remoto della macchina.
|
FIG 12 - Interfaccia Intel Active Management Technology |
|
FIG 13 - MeshCommander |
Come Proteggersi
Intel, attraverso la pagina https://newsroom.intel.com/news/important-security-information-intel-manageability-firmware/ fornisce un tool per verificare se il proprio sistema è vulnerabile e una guida su come intervenire per ridurre i rischi derivati.
Se l'aggiornamento del firmware non è possibile si può pensare di disabilitare l'AMT sul sistema utilizzando tool di terze parti come quello scaricabile dal seguente link https://github.com/bartblaze/Disable-Intel-AMT