En este artículo vamos a hablar de lo más básico de Metasploit y de los comandos de Metasploit utilizados en la interfaz de línea de comandos. Al principio, la línea de comandos de la consola de MSF y el número de comandos disponibles puede parecer mucho y difícil de entender y utilizar, pero no se deje intimidar por ellos. Una vez que entiendas el concepto y la estructura clara será muy fácil. Si lo juntamos todo, el framework de Metasploit consiste en el núcleo y la base, un montón de exploits, payloads, módulos (clases Ruby), plugins, scripts y múltiples interfaces de usuario. El marco Metasploit también contiene algunas herramientas de recopilación de información llamada módulos auxiliares. Los módulos auxiliares se pueden utilizar para el escaneo de puertos, la identificación de servicios, el esnifado de contraseñas y la enumeración de parches de Windows. Metasploit es altamente personalizable para los usuarios avanzados y puede ser adaptado para satisfacer sus necesidades personalizadas escribiendo sus propios exploits, módulos, plugins y scripts. Si Metasploit no proporciona el módulo de recopilación de información que necesita por defecto, entonces puede simplemente escribirlo usted mismo.

La msfconsole es la interfaz de usuario conocida por ser la interfaz más estable y con la que trabajaremos a lo largo de los tutoriales de Metasploit en Hacking Tutorials. Aparte de la estabilidad, otro beneficio de la msfconsole es la opción de ejecutar comandos externos como el comando ping y el autocompletado de pestañas. También hay una interfaz gráfica de usuario disponible para Metasploit llamada Armitage. Veremos Armitage y cómo usarlo en lugar de msfconsole en un tutorial posterior. Vamos a continuar este tutorial de comandos de Metasploit con la actualización del Framework de Metasploit si es necesario y luego cambiar a la msfconsole para ver qué comandos están disponibles para nosotros.

Comandos básicos de Msfconsole

Asumiendo que estás en Kali Linux 2016 rolling edition podemos iniciar el framework de Metasploit y msfconsole haciendo clic en el icono de Metasploit en el dock. Esto iniciará el servicio PostgreSQL y el servicio Metasploit automáticamente.

Actualización de Metasploit con msfupdate

Comencemos con la actualización de Metasploit utilizando el siguiente comando en una sesión de terminal (no en msfconsole):

msfupdate

Este comando debería actualizar el framework Metasploit a la última versión. Las actualizaciones dicen que deberíamos esperar actualizaciones semanales(ish). Cuidado: Ejecutar msfupdate podría romper tu instalación de Metasploit. Después de ejecutar este comando para este tutorial nos encontramos con errores como:

Este error tenía algo que ver con PostgreSQL y para solucionar este problema primero intente ejecutar los siguientes comandos:

apt-get update

apt-get upgrade

apt-get dist-upgrade

Esto resolvió el problema por nuestra parte, probablemente tenía algo que ver con una versión obsoleta de un paquete. ¿Su instalación de Metasploit se ha roto después de ejecutar una actualización y necesita ayuda para solucionarlo? Utiliza la función de comentarios más abajo e intentaremos ayudarte lo mejor posible. Continuemos con la msfconsole.

Metasploit msfconsole

Cuando Metasploit ha arrancado y la msfconsole está disponible podemos teclear ‘help’ para obtener una visión general de los comandos del núcleo y del backend de Metasploit con una descripción:

Comandos de Metasploit

Sería una pérdida de tiempo y estaría fuera del alcance de este tutorial explicar cada uno de los comandos de Metasploit en este tutorial. Sólo queremos que usted esté en funcionamiento tan pronto como sea posible en Metasploit y por lo tanto un conocimiento básico de los comandos básicos debería ser suficiente por el momento. Usted aprenderá mucho más acerca de las opciones avanzadas en el camino. Además, la mayoría de las descripciones de los comandos deberían ser muy claras sobre lo que el comando hace exactamente y cómo usarlo. Por ahora vamos a ver los comandos básicos de Metasploit más utilizados en este tutorial como:

  • Comandos básicos: search, use, back, help, info y exit.
  • Comandos de explotación: set para establecer variables y show para mostrar las opciones de explotación, objetivos, payloads, encoders, nops y las opciones avanzadas y de evasión.
  • Comandos de ejecución de exploits: run y exploit para ejecutar exploits contra un objetivo.

También hay una completa documentación de Metasploit incluida con Metasploit que se puede utilizar para aclarar cualquier cosa. Vamos a echar un vistazo a los comandos de Metasploit.

Comandos de Metasploit

Vamos a pasar por los comandos básicos de Metasploit rápidamente para que podamos empezar con la parte divertida y aprender a utilizar los exploits en una máquina vulnerable como Metasploitable 2. Los comandos básicos consisten en help, back, exit e info.

Comandos use, back y exit

El comando use en Metasploit se utiliza para activar un módulo concreto y cambia el contexto de la msfconsole a ese módulo concreto. El nombre del exploit se mencionará en rojo en la línea de comandos como sigue:

En este ejemplo hemos cambiado el contexto de la línea de comandos al exploit llamado realvnc_client. A partir de aquí podemos recuperar información sobre este exploit, establecer los parámetros necesarios del exploit y ejecutarlo contra un objetivo.

Si queremos dejar el contexto del exploit y volver a la msfconsole tenemos que utilizar el comando back. El comando back nos llevará de vuelta a la msfconsole en el contexto general. A partir de aquí podemos volver a emitir el comando use para cambiar a otro módulo de Metasploit.

El comando exit cerrará la msfconsole y nos llevará de nuevo al terminal de Kali Linux.

Comando help

Como hemos visto anteriormente en este tutorial el comando help nos devolverá una lista de posibles comandos junto con una descripción cuando lo escribamos en la msfconsole. Cuando hay un exploit activo seleccionado podemos usar el comando help para obtener una lista de comandos del exploit:

Comando info

Cuando se selecciona un exploit con el comando use podemos recuperar información como el nombre, la plataforma, el autor, los objetivos disponibles y mucho más usando el comando info. En la siguiente captura de pantalla hemos utilizado el comando info en un exploit llamado ie_execcommand_uaf:

Comando de búsqueda

En el momento de escribir este artículo Metasploit contiene más de 1.500 exploits diferentes y se añaden nuevos regularmente. Con este número de exploits la función de búsqueda, y saber cómo usarla, se vuelve muy importante. La forma más sencilla de utilizar la función de búsqueda es emitiendo el comando search seguido de un término de búsqueda, por ejemplo flash para buscar exploits relacionados con Flash player. Al utilizar el comando de búsqueda Metasploit buscará el término de búsqueda dado en los nombres de los módulos y la descripción de la siguiente manera:

Como era de esperar hay una gran cantidad de exploits relacionados con el software Flash player a menudo vulnerable. La lista también incluye el día cero CVE-2015-5122 Adobe Flash opaqueBackground Use After Free que se descubrió en la brecha de datos de Hacking Team el año pasado.

Búsqueda de exploits con palabras clave

También puede utilizar el comando de búsqueda con una palabra clave para buscar un autor específico, un ID de OSVDB o una plataforma. El comando ‘help search’ muestra las palabras clave disponibles en la msfconsole como sigue:

El uso del comando de búsqueda con una palabra clave es bastante sencillo y se muestra en la parte inferior del texto de ayuda. El siguiente comando se utiliza para buscar módulos con un CVE ID de 2016:

msf > search cve:2016

Esto nos devuelve todos los exploits con un CVE ID de 2016 incluyendo y módulo auxiliar de exploración para el muy reciente firewall SSH backdoor de Fortinet:

Comandos de Metasploit para exploits

En el capítulo anterior hemos aprendido los comandos de Metasploit para activar un exploit en la msfconsole y cambiar el contexto de la línea de comandos al exploit con el comando use. Ahora vamos a ver cómo mostrar los parámetros del exploit y cómo cambiarlos con el comando set. También veremos cómo mostrar las cargas útiles, los objetivos y las opciones avanzadas y de evasión. El comando help show mostrará los parámetros disponibles para el comando show:

Show options

El comando show options mostrará los parámetros disponibles para un exploit si se utiliza cuando la línea de comandos está en contexto de exploit. Usemos el exploit adobe_flash_shader_drawing_fill y echemos un vistazo a las opciones con el siguiente comando:

msf > Use exploit/multi/browser/ adobe_flash_shader_drawing_fill

Seguido del comando show options:

msf > show options

El exploit de Flash contiene un total de 6 opciones de las cuales sólo 2 son necesarias:

  • Retries
  • SRVHOST (Requerido)
  • SRVPORT (Requerido)
  • SSL
  • SSLCert
  • URLPath

Nótese que el comando show options devuelve el objetivo actual seleccionado debajo de las opciones del módulo. El objetivo por defecto es 0 que es Windows para el exploit seleccionado.

Use el comando set seguido del nombre de la opción y el nuevo valor para cambiar los valores por defecto:

Set SRVHOST 192.168.0.100 para cambiar el valor de SRVHOST a 192.168.0.100

Set SRVPORT 80 para cambiar el puerto de 8080 a 80

Al utilizar de nuevo el comando show options puede verificar que los valores SRVHOST y SRVPORT han sido cambiados. Se pueden cambiar los valores booleanos utilizando el comando set con el nombre de la opción y true o false.

Show payloads

Cuando utilicemos el comando show payloads el msfconsole nos devolverá una lista de payloads compatibles con este exploit. En nuestro ejemplo de exploit de flash player nos devolverá bastantes payloads compatibles:

Un resumen de los exploits compatibles

Para utilizar un determinado payload es necesario utilizar el comando set seguido del nombre del payload:

Set payload linux/x86/exec

Mostrar objetivos

El comando show targets nos devolverá una lista de sistemas operativos que son vulnerables al exploit seleccionado. Cuando ejecutamos el comando obtenemos la siguiente salida para el exploit adobe_flash_shader_drawing_fill:

Un resumen de los objetivos disponibles para el exploit seleccionado.

Este exploit se dirige tanto a sistemas operativos Windows como Linux. Tenga en cuenta que podemos utilizar el comando info para obtener información adicional sobre este exploit y los objetivos.

Para establecer un objetivo podemos utilizar el comando set seguido del ID del objetivo:

set target 1

Al establecer el objetivo la lista de payloads se reducirá mucho porque sólo se mostrarán los payloads compatibles con el objetivo:

Show advanced

Al utilizar el comando show advanced podemos echar un vistazo a las opciones avanzadas del exploit.

Use el comando set seguido del parámetro advanced y el nuevo valor para cambiar la configuración avanzada:

Set displayablepayloadhandler true

Show encoders

El comando show encoders devolverá los codificadores compatibles. Los codificadores se utilizan para evadir firmas IDS/IPS simples que buscan ciertos bytes de su carga útil. Veremos los codificadores en detalle en un capítulo posterior de los tutoriales de Metasploit.

Para usar un codificador usa el comando set seguido del nombre del codificador.

Show nops

El comando show nops devolverá una lista de generadores NOP. Un NOP es la abreviatura de No Operation y se utiliza para cambiar el patrón de un sled NOP con el fin de eludir las firmas IDS/IPS simples de los sleds NOP comunes. Los generadores NOP comienzan con la arquitectura de la CPU en el nombre. Veremos los NOPS en un capítulo posterior de este tutorial.

Para utilizar un generador NOP utilice el comando set seguido del nombre del generador NOP. Cuando el exploit es lanzado los trineos NOP serán tomados del generador NOP.

Show evasion

El comando show evasion devuelve una lista de técnicas de evasión disponibles.

Para cambiar la configuración de las evasiones utilice el comando set seguido del parámetro evasion y el nuevo valor.

Comandos de Metasploit para la ejecución del exploit

Cuando se han configurado todas las opciones necesarias para el exploit, incluyendo un payload y configuraciones avanzadas como un generador NOP, opciones de evasión y codificación, el exploit está listo para ser ejecutado. El exploit puede ser ejecutado usando dos comandos: run y exploit. Simplemente escribe run o exploit en la msfconsole y el exploit se ejecutará.

Con esto concluye el tutorial de comandos de Metasploit por ahora. Si usted tiene preguntas con respecto a cualquiera de los comandos mencionados o no mencionados, por favor, pregunte a ellos utilizando la funcionalidad de los comentarios por debajo de este post. En el próximo tutorial de Metasploit vamos a enumerar la máquina Metasploitable 2. Después de eso vamos a hacer una evaluación de la vulnerabilidad con la información recopilada. Si aún no has instalado Metasploitable 2, puedes seguir primero el tutorial de instalación de Metasploitable 2.

Comparte en: