¿Qué es Metasploit Framework y cómo funciona?

Con el ciberdelito en su punto más alto, es más importante que nunca aprender a utilizar la seguridad en el mundo empresarial. Las pruebas de penetración permiten a las empresas evaluar la seguridad general de su infraestructura de TI. Metasploit es uno de los mejores marcos de prueba de penetración que ayuda a una empresa a descubrir y reforzar las vulnerabilidades en sus sistemas antes de que los piratas informáticos los exploten. En pocas palabras, Metasploit permite piratear con permiso.

Las pruebas de penetración le permiten responder la pregunta: «¿Cómo puede alguien con intenciones malintencionadas meterse con mi red?» Mediante el uso de herramientas de prueba de lápiz, los profesionales de los sombreros blancos y DevSec pueden sondear redes y aplicaciones en busca de fallas y vulnerabilidades en cualquier punto a lo largo del proceso de producción e implementación pirateando el sistema.

A lo largo de este artículo, exploraremos qué es Metasploit, qué es meterpreter, qué es el framework Metasploit, los conceptos básicos del uso del framework Metasploit y los módulos que incluye.

¿Qué es Metasploit Framework?

Metasploit Framework es un marco de código abierto basado en Ruby que utilizan los profesionales de la seguridad de la información y los ciberdelincuentes para encontrar, explotar y validar las vulnerabilidades del sistema.

El marco consta de varias herramientas de explotación y herramientas de prueba de penetración.

Los equipos de seguridad de la información suelen utilizar Metasploit para pruebas de penetración (o «piratería ética») para identificar y remediar cualquier vulnerabilidad existente en las redes de una organización.

Los ciberdelincuentes pueden usar maliciosamente estas mismas capacidades de Metasploit para identificar y explotar vulnerabilidades en un sistema objetivo.

El marco de Metasploit es una herramienta muy poderosa que pueden utilizar los ciberdelincuentes y los piratas informáticos éticos para investigar vulnerabilidades sistemáticas en redes y servidores. Debido a que es un marco de código abierto, se puede personalizar y usar fácilmente con la mayoría de los sistemas operativos.

Historia

Creado en el marco del Proyecto Metasploit, Metasploit fue desarrollado originalmente en 2003 por HD Moore como una herramienta de red portátil basada en Perl.

Metasploit ha sido una herramienta favorita entre los profesionales de TI y seguridad desde 2003. Originalmente escrito en Perl en 2003 por HD Moore, Metasploit fue reescrito en Ruby en 2007. El Proyecto Metasploit fue adquirido por Rapid7 en 2009.

Desde entonces, Rapid7 ha desarrollado una edición comercial de Metasploit – Metasploit Pro. Metasploit Pro permite a los usuarios la automatización total de las pruebas de penetración, junto con otras funciones avanzadas, que incluyen:

  • Explotación manual
  • Evasión de antivirus e IPS / IDS
  • Pivote de proxy
  • Módulos posteriores a la exploración
  • Limpieza de sesión
  • Reutilización de credenciales
  • Ingeniería social
  • Generador de carga útil
  • VPN pivotante
  • Validación de vulnerabilidades
  • Pruebas de aplicaciones web.

Este marco se ha convertido en la herramienta de desarrollo y mitigación ideal para explotar. Antes de Metasploit, los probadores de lápiz tenían que realizar todas las sondas manualmente mediante el uso de una variedad de herramientas que pueden haber admitido o no la plataforma que estaban probando, escribiendo su propio código a mano e introduciéndolo en las redes manualmente. Las pruebas remotas eran prácticamente desconocidas y eso limitaba el alcance de un especialista en seguridad al área local y a las empresas que gastaban una fortuna en consultores de seguridad o TI internos.

¿Quién usa Metasploit?

Debido a su amplia gama de aplicaciones y disponibilidad de código abierto, Metasploit es utilizado por todos, desde el campo en evolución de los profesionales de DevSecOps hasta los piratas informáticos. Es útil para cualquiera que necesite una herramienta confiable y fácil de instalar que haga el trabajo independientemente de la plataforma o el idioma que se utilice. El software es popular entre los piratas informáticos y está ampliamente disponible, lo que refuerza la necesidad de que los profesionales de la seguridad se familiaricen con el marco incluso si no lo utilizan.

Metasploit ahora incluye más de 1677 exploits organizados en 25 plataformas, incluidas Android, PHP, Python, Java, Cisco y más. El marco también transporta casi 500 cargas útiles, algunas de las cuales incluyen:

  • Cargas útiles del shell de comandos que permiten a los usuarios ejecutar scripts o comandos aleatorios en un host.
  • Dinámicas que permiten a los evaluadores generar cargas útiles únicas para evadir el software antivirus.
  • Cargas útiles de Meterpreter que permiten a los usuarios controlar los monitores de dispositivos mediante VMC y hacerse cargo de las sesiones o cargar y descargar archivos.
  • Estáticas que permiten el reenvío de puertos y las comunicaciones entre redes.

¿Cómo funciona?

La arquitectura de Metasploit Framework consta de las siguientes partes:

Interfaces

Las interfaces son las diferentes plataformas a través de las cuales los usuarios pueden acceder a Metasploit Framework.

Hay cuatro interfaces disponibles:

  • MSFConsole (Metasploit Framework Console): la interfaz Metasploit más utilizada, la consola Metasploit permite a los usuarios acceder a Metasploit Framework a través de una interfaz de línea de comandos interactiva.
  • MSFWeb: una interfaz basada en navegador que permite a los usuarios acceder al marco de Metasploit.
  • Armitage: desarrollado por Raphael Mudge en 2013, Armitage es una interfaz gráfica de usuario basada en Java que permite a los equipos de seguridad colaborar compartiendo su acceso a hosts comprometidos.
  • RPC (llamada a procedimiento remoto): permite a los usuarios manejar mediante programación Metasploit Framework utilizando servicios de llamada a procedimiento remoto (RPC) basados ​​en HTTP. Además del Ruby nativo de Metasploit, los servicios RPC pueden operar a través de otros lenguajes, como Java, Python y C.

Bibliotecas

Las bibliotecas contienen las diferentes funciones de Metasploit Framework que permiten a los usuarios ejecutar exploits sin escribir código adicional.

Hay tres bibliotecas de Metasploit:

  • REX: habilita las tareas más básicas; contiene Base64, HTTP, SMB, SSL y Unicode.
  • MSF Core: proporciona una API común y define Metasploit Framework.
  • Base de MSF: proporciona una API fácil de usar.

Módulos

Metasploit Framework utiliza un software llamado módulos que se utilizan para realizar tareas como escaneos y explotación de objetivos.

Hay cinco tipos principales de módulos de Metasploit, clasificados según las tareas que realizan:

  • Cargas útiles: las cargas útiles son códigos de shell que realizan las acciones previstas por el usuario una vez que un exploit ha comprometido un sistema objetivo. Se pueden usar para abrir Meterpreters o comandos de shells. Los Meterpreters son cargas útiles sofisticadas que se utilizan durante un ciberataque para ejecutar código y realizar más tareas exploratorias.
  • Exploits: ejecuta secuencias de comandos para aprovechar las debilidades del sistema o de la aplicación y obtener acceso a los sistemas de destino.
  • Publicaciones (módulos posteriores a la explotación): las publicaciones permiten a los usuarios realizar una recopilación de información más profunda e infiltrarse aún más en un sistema de destino después de la explotación. Por ejemplo, las publicaciones se pueden utilizar para realizar la enumeración de servicios .
  • Codificadores: los codificadores ocultan las cargas útiles en tránsito para garantizar que se entreguen correctamente al sistema de destino y eviten la detección del software antivirus, los sistemas de detección de intrusiones (IDS) y los sistemas de prevención de intrusiones (IPS).
  • NOP (No Operation): los generadores NOP crean secuencias aleatorias de bytes para evitar los sistemas de detección y prevención de intrusiones.
  • Auxiliares: los módulos auxiliares incluyen escaneo de vulnerabilidades, escaneo de puertos, fuzzers, sniffers y otras herramientas de explotación.

Herramientas y complementos

Las herramientas y los complementos son complementos del marco Metasploit que amplían su funcionalidad. Por ejemplo, la herramienta pattern_create se usa a menudo durante el desarrollo de exploits para formar patrones de cadenas no repetidos; el complemento pentest ayuda a realizar tareas comunes realizadas durante las pruebas de penetración.

Usos de Metasploit

Los piratas informáticos siempre están a la caza de métodos más sofisticados para explotar vectores de ataque, vulnerabilidades de día cero, en ataques cibernéticos.

Metasploit permite a los probadores de penetración implementar escenarios de piratería en el mundo real para mantenerse al día con las técnicas avanzadas de los piratas informáticos y evitar posibles violaciones de datos. Las herramientas de Metasploit Framework se pueden utilizar para realizar todas las etapas de las pruebas de penetración, que incluyen:

  • Recopilación de información: mediante el uso de módulos auxiliares: portscan / syn, portscan / tcp, srnb version, db nmap, scanner / ftp / ftp_version y collect / shodan_search.
  • Enumeración: utilizando enumshares smb / srnb, enumusers smb / srnb y smb / srnb_login.
  • Obtener acceso: mediante el uso de exploits y cargas útiles de Metasploit.
  • Escalada de privilegios: mediante el uso de meterpreter-use priv y meterpreter-getsystem.
  • Mantener el acceso: mediante meterpreter, ejecuta la persistencia.
  • Cubriendo pistas: mediante el uso de módulos anti-forenses posteriores a la explotación.

Metasploit también se integra con otras herramientas de ciberseguridad, como Nmap, Nessus y Nexpose para fortalecer sus capacidades.

Beneficios

Metasploit ofrece a los equipos de seguridad muchos beneficios que fortalecen sus prácticas de ciberseguridad, que incluyen:

  • Simulación de escenarios del mundo real: los pentesters pueden ver los sistemas de una organización desde la perspectiva de un pirata informático. Esta visibilidad les permite prepararlos para mejorar la seguridad de la red corrigiendo las vulnerabilidades descubiertas y otros vectores de ataque.
  • Automatización de tareas: Metasploit permite a los pentesters automatizar muchas de las tediosas tareas involucradas en el proceso de prueba de penetración. Gran parte del código básico de estos comandos se almacena en sus bibliotecas.
  • Optimización de casos de negocio: Metasploit proporciona informes claros para los ejecutivos sobre las vulnerabilidades que se deben priorizar. Con una clara evidencia de posibles explotaciones, los equipos de seguridad pueden crear casos comerciales más sólidos para la compra de herramientas de seguridad adicionales que pueden mitigar la superficie de ataque.

Desafíos

A pesar de sus muchos beneficios, Metasploit no está exento de desafíos. Algunas de las caídas de Metasploit incluyen:

  • Uso de piratas informáticos: si bien Metasploit es un elemento básico en el conjunto de herramientas de cualquier pentester, los piratas informáticos también lo utilizan con malas intenciones. Por ejemplo, los ciberdelincuentes pueden utilizar las herramientas de Metasploit junto con la inteligencia de código abierto para identificar y explotar las vulnerabilidades de día cero.
  • Ambigüedad legal: la naturaleza invasiva de Metasploit presenta riesgos legales no solo para los ciberdelincuentes, sino incluso para los piratas informáticos éticos. Muchas organizaciones están trasladando sus flujos de trabajo a la nube y utilizan otros servicios de terceros para gestionar sus datos confidenciales.
  • Probar la seguridad de los datos en estos sistemas podría infringir los acuerdos contractuales, independientemente de la relación entre la organización y el proveedor. Las organizaciones deben asegurarse de que están legalmente autorizadas a realizar pruebas de penetración en sus proveedores. Alternativamente, pueden invertir en una plataforma de monitorización de terceros para evaluar las posturas de seguridad de los proveedores.
  • Problemas técnicos: cuando los pentesters intentan explotar un sistema, pueden producirse efectos no deseados. Tanto los ataques exitosos como los fallidos pueden resultar en aplicaciones bloqueadas, ataques involuntarios de denegación de servicio (DoS) y otras fallas del sistema.
  • Cobertura de superficie de ataque incompleta: los pentesters no deben confiar completamente en Metasploit para administrar su superficie de ataque, ya que las vulnerabilidades surgen mucho más rápido de lo que se pueden descubrir. Las filtraciones de datos deben permanecer en la mente de los equipos de seguridad, lo que significa que también deben invertir en otras soluciones. Las herramientas adicionales, como las soluciones de detección de fugas de datos, complementan las capacidades de Metasploit al ofrecer una monitorización continua de la superficie de ataque de una organización.

Cómo utilizar Metasploit

La mejor manera de comenzar con Metasploit Framework es descargar la máquina virtual (VM) Metasploitable. Metasploitable es un objetivo intencionalmente vulnerable, preconstruido en Kali Linux.

La VM permite a los usuarios probar la interfaz msfconsole y familiarizarse con el marco.

Tutoriales de Metasploit

Aquí hay algunos recursos útiles para aprender los conceptos básicos de Metasploit y sus usos:

  • Documentación de Metasploit de Rapid7: contiene tutoriales e información adicional para Metasploit Framework y Metasploit Pro.
  • Metasploit Github Wiki: guías prácticas y recursos adicionales.
  • Portal de recursos de Metasploit: una colaboración de la comunidad de seguridad de código abierto y Rapid7.
  • Metasploit Unleashed de Offensive Security: un curso completo y gratuito sobre cómo usar Metasploit para la piratería ética.

Cómo conseguir Metasploit

Metasploit está disponible a través de instaladores de código abierto directamente desde el sitio web de Rapid7. Además de la última versión de los navegadores Chrome, Firefox o Explorer, los requisitos mínimos del sistema son:

Sistemas operativos

  • Ubuntu Linux 14.04 o 16.04 LTS (recomendado)
  • Windows Server 2008 o 2012 R2
  • Windows 7 SP1 +, 8.1 o 10
  • Red Hat Enterprise Linux Server 5.10, 6.5, 7.1 o posterior

Hardware

  • 2 GHz + procesador
  • Mínimo 4 GB de RAM, pero se recomiendan 8 GB
  • Mínimo 1 GB de espacio en disco, pero se recomiendan 50 GB

Tendrás que deshabilitar cualquier software antivirus y firewall instalados en tu dispositivo antes de comenzar y obtener privilegios administrativos. El instalador es una unidad autónoma que se configura cuando instalas el marco. También tienes la opción de instalación manual si deseas configurar dependencias personalizadas. Los usuarios con la versión Kali Linux ya tienen la versión Metasploit Pro preempaquetada con su sistema operativo. Los usuarios de Windows pasarán por el asistente de instalación del escudo.

Después de la instalación, al inicio, te enfrentarás a estas opciones:

  • Crear una base de datos en /Users/joesmith/.msf4/db
  • Inicio de Postgresql
  • Crear usuarios de bases de datos
  • Crear un esquema de base de datos inicial.

Razones para aprender Metasploit

La facilidad para aprender a usar Metasploit depende de tu conocimiento de Ruby. Sin embargo, si estás familiarizado con otros lenguajes de programación y secuencias de comandos como Python, dar el salto a trabajar con Metasploit no debería ser demasiado difícil para ponerse al día. De lo contrario, es un lenguaje intuitivo que se aprende fácilmente con la práctica.

Debido a que esta herramienta requiere que desactives tus propias protecciones sistemáticas y habilites la generación de código malicioso, debes ser consciente de los riesgos potenciales involucrados. Si es posible, mantén esta utilidad instalada en un sistema separado de tu dispositivo personal o cualquier computadora que contenga información potencialmente sensible o acceso a dicha información. Debes utilizar un dispositivo de trabajo dedicado cuando realices pruebas con Metasploit.

Este paquete de marco es imprescindible para cualquier persona que sea analista de seguridad o pen-tester. Es una herramienta esencial para descubrir vulnerabilidades ocultas utilizando una variedad de herramientas y utilidades. Metasploit te permite entrar en la mente de un pirata informático y utilizar los mismos métodos para sondear e infiltrarse en redes y servidores.