¿Se puede agregar un código aleatorio inútil a un virus para cambiar su hash para que no haya 2 usuarios con el mismo hash? [duplicar]

1

No estoy seguro de cómo funciona exactamente el software antivirus, pero por lo que entiendo, solo comprueba los hashes en su base de datos de virus conocidos (cómo decide que algo es un virus es una historia diferente).

Entonces, es posible que un sitio malicioso agregue un código aleatorio inútil a su virus, de modo que cuando compile el código en un ejecutable siempre tendrá un hash único, por lo que el antivirus no tendrá una referencia de hash para él. ?

Si es así, ¿por qué no se hace, y cuál es el punto del software antivirus que funciona utilizando solo comparación de hash?

    
pregunta kat 28.08.2016 - 14:10
fuente

3 respuestas

3

El antivirus solo atrapará ataques amplios o cargas útiles predeterminadas de las herramientas de uso común.

Un atacante experto podrá modificar, codificar u ofuscar su carga útil para evitar este tipo de detección.

Dicho esto, la mayoría de los antivirus también buscarán en el archivo ejecutable las cadenas que solo se encuentran en el malware. Por ejemplo, aquí hay un fragmento de Invoke-Mimikatz.ps1 :

$e_res2Field = $TypeBuilder.DefineField('e_res2', [UInt16[]], 'Public, HasFieldMarshal')

El antivirus puede buscar cadenas como esta dentro del archivo, y luego marcarlo si detecta una coincidencia. Esto también puede ser derrotado con bastante facilidad. Un ejemplo sería tomar el archivo y dividirlo en pequeñas cadenas. Así:

"$e_res2Fi" + "eld = $TypeBui" + "lder.DefineField('e_res2'," + " [UInt16[]], 'Public, HasFieldMarshal')"   

(no intenta ser sintácticamente correcto aquí, pero entiendes la idea)

Y luego use un script de envoltorio para juntar las cadenas en la memoria y ejecutar el código original. Otro ejemplo más común sería encriptar la carga útil primaria y luego descifrar un código auxiliar y ejecutar la carga útil en la memoria.

Algunos antivirus también realizarán análisis dinámicos, donde el archivo se ejecuta en un entorno virtualizado o simulado para detectar las acciones que llevaría a cabo el ejecutable o para analizar la memoria posterior al descifrado.

Este tipo de antivirus generalmente se puede omitir simplemente consumiendo suficiente tiempo o memoria antes de descifrar la carga útil primaria.

    
respondido por el Justin LeMay 30.08.2016 - 05:47
fuente
0

La edición binaria implica encontrar firmas de virus y modificarlas. Una vez que se cambia la firma, el antivirus ya no reconocerá la firma. Esto se puede hacer usando un Editor Hex. **** Algunos antivirus hace "heurísticos" los programas de comprobación para detectar tipos de mal comportamiento que pueden indicar un nuevo virus desconocido.

    
respondido por el Adel Algbawi 28.08.2016 - 15:33
fuente
0

Sí. Los creadores de virus y malware utilizan lo que se llama crypting services para modificar sus cargas útiles en un Manera que evita la detección por el software antivirus actual.

Cuando la nueva firma se agrega a las bases de datos, los creadores ejecutan su malware a través del servicio de cifrado nuevamente y el ciclo se reinicia.

Existen otras técnicas heurísticas para detener algunos programas maliciosos (por ejemplo, hay operaciones que ningún software legítimo tendría que realizar) que podrían prevenir ciertas clases de programas maliciosos, sin importar cuán ofuscados estén, pero en general el antivirus solo debe verse como uno de muchas capas en una arquitectura de seguridad.

    
respondido por el GnP 28.08.2016 - 16:10
fuente

Lea otras preguntas en las etiquetas