¿Cómo crear malware? (parte 7)

 

En la entrega anterior analizamos la utilización de Metasploit Framework para crear archivos malignos a través de msfpayload. En esta ocasión vamos a ver cómo modificar esos archivos, para evitar que sean detectador por soluciones antimalware.

Codificación de Malware

Si tomamos el malware que creamos en la entrega anterior con msfpayload y lo analizamos con algún servicio como www.virustotal.com, veremos que la mayoría de los productos antimalware lo detectan como una amenaza.

(al día 20/09/12, 33 de 43 motores lo detectaron como malware)

Evidentemente, necesitamos hacer algo para modificar esta situación. En uno de los artículos anteriores pudimos observar que modificando ciertos parámetros de una archivo podríamos lograr que el mismo no sea fácilmente detectado. Ahora vamos a hacer algo similar, pero utilizando una herramienta que se incluye en Metasploit Framework.

Empezando con msfencode

Esta herramienta nos permite modificar el malware creado con msfpayload de forma tal que las soluciones antimalware tenga problemas para detectarlo.

De todos modos, no existe ningún método infalibre para evitar la detección, pero podemos realizar varios cambios como para bajar el porcentaje de detecciones. (Si usamos virustotal.com, podemos guiarnos por el porcentaje de productos que ven a nuestro archivo como malware).

Para conocer las opciones disponibles en este programa, debemos ejecutar lo siguiente:

msfencode -h

Volviendo a msfpayload

A diferencia de como lo hicimos en el artículo anterior, esta vez vamos a crear nuestro archivo en un formato conocico como “raw” o “datos crudos” que, básicamente, son los datos del programa sin procesar y formatear.

Cuando creamos un archivo ejecutable de Windows, verdaderamente estamos dando un formato EXE a los datos, para que Windows sepa cómo debe ejecutarlos.

Para crear el archivo en formato Raw, debemos utilizar la opción “R” (de Raw) en lugar de la “X” (de Exe), así:

msfpayload windows/adduser USER=fabian PASS=Fabian123 R > adduser.raw

Una vez generado esto, podemos codificar los datos.

Ahora sí, msfencode

A continuación tenemos una de las posibles combinaciones de opciones para codificar nuestro archivo:

msfencode -i adduser.raw -o adduser2.exe -t exe -e x86/shikata_ga_nai

Vamos a hacer un repaso de las opciones utilizadas:

-i adduser.raw (el archivo de entrada)

-o adduser.exe (el archivo de salida)

-t exe (el formato de archivo a generar)

-e x86/shikata_ga_nai (el codificador a utilizar)

Con el comando “msfencode -l” podemos obtener una lista de todos los codificadores (encoders) disponibles.

Con el archivo que acabamos de generar, la detección de virustotal.com bajó a 30 de 43 motores (solamente 3 motores menos que antes). Si tenemos en cuenta que esto es sólo lo más básico que podemos hacer con msfencode, nos daremos cuenta de que es una herramienta muy potente.

Probando que todo funcione

Una vez que hayamos conseguido un nivel de detección aceptablemente bajo, debemos corroborar que el archivo sigue funcionando correctamente (la codificación en ciertos casos puede dejar a los archivos inservibles).

En este caso, las pruebas fueron correctas y la ejecución del archivo generó el usuario “fabian” con la contraseña “Fabian123”.

También tenemos la posibilidad de codificar un archivo varias veces y con distintos codificadores. Obviamente, esto aumenta la posibilidad de romper el archivo.

El programa msfencode necesita mucho tiempo de “prueba y error”, hasta que encontremos una combinación de codificaciones que tenga un bajo nivel de detección y permita que los archivos sigan funcionando correctamente, pero vale la pena el esfuerzo!

La ética ante todo

Ya sea a través de un seminario, un curso, un libro o este tipo de artículos, cuando enseño seguridad informática lo hago pensando en que estos conocimientos van a ser utilizados para mejorar la seguridad de los sistemas.

Obviamente, queda en la conciencia de cada individuo cómo utilizar los conocimientos aquí expuestos pero, debemos recordar, que un verdadero profesional de la seguridad nunca utiliza sus conocimientos para fines destructivos ni ilegales, si no para ayudar a sus pares a reducir los riesgos de ataques y pérdidas de datos.

Entrega Final

Esta ha sido la entrega final de esta serie de artículos sobre malware. Hemos hecho una buena introducción a los métodos en los que podemos crear este tipo de software sin necesitar demasiado conocimiento sobre programación ni arquitecturas de computadoras (ambas áreas de estudio fundamentales si queremos desarrollar un malware ‘desde cero’).

Hasta la próxima!

Carrera relacionada: Seguridad Informática

Fabian Portantier
Coordinador Carrera Seguridad Informática
www.portantier.com
twitter: @portantier

mail: seguridadinformatica@educacionit.com.ar
web: www.educacionit.com.ar/carrera-seguridad-informatica

2 comentarios en “¿Cómo crear malware? (parte 7)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *