Sebbene Veil Evasion non faccia parte di Metasploit Framework, ho deciso di includere questo articolo nella guida, in quanto crea dei payload che verranno sfruttati da Metasploit per portare a termine un attacco senza essere rilevati dagli antivirus.
Se avete provato i tutorial precedenti e avete un buon software antivirus installato sulla macchina bersaglio, avrete potuto notare che, lanciando i payload creati, questo segnala un virus presente nel PC e con ogni probabilità sposta il file eseguibile nel cestino dei virus, rendendolo totalmente innocuo. Per completare con successo le guide precedenti abbiamo utilizzato una macchina senza antivirus o con antivirus disattivato.
Ma se volessimo portare a termine un attacco su un PC con l’antivirus attivo?
Esistono varie tecniche per eludere i software AV. Una può essere quella di modificare il file eseguibile mediante un editor esadecimale, ma è una pratica spesso lunga e complessa. Un’altra, molto più semplice è affidarsi a software noti, creati a questo proposito, come Veil Evasion per fabbricare dei payload compatibili con Metasploit e non identificabili dagli AV.
Installare Veil Evasion su Kali Linux
Veil Evasion si trova incluso nelle repository di Kali. Per funzionare necessita di Wine e di svariate librerie a 32 bit, quindi, ammesso che stiamo utilizzando un sistema a 64 bit, se non l’abbiamo già fatto in precedenza, come primo passo dobbiamo abilitare il supporto per l’architettura a 32 bit con il seguente comando
dpkg --add-architecture i386
Una volta abilitato il supporto per l’architettura a 32 bit, installiamo Wine e Veil Evasion
apt-get install wine veil-evasion
La prima volta che lanciamo Veil Evasion ci verrà richiesta l’installazione di Python e di Ruby su Wine per terminare la configurazione del tool. Possiamo seguire i wizard lasciando le impostazioni di default.
Creare un payload non rilevabile dagli antivirus
Molte guide asseriscono che, per creare un payload non rilevabile dagli antivirus, sia sufficiente qualche iterazione dell’encoder shikata_ga_nai su MSFvenom, utilizzato per la creazione del trojan nel tutorial precedente della rubrica su Metasploit Framework. Nulla di più falso! La codifica dei payload è una tecnica che serve alla gestione dei cosiddetti bad characters e non ha nulla a che vedere con l’elusione dei software antivirus. Il fatto che un antivirus non rilevi un payload codificato (cosa che non succede ormai da un po’ di tempo) è solo un effetto collaterale del processo di codifica, che cambiando la firma del file, lo faceva risultare pulito.
Creiamo il nostro payload con Veil Evasion, che darà molta più sicurezza di successo al nostro attacco. Lanciamo da terminale il comando veil-evasion
, ci si presenterà un menù con diverse opzioni
Diamo il comando list
che ci mostra una lista con tutti i payload disponibili
Scegliamo di utilizzare python/shellcode_inject/aes_encrypt
che nel mio caso si trova alla posizione 35, ma la posizione può cambiare da una versione ad un’altra. Scrivendo use 35
, selezioniamo il payload, una schermata ci illustra varie opzioni per la creazione. Scriviamo il comando generate
e diamo invio.
Un ulteriore prompt ci chiederà se utilizzare MSFvenom o se fornire un file personalizzato e il tipo di payload da creare: io ho scelto di utilizzare MSFvenom e di creare windows/meterpreter/reverse_tcp.
Se avete letto le guide precedenti della rubrica ormai dovrebbe essere abbastanza semplice configurare il payload. Impostiamo l’indirizzo IP della macchina attaccante come valore di LHOST e la porta sulla quale si vuole effettuare la connessione come valore di LPORT.
Di seguito la shell ci chiederà il nome del file che verrà generato e il metodo di compilazione. Diamo un nome al file e selezioniamo il primo metodo di compilazione della lista.
Diamo invio e attendiamo la creazione del payload. Una volta creato una schermata riassuntiva ci elencherà le opzioni utilizzate e il percorso nel quale trovare il file appena generato.
Un rapido test
Possiamo avviare la macchina Windows che vogliamo attaccare con l’antivirus attivato e spostare il payload generato su di essa. Il primo segno che tutto è andato bene, è che spostando il file generato con Veil Evasion sulla macchina vittima, l’antivirus non ci abbia avvertiti del fatto che fosse un file infetto. Possiamo avere la conferma di quanto scritto, lanciando una scansione manuale sul file.
Ora possiamo avviare msfconsole e attivare il solito handler. Un doppio click sul file generato con Veil Evasion sulla macchina vittima, ci regalerà l’ormai consueta sessione di meterpreter su di essa.