¿Cómo ocultan los hackers el malware dentro de los archivos y lo ejecutan cuando se descargan?

Para responder a esto, vale la pena describir cómo funciona el código ejecutable en un sistema operativo, y luego podemos explicar cómo se puede insertar malware en ese ejecutable.

La mayoría de los sistemas operativos modernos tienen un concepto de uncargadorejecutable , que toma un paquete binario (un archivo ejecutable) de instrucciones compiladas de la computadora y “ejecuta” el código en una CPU a la que tiene acceso el sistema operativo. Como simplificación general , el cargador desempaqueta un archivo ejecutable válido, carga las instrucciones adjuntas en la memoria direccionable y el sistema operativo alimenta esas instrucciones a la CPU para que las ejecute. Luego, la CPU ejecuta esas instrucciones secuencialmente hasta que el programa señala que está hecho. Un concepto rápido e importante aquí es que una instrucción de CPU puede indicar “saltar” a otra parte de la memoria y continuar ejecutándose. (más útil cuando el programa no cabe en la memoria disponible, y el sistema operativo necesita agrupar las instrucciones en algunos bolsillos diferentes de memoria disponible).

También es relevante el formato de un archivo ejecutable. Si toma la estructura de archivo ejecutable portátil de Windows como ejemplo, básicamente hay un conjunto de encabezados que describen las características del código para el cargador, y seguido de un conjunto de datos binarios que representan las instrucciones que componen el programa / aplicación.

Para el código interpretado, el concepto es similar: un bloque de código se encapsula en un formato de archivo que analiza un intérprete de software, pasa instrucciones a otra capa de software que envía instrucciones de la máquina a la CPU como se describió anteriormente. Las “macros” y los scripts son buenos ejemplos de esta manifestación.

Ok, simplificaciones brutas en la mano, ahora podemos preguntar ” ¿cómo se oculta el malware dentro de un ejecutable”?

Se pueden usar algunos métodos generales:

  1. Lo más básico es simplemente agregar instrucciones más válidas (maliciosas) al final del ejecutable y modificar las instrucciones de apertura para que la CPU ejecute primero el código malicioso. Para que parezca que el programa está bien, el código malicioso, una vez completado, devuelve el control (saltos) al comienzo de las instrucciones originales y el programa se ejecuta como se esperaba.
  2. Existen muchas variaciones del n. ° 1, ya que es sospechoso que un programa normal salte al final de las instrucciones y luego regrese al principio. Por lo tanto, en la práctica, el código malicioso podría insertarse en cualquier parte del archivo ejecutable y activarse más adelante . Por ejemplo, una subrutina que un actor malintencionado sabe que eventualmente se ejecutará podría ser el desencadenante, ejecutando el código malicioso antes de finalizar la tarea esperada.
  3. Es posible que el autor del código malintencionado no quiera tener el código malicioso incrustado en el ejecutable. En cambio, incrustan código que simplemente descarga un ejecutable malicioso y luego lo ejecuta . (Érase una vez, esto se llamaría un Caballo de Troya). Esto puede ser deseable para que el autor pueda modificar su código, o potencialmente eliminar diferentes cargas útiles dependiendo del sistema operativo que lo solicite.

Hay otras técnicas más avanzadas que ciertamente he omitido, pero todas se basan en estos principios.

A2A: hay 2 formas básicas.

Una es colocar el malware en lo que se presenta como un archivo ejecutable que algunas personas realmente desearían ejecutar. La capacidad de ejecución es a menudo obvia, pero una forma complicada de lograrlo es con archivos .doc que tienen macros. Las personas a menudo abren archivos .doc adjuntos a correos electrónicos, incluso si saben mejor que abrir archivos ejecutables. Más generalmente, a menos que un ejecutable esté firmado por una fuente en la que pueda confiar, debe tener mucho cuidado al ejecutar archivos descargados.

La otra forma es presentarlo como un archivo de datos que explota un error en un programa de aplicación particular que utiliza ese tipo de datos. Al explotar el error, se puede ejecutar un código arbitrario. La aplicación que más se ha explotado de esta manera es el reproductor Flash. Debido a este tipo potencial de vulnerabilidad, es muy importante mantener actualizado todo su software. En realidad, es más importante que ejecutar un software antivirus.

Hay varias formas de hacer esto. Tengo dos ejemplos en mente.

  1. Virus
  2. Código de macro malicioso

Los virus se colocarán comúnmente en la carpeta / contenido de otro programa ejecutable. Luego modifican las instrucciones del archivo .EXE para que también ejecute el virus.

Es bastante difícil notar la presencia de un virus manualmente, ya que no existe individualmente, pero se coloca en el contenido de otro programa. Así es como se esconde.

En cuanto al segundo caso, he insertado un enlace al malware Ransomware, ya que es el caso más común que utiliza este método.

MS Word tiene la capacidad de ejecutar comandos con una función que se llama Macros.

Los comandos de macros se pueden colocar / ocultar en un documento de MS Word. Ya ves a dónde va esto, ¿verdad?

Al colocar las Macros maliciosas en un documento, los ciberdelincuentes pueden engañarlo para que ejecute el código malicioso por su cuenta, lo que hará que parezca que se infectó de la nada.

Los documentos de Word y Excel son populares para este mismo propósito porque es fácil ocultar malware dentro de ellos. Veamos las formas populares:

Macro: puede usar metasploit para generar código VBA que se puede colocar dentro de la sección macro de un documento de Word u Office. Es mejor guardar el documento como un archivo .Doc de Office 97.

Cuando la víctima abra el archivo, deberá convencerlos de presionar el botón amarillo en la parte superior de la página. Se parece a esto:

Cuando lo hagan, se ejecutará el código de macro y el hacker tendrá acceso completo a la computadora de la víctima.

Si bien me gusta este método, requiere un poco de ingeniería social creativa para convencer a la víctima de hacer clic en el botón “Habilitar contenido”.

El libro Metasploit Unleashed tiene un buen tutorial sobre cómo hacer esto:

Métodos de infección VBScript

Ole Objects: He tenido más éxito con este método que con el método Macro. Usando objetos Ole, un atacante puede insertar archivos en otro documento de Word / Excel. El resultado parece un acceso directo en un documento de Word.

Esencialmente, creo un script VB y lo incrusto en el documento de Word. Cuando la víctima hace doble clic en el icono, Word le pide que responda una pregunta de sí / no. La pregunta parece inofensiva y la mayoría de las personas simplemente hacen clic en “sí” para obtener lo que están buscando.

Una vez más, cuando la víctima hace clic en “sí”, el atacante tiene control total sobre la computadora. Para una mayor tasa de éxito contra la detección, el atacante puede proteger con contraseña el archivo.

Una última nota, se puede hacer que el objeto se vea como un archivo jpg inocuo.

DDEAuto: A principios de este mes, Sensepost escribió un artículo sobre el abuso de DDEAuto. No he jugado mucho con esta técnica, así que les dejaré explicar:

Código exec de macro en msword

¡Disfrutar! 🙂

Los hackers usan procedimientos de llamada dentro del archivo de configuración, archivos ejecutables o dentro del instalador web. Todo lo anterior redirige a la víctima a sitios de malware comprometidos clonando el sitio original. O con algunas secuencias de comandos integradas en el software para secuestrar el navegador de las víctimas.

En el registro y en la configuración de PC de los sistemas operativos Windows, la ejecución automática o runonce se ejecuta automáticamente después de la instalación y cuando reinicia el sistema.

Los troyanos y el malware usan la configuración de ejecución automática o ejecución automática.