Per evitare la soluzione antivirus, devi prima capire come l'antivirus segnala la tua particolare backdoor. Il primo metodo utilizzato dal motore AV è l'ampio set di firme di file dannosi per la ricerca di determinati pattern e firme in un file eseguibile. Nel caso di Metasploit, le soluzioni AV dispongono di firme per il modello exe predefinito (data / template / template_x86_windows.exe) e qualsiasi file eseguibile generato utilizzando questo modello predefinito verrà contrassegnato dall'AV, indipendentemente dal codice shell corrente in esso contenuto. Un modo semplice per superare questo problema sarà quello di generare il tuo shellcode separatamente e quindi creare un exe personalizzato e incorporare lo shellcode in esso. Bypassare lo shellcode è facile usando l'encoder shikata_ga_nai poiché è un encoder polimorfico che genera ogni volta uno shellcode diverso.
La tecnica successiva utilizzata dal motore AV è la sandbox in cui la backdoor verrà eseguita per un periodo di tempo molto breve e il suo comportamento verrà analizzato in fase di esecuzione. Cercherà segni come allocare un blocco di memoria RWX o stabilire una connessione inversa. Un modo semplice per aggirare questo è utilizzare un ciclo fittizio o blocchi di codice che vengono eseguiti fino alla scadenza del timer sandbox senza eseguire attività dannose.
Infine, i moderni motori AV hanno più componenti come un modulo separato per il traffico di rete, web, email ecc. Poiché meterpreter è un payload in staging in cui il primo stager scarica il file DLL meterpreter della seconda fase, se la connessione attraverso la quale la DLL viene trasferita non è crittografato, la seconda fase della DLL verrà rilevata indipendentemente dal fatto che sia stato bypassato l'AV nella prima fase o meno. È possibile utilizzare il tester meter HTTPS di inversione o binding per ignorare questa restrizione.
Ho usato Veil in alcune occasioni ed è un modo semplice per bypassare AV. L'unica limitazione è l'aumento di dimensioni dovuto all'interprete Python completo che deve essere incorporato con l'EXE. Veil può fare il suo lavoro utilizzando gli exe nativi e senza richiedere l'interprete python, ma la dimensione del codice è ancora aumentata a causa della routine di crittografia e decrittografia. Se la dimensione non è un problema, puoi usare Veil. Tuttavia, in determinati ambienti (come i dispositivi embedded o le firme delle dimensioni dei file IDS) dove la dimensione è davvero un grosso ostacolo, devi creare da solo una backdoor personalizzata da zero.