¿Cómo crear malware? (parte 6)

En la entrega anterior analizamos la utilización de Hashes Contextuales Desencadenados por Tramos para determinar qué porcentaje de diferencia existe entre dos o más archivos. En esta ocasión vamos a ver cómo crear malware utilizando la herramienta Metasploit Framework.

Metasploit Framework

De todas las herramientas de seguridad que existen, quizás esta es la que ha recibido mayor renombre en los últimos años. Debo confesar que me ha costado acostumbrarme a su utilización, debido a que, en cierta forma, simplifica el trabajo de una forma agresiva. Es una excelente herramienta, tan excelente que permite a personas que tienen un nivel de conocimiento muy básico en la materia vulnerar la seguridad de sistemas complejos.

Fue creada en el año 2003, como una herramienta para realizar pruebas de intrusión (Penetration Tests). En la actualidad, es el estándar de facto para la realización de este tipo de tareas.

El núcleo de Metasploit es software de código abierto. Las versiones comerciales se basan todas en dicho núcleo, y agregan funcionalidades como interfaces gráficas intuitivas y distintas posibilidades de ataque. De todos modos, la versión open source es un producto excelente, que cuenta con prácticamente todas las funcionalidades incluidas en las versiones comerciales.

Metasploit puede ser descargado desde http://www.metasploit.com/download.

Es un software multiplataforma (Windows / Linux) y su instalación es extremadamente sencilla.

msfpayload

Sin entrar en demasiados detalles sobre la utilización general de Metasploit, vamos a poner en práctica la herramienta ‘msfpayload’ que se incluye en la instalación.

Con dicha herramienta podemos crear un archivo que, al ser ejecutado nos permita tomar el control de sistema operativo víctima o realizar algunas otras acciones, como borrar archivos, crear cuentas de usuario, etc.

Estos archivos pueden ser creados en varios formatos, como código fuente C, Perl, Python y otros, así como también ejecutables del tipo Win32 (que es lo que vamos a utilizar a continuación).

Básicamente, lo que hace msfpayload es permitirnos crear un archivo que contenga el payload utilizado en las tareas de explotación de software. Para explicarlo rápidamente, el exploit es la herramienta que se aprovecha de una vulnerabilidad en un software, mientras el payload es el código que se ejecuta para tomar control del sistema o realizar distintas acciones maliciosas sobre el mismo.

Creación de malware con msfpayload

Para conocer cómo utilizar esta herramienta, vamos a ejecutarla con el parámetro ‘h’, de la siguiente forma:

msfpayload -h

Una vez hecho esto, veremos un resumen de todas las opciones que podemos utilizar.

Debemos seleccionar el payload a incluir en nuestro archivo, dentro de todos los que nos proporciona Metasploit.

Para conocer un listado de todos los payloads disponibles, podemos utilizar el parámetro ‘l’ (es una ele), así:

msfpayload -l

Una vez seleccionado el payload a utilizar, debemos indicar los parámetros a pasarle al payload, así como también indicar en qué formato queremos generar el archivo.

Por ejemplo, voy a crear un archivo ejecutable Win32 llamado “adduser.exe”, con un payload que cree un usuario llamado “fabian” y la contraseña “123456”. Vamos a utilizar el siguiente comando:

msfpayload windows/adduser USER=fabian PASS=123456 X > adduser.exe

(la ‘X’ es para generar un archivo ‘exe’ de Windows)

El resultado del comando será algo como lo siguiente:

Created by msfpayload (http://www.metasploit.com).
Payload: windows/adduser
Length: 275
Options: {“USER”=>”fabian”, “PASS”=>”123456”}

Esto nos indica que el archivo se ha creado exitosamente.

Podemos verificar el tipo de archivo con el comando ‘file’ (en Linux), así:

file adduser.exe

Obtendremos una salida similar a esta:

adduser.exe: PE32 executable (GUI) Intel 80386, for MS Windows

Esto quiere decir que el comando funcionó correctamente (logramos generar un archivo ejecutable de MS Windows)

Si ejecutamos este archivo en una PC que ejecute algún sistema operativo Windows, se creará un usuario llamado “fabian”, con la contraseña “123456” y se lo va a agregar al grupo de administradores del sistema.

Obviamente, aún queda analizar cómo podemos hacer para que una persona ejecute este archivo. Pero eso quedará para un próximo artículo.

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.

En la próxima entrega

Esto ha sido todo por hoy. En la próxima entrega analizaremos cómo modificar este malware y codificarlo para dificultar su detección por parte de software antimalware.

Hasta la próxima!


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

Un comentario en “¿Cómo crear malware? (parte 6)

Deja un comentario

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