Para poder evadir la solución antivirus, primero debe comprender cómo el antivirus marca su puerta trasera en particular. El primer método que utiliza el motor de AV es su amplio conjunto de firmas de archivos maliciosos para buscar patrones y firmas particulares en un ejecutable. En el caso de Metasploit, las soluciones de AV tienen firmas para la plantilla exe predeterminada (data / template / template_x86_windows.exe) y cualquier archivo ejecutable que genere utilizando esta plantilla predeterminada será marcado por el AV independientemente del código de shell real. Una forma fácil de superar este problema será generar su Shellcode por separado y luego crear un archivo ejecutable personalizado e incrustar el Shellcode en él. Pasar por alto el shellcode es fácil usando el codificador shikata_ga_nai, ya que es un codificador polimórfico que genera códigos de shell diferentes cada vez.
La siguiente técnica que utiliza el motor AV es la caja de arena donde se ejecutará su puerta trasera durante un período muy corto de tiempo y se analizará su comportamiento en el tiempo de ejecución. Buscará señales como asignar un bloque de memoria RWX o establecer una conexión inversa. Una forma fácil de evitar esto es usar un bucle ficticio o bloques de código que se ejecutan hasta que el temporizador de sandbox expire sin realizar ninguna tarea maliciosa.
Finalmente, los motores AV modernos tienen múltiples componentes, como un módulo separado para el tráfico de red, web, correo electrónico, etc. Dado que meterpreter es una carga útil por etapas en la que el primer stager descarga el archivo DLL de meterpreter de la segunda etapa, si la conexión a través de la cual se transfiere el DLL no cifrada, la DLL de la segunda etapa se detectará independientemente de si ha omitido el AV en la primera etapa o no. Puede utilizar el contador de medidor HTTPS inverso o vincular para omitir esta restricción.
He usado Veil en algunas ocasiones y es una manera fácil de evitar el AV. La única limitación es el aumento de tamaño debido al intérprete completo de Python que debe estar integrado con el EXE. Veil puede hacer su trabajo usando exe nativos también sin el requisito del intérprete de Python, pero el tamaño del código sigue aumentando debido a la rutina de cifrado y descifrado. Si el tamaño no es un problema, puedes usar Veil. Sin embargo, en ciertos entornos (como dispositivos incrustados o firmas de tamaño de archivo IDS) donde el tamaño es realmente una gran limitación, usted debe crear una puerta trasera personalizada desde el principio.