Vulnerabilità di MS Office ‘CVE-2017-11882’ – un’analisi dei Quick Heal Security Labs

Al momento stai visualizzando Vulnerabilità di MS Office ‘CVE-2017-11882’ – un’analisi dei Quick Heal Security Labs
  • Autore dell'articolo:
  • Categoria dell'articolo:news

Le campagne di spam sono uno dei maggiori mezzi di diffusione dei malware. Recentemente abbiamo iniziato a osservare varie campagne malspam che sfruttano la vulnerabilità di MS Office CVE-2017-11882.

In questo articolo illustreremo, con un’analisi approfondita, una di queste campagne

Catena di attacco

Fig. 1: la catena di attacco delle campagne malware che sfruttano la CVE-2017-11882

L’analisi della vulnerabilità CVE-2017-11882 di Microsoft Office Equation Editor

Una vulnerabilità di esecuzione di codice in modalità remota (CVE-2017-11882) può essere attivata nel componente Microsoft Office Equation Editor (EQNEDT32.EXE). Questo strumento, come indica il nome, consente agli utenti di integrare equazioni matematiche nei documenti Office in forma di oggetto OLE dinamico.

Un attaccante può sfruttare con successo una buffer overflow vulnerability nella componente di editor delle equazioni di MS Office e eseguire codice arbitrario. La componente EQNEDT32.EXE genera il proprio processo al di fuori del processo principale di Office, così non utilizza nessuna delle funzioni di sicurezza aggiunte al sistema operativo o alla suite di Office. Questo rende assai facile il buffer overflow (cioè la corruzione della memoria nel file EQNEDT32.EXE).

“Inserendo molti oggetti OLE che sfruttano la vulnerabilità descritta, è possibile eseguire una sequenza di comandi arbitrari (ad esempio scaricare un file da Internet ed eseguirlo). Uno dei sistemi più facili per eseguire codice arbitrario è lanciare un file eseguibile da un server WebDAV controllato dagli attaccanti” .

riferisce il team di Embedi, che individuò per primo la vulnerabilità in questione.

Per sfruttare la vulnerabilità, gli accanti utilizzano file RTF appositamente predisposti con estensioni doc. Questo file RTF contiene una classe di oggetti di equazione incorporata come mostrato in Fig 2.

Classe di oggetti di equazione
Fig.2 Classe di oggetti di equazione

Il file OLE che è incorporato all’interno del documento RTF creato, ha un nome di flusso “Equation Native” con la seguente intestazione:

SizeDescription
WORDSize of header(EQNOLEFILEHDR) == 28 (0x1C)
DWORDVersion
WORDClipboard format
DWORDSize of (MTEF header + MTEF data)
DWORDReserved1
DWORDReserved2
DWORDReserved3
DWORDReserved4

MTEF è un formato di equazione di tipo matematico utilizzato dall’editor di equazioni. L’intestazione MTEF ha la seguente struttura:

SizeDescription
BYTEMTEF version
BYTEGenerating platform
BYTEGenerating product
WORDProduct version and subversion

I dati MTEF sono costituiti da un’intestazione MTEF seguita da più record. Questi record possono essere di diversi tipi e dimensioni. Il record FONT definito nell’oggetto dati MTEF riceve il FONT NAME creato e attiva la vulnerabilità. Di seguito è riportata la struttura dei dati MTEF (record FONT).

SizeDescription
BYTEFONT tag
BYTETypeface number
BYTETypeface style
STRINGFont name
BYTENull terminated

Se FONT NAME è maggiore di 32 byte, siamo di fronte ad un tentativo di exploit. 

Analisi degli exploit

In questa campagna, il vettore di attacco iniziale utilizza email di spam con allegati RTF creati con estensione .doc. La Fig 3 mostra l’e-mail di spam utilizzata in questa campagna.

Un email di spam con l'exploit per la CVE-2017-11882
Fig. 3: un email di spam con l’exploit per la CVE-2017-11882

MS Word esegue l’allegato dannoso che da inizio al processo di exploit. Dopo il successo dell’exploit, Microsoft Equation Editor avvia il processo mshta.

Fig.4 Font name creato
Fig.4 Font name creato

Come funziona? Qualche dettaglio in più…

La figura seguente è uno snap che mostra lo scenario di buffer overflow in cui 48 byte di dati vengono copiati in un buffer locale. Questo provoca un overflow del buffer e sovrascrive il puntatore di base e restituisce l’indirizzo.

Overflow del buffer basato su stack
Fig 5. Overflow del buffer basato su stack

La figura 6 mostra l’indirizzo (0x00430C12) che viene sovrascritto nell’indirizzo di ritorno.

Indirizzo di ritorno sovrascritto
Fig 6. Indirizzo di ritorno sovrascritto

L’indirizzo sovrascritto proviene da EQUATION32.EXE e tale istruzione punta all’api “WinExec” come menzionato in Fig 7

WinExec call
Fig.7. WinExec call

Dopo il successo dell’exploit, il processo mshta viene eseguito da WinExec che scarica ed esegue il file hta dannoso. Il file hta funge inoltre da downloader per un malware infostealer. Nei Quick Heal Security Labs abbiamo visto diverse varianti di questo exploit usando mshta.exe, cmd.exe e powershell.exe che sono stati eseguiti da WinExec per svolgere ulteriori attività.

Attacchi File-less

Di seguito uno scenario in cui l’exploit contiene un codice che esegue direttamente un malware che è ospitato su un server WebDav pubblico. Il payload è un tipico percorso di rete UNC.

La Fig 8 mostra il diverso malware ospitato sul server WebDav pubblico 185.45.195.7.

Percorso UNC del server WebDav
Fig. 8. Percorso UNC del server WebDav
Server WebDav dannoso
Fig. 9. Server WebDav dannoso

Conclusione

Per difendersi da tali exploit, Microsoft ha già implementato funzionalità come DEP e ASLR nel loro arsenale ma l’attacco colpisce eqnedt32.exe, dove entrambe le funzionalità sono disabilitate. Quindi portare a termine tali attacchi usando gli exploit POC facilmente disponibili diventa utile per gli attaccanti. Da Microsoft Office 2007 Service Pack 3, tutte le versioni sono vulnerabili a questa vulnerabilità. Microsoft ha rilasciato una patch per questa vulnerabilità, pertanto consigliamo ai nostri utenti di applicare i pacchetti di aggiornamento Microsoft più recenti e di tenere aggiornato il loro antivirus.

Misure di sicurezza