Sfrutta le vulnerabilità e implementazione della prevenzione delle vulnerabilità
Costruire un'applicazione per rilevare la vulnerabilità CVE-2017-8464
CONTENUTO:
PARTE 1: PANORAMICA SU CVE-2017-8464
CONCETTO DI FILE LNK CREAZIONE DI UN SISTEMA VULNERABILE A CVE-2017-8464 STRUMENTO DI ATTACCO PER LA VULNERABILITÀ CVE-2017-8464PARTE 2: UTILIZZO DI METASPLOIT PER LO SFRUTTAMENTO DI CVE-2017-8464
2.1. MODELLO DI SFRUTTAMENTO DI CVE-2017-8464
2.2. ESECUZIONE DELLO SFRUTTAMENTO DI CVE-2017-8464
PARTE 3: COSTRUZIONE DI UNO STRUMENTO DI RILEVAMENTO DI CVE-2017-8464 BASATO SU PYTHON
3.1. ANALISI DELLA FIRMA DI CVE-2017-8464 BASATA SUI PACCHETTI DI RETE CATTURATI
3.2. FUNZIONE DI ELABORAZIONE PER RILEVARE LO SFRUTTAMENTO DI CVE-2017-8464 BASATA SULL'ANALISI DELLA FIRMA DEI PACCHETTI DI RETE
CONCLUSIONE
**
PARTE 1: PANORAMICA SU CVE-2017-8464
LNK è un file di sistema – Collegamento di Windows, in formato binario sviluppato da Microsoft.

Figura 1: Icona di collegamento in Windows
Un file LNK è un collegamento o "link" utilizzato da Windows come riferimento a un file originale, una cartella o un'applicazione, simile a un alias sulla piattaforma Macintosh. Contiene il tipo di destinazione del collegamento, la posizione e il nome del file, nonché i programmi che aprono i file di destinazione e un collegamento opzionale. I file possono essere creati in Windows facendo clic con il pulsante destro del mouse su un file, una cartella o un eseguibile e quindi selezionando "Crea collegamento".
Sfruttando questa vulnerabilità presente in Microsoft Windows, un utente malintenzionato può eseguire codice in remoto se l'icona di un collegamento (creato in modo apposito) viene visualizzata.

Figura 2: Creazione manuale di un collegamento che esegue il download e l'esecuzione di codice dannoso tramite un file .LNK
Il componente vulnerabile è collegato allo stack di rete. Una tale vulnerabilità è spesso chiamata "remotely exploitable" e può essere considerata un attacco sfruttabile a livello di protocollo o attraverso più hop di rete (ad es. attraverso uno o più router).
I sistemi interessati dalla vulnerabilità CVE-2017-8464 sono Windows Shell in Microsoft Windows Server 2008 SP2 e R2 SP1, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2012 Gold e R2, Windows RT 8.1, Windows 10 Gold, 1511, 1607, 1703 e Windows Server 2016, che consentono a utenti locali o attaccanti remoti di eseguire codice arbitrario tramite un file .LNK creato manualmente, non gestito correttamente durante la visualizzazione dell'icona in Esplora risorse o in qualsiasi altra applicazione che analizzi l'icona del collegamento. Nota anche come "LNK Remote Code Execution Vulnerability".
L'aggiornamento di sicurezza corregge la vulnerabilità convalidando correttamente il riferimento dell'icona del collegamento. Microsoft Windows ha rilasciato un aggiornamento per questa vulnerabilità nel giugno 2017. Questa vulnerabilità non interessa le versioni di Windows XP e precedenti.
Metasploit
Metasploit Framework è un ambiente per testare, attaccare e sfruttare vulnerabilità dei servizi tramite interfaccia a riga di comando; questo strumento è disponibile su Kali Linux versione VMware.

Figura 3: Tool Metasploit
Armitage
Strumento con interfaccia grafica basato sul progetto Metasploit.

Figura 4: Tool Armitage.
PARTE 2: UTILIZZO DI METASPLOIT PER LO SFRUTTAMENTO DI CVE-2017-8464
2.1. MODELLO DI SFRUTTAMENTO DI CVE-2017-8464
Macchina vittima – Windows 7 Pro

Figura 5: Versione del sistema operativo della vittima

Figura 6: Indirizzo IP della macchina vittima
Macchina attaccante – Kali linux – Utilizzo dello strumento Metasploit.

Figura 7: Indirizzo IP della macchina attaccante
La rete in uso è VMnet8 Subnet 192.168.169.0
2.2. ESECUZIONE DELLO SFRUTTAMENTO DI CVE-2017-8464

Figura 8: Creazione di payload e ascolto di connessioni TCP verso la macchina attaccante

Figura 9: Creazione di un file .lnk che esegue automaticamente il malware

Figura 10: Informazioni di configurazione del Payload

Figura 11: Creazione del file .lnk con malware allegato

Figura 12: Copia di tutto il malware su USB

Figura 13: La vittima inserisce l'USB contenente il file .lnk difettoso con malware

Figura 14: L'attaccante ha sfruttato con successo la vulnerabilità e ha accesso alla macchina vittima
**
PARTE 3: COSTRUZIONE DI UNO STRUMENTO DI RILEVAMENTO DI CVE-2017-8464 BASATO SU PYTHON
3.1. ANALISI DELLA FIRMA DI CVE-2017-8464 BASATA SUI PACCHETTI DI RETE CATTURATI

Figura 15: Pacchetto di attacco sulla vulnerabilità CVE-2017-8464 catturato

Figura 16: Pacchetto con flag PSH dopo la connessione TCP riuscita all'attaccante

Figura 17: Segno sospetto nel pacchetto catturato inviato dall'attaccante alla vittima.
Formato file PE (Portable Executable File Format): è il formato file nativo di Win32. Tutti i file eseguibili su Win32 come *.EXE, *.DLL (32 bit), *.COM, *.NET, *.CPL, ecc. sono in formato PE; ad eccezione dei file VxDs e *.DLL (16 bit).

Figura 18: Struttura di un file PE.
Intestazione DOS MZ
Tutti i file PE iniziano con una semplice intestazione DOS MZ. Occupa i primi 64 byte. Questa area viene utilizzata nel caso in cui il programma venga eseguito su DOS.
e_magic: Firma del file PE, valore: 4Dh, 5Ah (caratteri "MZ", dal nome del fondatore di MS-DOS: Mark Zbikowsky). Questo valore contrassegna un'intestazione DOS valida e ne consente l'esecuzione.

Figura 19: Firma del file PE nel pacchetto catturato
e_lfanew: è un DWORD alla fine dell'intestazione DOS, contiene l'offset dell'intestazione PE rispetto all'inizio del file.
STUB DOS
Lo STUB DOS è solo un piccolo programma DOS EXE che visualizza un messaggio di errore; serve per la compatibilità con Windows 16 bit.

Figura 20: Informazioni nel pacchetto STUB DOS catturato inviato dall'attaccante alla vittima
Intestazione PE
L'intestazione PE è in realtà la struttura IMAGE_NT_HEADERS che contiene le informazioni necessarie per il caricamento del file in memoria da parte del loader.
Signature: è un DWORD all'inizio dell'intestazione PE che contiene la firma PE: 50h, 45h, 00h, 00

Figura 21: Informazioni da e_lfanew che indicano la firma dell'intestazione PE.
SECTION TABLE
La Section Table viene subito dopo l'intestazione PE e consiste in un array di strutture IMAGE_SECTION_HEADER.

Figura 22: Contenuto della Section table nel pacchetto catturato

Figura 23: Salvataggio della firma e delle informazioni correlate al malware in un file CSV
3.2. FUNZIONE DI ELABORAZIONE PER RILEVARE LO SFRUTTAMENTO DI CVE-2017-8464 BASATA SULL'ANALISI DELLA FIRMA DEI PACCHETTI DI RETE

Figura 24: Funzione per ottenere le informazioni del protocollo del pacchetto

Figura 25: Funzione per ottenere le informazioni del campo info del pacchetto

Figura 26: Funzione per convertire i pacchetti da Pcap a file CSV

Figura 27: Funzione per verificare la presenza di malware nel traffico di rete

Figura 28: Ciclo per catturare il traffico e verificare la presenza di malware
*Test del funzionamento del programma tramite sfruttamento.

Figura 29: Avvio del programma di monitoraggio sulla macchina reale

Figura 30: Rilevamento e avviso durante l'ascolto del traffico di rete

Figura 31: Cartella del programma di monitoraggio CVE-2017-8464

Figura 32: Cartella packet con i file che registrano i pacchetti dopo ogni conversione durante la cattura

Figura 33: Tutti gli avvisi salvati nel log
CONCLUSIONE
Attraverso il processo di sfruttamento e costruzione del programma di rilevamento della vulnerabilità CVE-2017-8464, gli studenti comprendono come sfruttare una vulnerabilità, analizzare la firma e i comportamenti del malware associato alla vulnerabilità. Questa analisi del comportamento e della firma consente agli studenti di sviluppare programmi per la raccolta automatica, l'analisi e l'elaborazione delle informazioni di monitoraggio della sicurezza di rete, al fine di generare avvisi di rilevamento malware.