Modules
Como mencionamos anteriormente, los módulos de Metasploit son scripts preparados con un propósito específico y funciones correspondientes que ya han sido desarrolladas y probadas en el mundo real. La categoría de exploit consiste en los llamados proof-of-concept (POCs) que pueden ser utilizados para explotar vulnerabilidades existentes de manera mayormente automatizada. Muchas personas a menudo piensan que el fallo de un exploit demuestra la inexistencia de la vulnerabilidad sospechada. Sin embargo, esto solo prueba que el exploit de Metasploit no funcionó, y no que la vulnerabilidad no exista. Esto se debe a que muchos exploits requieren personalización según los hosts objetivo para que funcionen. Por lo tanto, las herramientas automatizadas como el framework Metasploit solo deben considerarse herramientas de apoyo y no un sustituto de nuestras habilidades manuales.
Una vez que estamos en msfconsole, podemos seleccionar de una lista extensa que contiene todos los módulos disponibles de Metasploit. Cada uno de ellos está estructurado en carpetas, que se verán de la siguiente manera:
Sintaxis de los Módulos
<No.> <type>/<os>/<service>/<name>Ejemplo
794 exploit/windows/ftp/scriptftp_listIndex No.
El campo No. se mostrará para seleccionar el exploit que queremos durante nuestras búsquedas. Veremos más adelante cómo este campo puede ser útil para seleccionar módulos específicos de Metasploit.
Type
El campo Type es el primer nivel de segregación entre los módulos de Metasploit. Al observar este campo, podemos saber qué logrará el código de este módulo. Algunos de estos tipos no son directamente utilizables como lo sería un módulo de exploit. Sin embargo, están destinados a introducir la estructura junto a los interactuables para una mejor modularización. Para explicarlo mejor, estos son los tipos posibles que podrían aparecer en este campo:
Auxiliary
Escaneo, fuzzing, sniffing y capacidades de administración. Ofrecen asistencia y funcionalidad extra.
Encoders
Garantizan que los payloads lleguen intactos a su destino.
Exploits
Módulos que explotan una vulnerabilidad y permiten la entrega del payload.
NOPs
(No Operation code) Mantienen el tamaño del payload consistente entre intentos de exploit.
Payloads
Código que se ejecuta de forma remota y se comunica de vuelta con la máquina atacante para establecer una conexión (o shell).
Plugins
Scripts adicionales que pueden integrarse dentro de una evaluación con msfconsole.
Post
Amplia gama de módulos para recopilar información, realizar pivotes más profundos, etc.
Nota: Al seleccionar un módulo para la entrega de payload, el comando use <no.> solo puede usarse con los siguientes módulos que pueden actuar como iniciadores (o módulos interactuables):
Auxiliary
Escaneo, fuzzing, sniffing y capacidades de administración.
Exploits
Módulos que explotan una vulnerabilidad y permiten la entrega del payload.
Post
Amplia gama de módulos para recopilar información, realizar pivotes más profundos, etc.
OS
El campo OS especifica para qué sistema operativo y arquitectura se creó el módulo. Naturalmente, diferentes sistemas operativos requieren código diferente para obtener los resultados deseados.
Service
El campo Service se refiere al servicio vulnerable que se está ejecutando en la máquina objetivo. Para algunos módulos, como los auxiliary o post, este campo puede referirse a una actividad más general, como gather, que se refiere a la recolección de credenciales, por ejemplo.
Name
Finalmente, el campo Name explica la acción específica que puede realizarse utilizando este módulo, creado para un propósito específico.
Búsqueda de Módulos
Metasploit también ofrece una función de búsqueda bien desarrollada para los módulos existentes. Con la ayuda de esta función, podemos buscar rápidamente entre todos los módulos utilizando etiquetas específicas para encontrar uno adecuado para nuestro objetivo.
MSF - Función de Búsqueda
Ejemplo de búsqueda
Podemos intentar encontrar el exploit EternalRomance para sistemas operativos Windows más antiguos. Esto se vería algo así:
Módulos coincidentes
Otra búsqueda más refinada podría verse así:
Módulos coincidentes
También podemos hacer nuestra búsqueda más específica, reduciéndola a una categoría de servicios. Por ejemplo, para el CVE, podríamos especificar el año (cve:<year>), la plataforma Windows (platform:<os>), el tipo de módulo que queremos encontrar (type:<auxiliary/exploit/post>), el rango de fiabilidad (rank:<rank>), y el nombre de búsqueda (<pattern>). Esto reduciría nuestros resultados solo a aquellos que coincidan con todos los criterios anteriores.
MSF - Búsqueda Específica
Módulos Coincidentes
Selección de Módulo
Para seleccionar nuestro primer módulo, primero necesitamos encontrar uno. Supongamos que tenemos un objetivo que ejecuta una versión de SMB vulnerable a los exploits de EternalRomance (MS17_010). Hemos encontrado que el puerto 445 del servidor SMB está abierto tras escanear el objetivo.
Resultados del Escaneo
Iniciaremos msfconsole y buscaremos este nombre de exploit específico.
MSF - Buscar MS17_010
Módulos Coincidentes
A continuación, queremos seleccionar el módulo apropiado para este escenario. A partir del escaneo de Nmap, hemos detectado que el servicio SMB está ejecutándose en la versión Microsoft Windows 7 - 10. Con algo de escaneo adicional del sistema operativo, podemos suponer que es un Windows 7 ejecutando una instancia vulnerable de SMB. Procedemos a seleccionar el módulo con el número de índice 2 para probar si el objetivo es vulnerable.
Uso de Módulos
Dentro de los módulos interactivos, hay varias opciones que podemos especificar. Estas se utilizan para adaptar el módulo Metasploit al entorno dado. Debido a que en la mayoría de los casos siempre necesitamos escanear o atacar diferentes direcciones IP, requerimos esta funcionalidad para poder establecer nuestros objetivos y ajustarlos. Para verificar qué opciones deben configurarse antes de que se pueda enviar el exploit al host objetivo, podemos usar el comando show options. Todo lo que se requiere establecer antes de la explotación tendrá un "Sí" en la columna Requerido.
MSF - Seleccionar Módulo
Opciones del Módulo (exploit/windows/smb/ms17_010_psexec)
Opciones del Payload (windows/meterpreter/reverse_tcp)
Objetivo del Exploit:
Aquí vemos cuán útil puede ser la etiqueta de número. Porque ahora, no tenemos que escribir toda la ruta, solo el número asignado al módulo Metasploit en nuestra búsqueda. Podemos usar el comando info después de seleccionar el módulo si queremos saber algo más sobre el módulo. Esto nos dará una serie de información que puede ser importante para nosotros.
MSF - Información del Módulo
Información del Módulo
Información sobre el Payload:
MSF - Especificación de Objetivo Permanente
Opciones del Módulo
Opciones del Payload (windows/meterpreter/reverse_tcp)
Objetivo del Exploit:
Una vez que todo esté configurado y listo, podemos proceder a lanzar el ataque. Tenga en cuenta que el payload no se estableció aquí, ya que el predeterminado es suficiente para esta demostración.
Ejecución del Exploit
Salida de Ejecución
Interacción con el Objetivo
Hemos obtenido un shell en la máquina objetivo y podemos interactuar con él. Este ha sido un ejemplo rápido y directo de cómo msfconsole puede ayudar rápidamente, pero sirve como un excelente ejemplo de cómo funciona el marco. Solo se necesitó un módulo sin selección de payload, codificación o pivoteo entre sesiones o trabajos.
Last updated
Was this helpful?