Técnicas para la evasión de virus

11

¿Cuáles son algunas buenas técnicas de evasión de virus al usar ps_exec? Como pentestro, a menudo me encuentro con situaciones en las que no puedes, por ejemplo, explotar una máquina ya que están ejecutando software antivirus en sus máquinas. Estoy hablando principalmente de binarios que se guardan en la máquina de la víctima antes de ser ejecutados.

¿Cuáles son algunas buenas técnicas para, por ejemplo, generar dinámicamente una carga útil de medidor de metros para que pueda evadir el software AV?

    
pregunta Lucas Kauffman 23.10.2013 - 21:06
fuente

5 respuestas

15

Existen estrategias para mejorar las posibilidades de evadir el AV de un objetivo. La estrategia general es tratar de desarrollar una puerta trasera que sea lo más única posible. Escribir tu propia puerta trasera desde cero será lo más exitoso.

Un sobre protegido o "encriptado" alrededor del malware es una estrategia común. Sin embargo, los AV a veces marcarán el sobre y asumirán que el contenido es malware, lo que a veces sucede con UPX . A partir de 2015, Veil-Evasion se ha convertido en mi sobre preferido. para evadir la firma de software antivirus.

    
respondido por el rook 23.10.2013 - 21:44
fuente
10

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.

    
respondido por el void_in 23.10.2013 - 22:56
fuente
5

Además de usar Un marco interesante, llegué a gustarme Veil . Es un marco que ayuda a generar cargas útiles y archivos binarios diseñados específicamente para evadir el software antivirus. Está disponible en el repositorio de Kali.

    
respondido por el Lucas Kauffman 23.10.2013 - 21:06
fuente
0

La mayoría de AV parece detectar la "plantilla" exe / pe en lugar de la carga útil cifrada. Intente crear su propio programa c básico que ejecute shellcode en algún momento. Puede escribir código inútil todo alrededor de la llamada de carga útil real para generar programas únicos cada vez. Intente combinar un par de rondas shikata_ga_nai (msfecnode) con su plantilla ejecutable personalizada.

    
respondido por el Sebastian B. 23.10.2013 - 22:39
fuente
-1

Algunos de los mejores métodos que funcionan son:

  1. Codifique su propio archivo ejecutable o genere una puerta trasera de medidor de contador usando shellcode y luego insértela en su programa, use XOR o cualquier esquema de codificación equivalente y descifre en tiempo de ejecución. Utilice bucles, operaciones de E / S para retrasar la ejecución durante algún tiempo. En general, algunos vendedores de AV omiten los ejecutables que consumen el 100% de la CPU. Por lo tanto, diga que si el ejecutable se inicia al consumir el 100% de la CPU durante los próximos 2 minutos, a la larga pasará por alto algunos controles como el análisis de la caja fuerte de 15 segundos, etc.

  2. Para la persistencia, use el programador de tareas en lugar de las entradas del registro

  3. Autofirmar el ejecutable, esto evita muchos AVs. El ejemplo reciente es Petya Ransomware

  4. Combine los nombres de las funciones e implemente la protección Anti-VM

respondido por el Nipun Jaswal 05.07.2017 - 22:00
fuente

Lea otras preguntas en las etiquetas