Metasploit
Introduction To The Metasploit Framework
The Metasploit Framework (MSF)
What is the Metasploit Framework?
Metasploit Framework (MSF) es un Framework de explotación y pruebas de penetración robusto y de código abierto que utilizan los evaluadores de penetración e investigadores de seguridad de todo el mundo. En los ultimos tiempo tambien se observo que MSF es utlizado por los desarrolladores.
Proporciona a los penetration tester con una infraestructura robusta necesaria para automatizar cada etapa del ciclo de vida de penetration testing.
También se utiliza para desarrollar y probar exploits y tiene una de las bases de datos de exploits públicos probados más grandes del mundo.
Metasploit Framework está diseñado para ser modular, lo que permite implementar nuevas funciones con facilidad.
El código fuente de Metasploit Framework (MSF) está disponible en GitHub.
Los desarrolladores agregan constantemente nuevos exploits al framework.
History of The Metasploit Framework
Developed by (Investigador de seguridad) HD Moore in 2003
Originally developed in Perl
Rewritten in Ruby in 2007
Acquired by Rapid7 in 2009
Metasploit 5.0 released in 2019
Metasploit 6.0 released in 2020
Metasploit Editions
Metasploit Pro (Commercial)
Metasploit Express (Commercial)
Metasploit Framework (Community)
Essential Terminology
Interface - Métodos de interacción con Metasploit Framework. Ejemplos: Metasploit console, CLI, etc
Module - Piezas de código que realizan una tarea particular; un ejemplo de módulo es un exploit.
Vulnerability - Debilidad o falla en un sistema informático o red que puede explotarse.
Exploit - Pieza(fragmento) de código/módulo que se utiliza para aprovechar una vulnerabilidad dentro de un sistema, servicio o aplicación.
Payload - Pieza de código entregado al sistema de destino mediante un exploit con el objetivo de ejecutar comandos arbitrarios o proporcionar acceso remoto a un atacante.
Listener - Una utilidad que escucha una conexión entrante desde un destino.
Metasploit Framework Interfaces
Metasploit Framework Console (MSFconsole) es una interfaz todo en uno fácil de usar que le brinda acceso a todas las funciones de Metasploit Framework.
Metasploit Framework CLI
La interfaz de línea de comandos de Metasploit Framework (MSFcli) es una utilidad de línea de comandos que se utiliza para facilitar la creación de scripts de automatización que utilizan módulos Metasploit.
Se puede utilizar para redirigir la salida de otras herramientas a msfcli y viceversa.
Nota: MSFcli se suspendió en 2015; sin embargo, se puede aprovechar la misma funcionalidad a través de MSFconsole.
Metasploit Community Edition
Metasploit Community Edition es una interfaz gráfica de usuario basada en web para Metasploit Framework que simplifica el descubrimiento de redes y la identificación de vulnerabilidades.
Armitage
Armitage es una interfaz gráfica de usuario gratuita basada en Java para Metasploit Framework que simplifica el descubrimiento, la explotación y la posexplotación de la red. Es mas fácil usar este tipo de herramienta para utilizar meterpreter o el modo interprete.
Quiz: Introduction to the Metasploit Framework
Metasploit Framework Architecture
El siguiente diagrama muestra una descripción general del marco de Metasploit y destaca esencialmente los diversos componentes que componente el framework de Metasploit
Un módulo en el contexto de MSF, es un fragmento de código que puede ser utilizado por MSF. La misma se clasifica en las siguientes categorias.
Modulo de explotacion
Modulo de payload
Modulo de codificadores
Modulo de mandos
Modulos auxiliares
Las Librerias de MSF facilitan la ejecución de módulos sin tener que escribir el código necesario para ejecutarlos. Son como objetos compartidos en Linux o DLL en Windows, por lo que nos permite ampliar la funcionalidad o contener el codigo necesario para ampliar la funcionalidad o esencialmente para iniciar la funcionalidad como crear un scket tcp, etc.
MSF Modules
Exploit: Módulo que se utiliza para aprovechar la vulnerabilidad y es normalmente emparejado con un payload.
Payload: Código entregado por MSF y ejecutado de forma remota en el objetivo después de una explotación exitosa. Un ejemplo de payload es un reverse shell que inicia una conexión desde el sistema objetivo hasta el atacante.
Encoder: Se utiliza para codificar payloads para evitar la detección de AV. Por ejemplo, shikata_ga_nai se utiliza para codificar payload de Windows.
NOPS: Se utiliza para garantizar que los tamaños de los payloads sean consistentes y garantizar la Estabilidad del payload cuando se ejecuta.
Auxiliary: Un módulo que se utiliza para realizar funciones adicionales como escaneo y enumeración de puertos. No es un modulo que se pueda enparejar con una carga util.
MSF Payload Types
Cuando trabaja con exploits, MSF le proporciona dos tipos de payload que se puede combinar con un exploit:
El tipo de payload que utilizara dependera del sistema destino y la infraestructura de destino asi como sus requisitos.
Non-Staged Payload: Payload que se envía al sistema de destino tal cual con todo el conjunto con el exploit.
Staged Payload: Un stage payload se envía al objetivo en dos partes o en partes, por lo cual:
La primera parte (conocida como stager) contiene un payload que se utiliza para establecer un conexión inversa con el atacante, luego descargara la segunda parte del payload ( que se conoce como stage) y va ejecutarla.
El payload es responsable de ejecutar comandos arbitrarios en el sistema destino o para proporcionarnos por ejemplo un revers shell o una sesion meterpreter
Stagers & Stages
Stagers: Los stagers se utilizan normalmente para establecer un canal de comunicación estable entre el atacante y el objetivo, después del cual se descarga y ejecuta un payload en el sistema de destino. El payload es responsable de proporcionarnos un revers shell o una sesion meterpreter.
Stage: Componentes de payload que descarga el stager.
Meterpreter Payload
El payload del Meterpreter (la palabra viene de Meta-Interpreter) es una payload multifuncional avanzada que se ejecuta en la memoria del sistema de destino, lo que dificulta su detección.
Se comunica a través de un stager socket y proporciona al atacante un intérprete de comandos interactivo en el sistema de destino que facilita la ejecución de comandos del sistema, la navegación del sistema de archivos, el registro de teclas y mucho más. Por lo tanto, esencialmente proporciona a un atacante un revers shell realmente interactivo en el sistema destino. El atacante puede usar la sesion meterpreter para navegar por el sistema de archivos para descargar o cargar archivos desde el objetivo, ejecutar comandos arbitrarios en el objetivo, como lo comentado en el parrafo anterior, padra navegar por el sistema de archivos, para realizar la explotacion posterior, escalada de privilegios, extraer hashes, etc.
MSF File System Structure
El sistema de archivos MSF está organizado en un formato simple y fácil de entender y está organizado en varios directorios.
Para acceder al directorio de Metasploit desde LNX, debera de dirigirse a:
MSF Module Locations
MSF almacena módulos en el siguiente directorio en sistemas Linux:
Los módulos personalizados o especificados por el usuario se almacenan en el siguiente directorio en los sistemas Linux: (~ home)
Demo: MSF File System Structure
Quiz: Metasploit Framework Architecture
Penetration Testing With The Metasploit Framework
El MSF se puede utilizar para realizar y automatizar diversas tareas que se incluyen en el ciclo de vida de las pruebas de penetración.
Para comprender cómo podemos aprovechar MS para las pruebas de penetración, debemos explorar las distintas fases de una prueba de penetración y sus respectivas técnicas y objetivos.
Podemos adoptar el PTES (Penetration Testing Execution Standard - Estándar de ejecución de pruebas de penetración) como hoja de ruta para comprender las diversas fases que componen una prueba de penetración y cómo se puede integrar Metasploit en cada fase.
Penetration Testing Execution Standard
El Penetration Testing Execution Standard (PTES) es una metodología de pruebas de penetración desarrollada por un equipo de profesionales de seguridad de la información con el objetivo de abordar la necesidad de un estándar completo y actualizado para las pruebas de penetración. MS se puede integrar a cada una de las fases de la motodologia.
Penetration Testing Phases
El siguiente diagrama describe las distintas fases involucradas en una prueba de penetración típica.
Penetration Testing With MSF
Information Gathering & Enumeration
Auxiliary Modules
Vulnerability Scanning
Auxiliary Modules Nessus
Exploitation
Exploit Modules & Payloads
Post Exploitation
Meterpreter
Privilege Escalation
Post Exploitation Modules Meterpreter
Maintaining Persistent Access
Post Exploitation Modules Persistence
Quiz: Penetration Testing With The Metasploit Framework
Last updated