Todo aquel interesado en la seguridad informática en algún momento ha escuchado de la existencia de una herramienta de Hacking llamada Metasploit. Pues déjame decirte que en el mundo del Hacking, sea este ético o delincuencial, Metasploit viene siendo “la navaja suiza” de los hackers. Metasploit permite realizar tareas de explotación y test de penetración de forma más fácil y rápida en comparación con los métodos de hacking tradicionales.
Metasploit es un software Open Source que se auto describe como un Framework de seguridad que permite automatizar la explotación de vulnerabilidades en sistemas operativos, aplicaciones y redes. También a través de este Framework es posible desarrollar Exploits (piezas de software que permiten tomar ventajas de alguna vulnerabilidad) para explotar bugs conocidos o no en cualquier sistema informático.
Metasploit fue desarrollado en el 2007 por H.D Moore. Originalmente el código fue escrito en PERL pero más tarde el software completo de Metasploit fue reescrito en Ruby (uno de los 20 lenguajes de programación utilizado por los hackers) por lo que es importante tener instalado Ruby en el sistema operativo para ejecutar Metasploit y desarrollador Exploits.
a interface de administración por defecto de Metasploit es el CLI (Command Line Interface) lo que hace que la curva de aprendizaje para los novatos sea un poco elevada. Por suerte, un grupo de desarrolladores independientes ha creado Armitage el cual es una interface GUI para la administración de Metasploit (Graphic User interface) muy elegante e intuitiva.
Existen versiones de Metasploit para Windows y Linux. Obviamente, la versión para Windowspresenta algunas limitaciones en cuando la ejecución de algunas funcionalidades. El ambiente ideal es instalar Metasploit en tu distribución Linux favorita —mi distribución favorita es CentOS. Si no quieres lidiar con la instalación de Metasploit puedes tenerlo Ready To Use utilizando la distribución Linux desarrollada especialmente para Hackers llamada Kali Linux. Kali Linux es la evolución de la archiconocida y descontinuada distribución Linux BackTrack.

Sobre Metasploit existen muchos manuales y tutoriales, la mayoría en inglés. Por suerte, un grupo de voluntarios ha decido traducir el manual Tutorial de Metasploit Framework de Offensive-Security. Mi recomendación es que aprendas a utilizar Metasploit hoy mismo. Esta herramienta, sin duda alguna, no falta en el repertorio de cualquier Hacker Ético.

Cómo funciona Metasploit internamente

ARQUITECTURA DE METASPLOIT

Metasploit está basado en 3 librerías (Libraries) fundamentales, si no tenemos pensado desarrollar herramientas propias para integrar al framework, terminarán siendo transparentes mientras lo usamos:

Rex: Es la librería básica para la mayoría de tareas que ejecutará el framework. Está encargada de manejar cosas como conexiones a sitios web (Por ejemplo cuando buscamos archivos sensibles en un sitio), Sockets (Que se encargan de por ejemplo realizar una conexión desde nuestra máquina a un servidor SSH), y un montón de utilidades similares referentes a SSL, Base64, etc.
MSF::Core: Es una librería que podemos entender, algo así, como un "template", define el funcionamiento del framework en general(Como van a funcionar los modulos, exploits, payloads, etc.)
MSF::Base: Funciona de forma similar a MSF::Core, solo que es mas amigable con el desarrollador y simplificada.
Plugins: Son herramientas que amplían la funcionalidad del framework, por ejemplo, permiten integrar con herramientas de terceros como Sqlmap, OpenVas, Nexpose, etc.
Tools: Herramientas varias que suelen ser útiles (Por ejemplo: "list_interfaces" nos despliega la información de interfaces de red, "virustotal" verifica si algún archivo está infectado a través de la base de datos de virustotal.com)
Interfaces: Todas las interfaces en donde podemos usar Metasploit. Está disponible una versión por consola, una versión web, una versión GUI (Graphical User Interface) y CLI, una versión simplificada de la versión consola.
Modules: Es una carpeta que contiene todos los exploits, payloads, enconders, auxiliares, nops y post:
  • Exploits: Un exploit es un programa que explota una o varias vulnerabilidades en un software determinado, frecuentemente es utilizado para ganar acceso a un sistema y tener un nivel de control sobre él.
  • Payloads: es un programa (o código “malicioso”) que acompaña a un exploit para realizar funciones específicas una vez haya tenido éxito el exploit, la elección de un buen payload es una decisión muy importante a la hora de aprovechar y mantener el nivel de acceso obtenido en un sistema. En muchos sistemas existen firewalls, Antivirus y sistemas de detección de intrusos que pueden dificultar la actividad de algunos payloads, por este motivo se suelen utilizar encoders para intentar evadir cualquier AV o Firewall.
  • Encoders: Proporciona algoritmos para codificar y ofuscar los payloads que utilizaremos tras haber tenido exito el exploit.
  • Auxiliaries: Permite la interacción con herramientas como pueden ser escaners de vulnerabilidades, sniffers, entre otros; para poder obtener información necesaria sobre el objetivo con el fin de determinar posibles vulnerabilidades que le puedan afectar, este tipo de herramientas son útiles para establecer una estrategia de ataque sobre un sistema objetivo, o el caso de un responsable de seguridad, definir medidas defensivas que permitan mitigar amenazas sobre un sistema vulnerable.
  • Nops: es una instrucción de lenguaje assembly que realmente no hace nada aparte de incrementar el contador de un programa (será vista de forma más detallada en la clase de Exploiting y Fuzzing).
  • Post: Amplias funcionalidades para la etapa de Post-Explotación.

Referencias

Manual_de_Metasploit_Unleashed.pdf -Tutorial de Metasploit Framework deOffensive-Securitty