Echandole un vistazo a Metasploit

 

 

En la primera publicación del Blog hablaremos de Metasploit ya que lo utilizaremos muy a menudo para la realización de las pruebas de concepto y más en las siguientes publicaciones.

A continuación, se detallará el funcionamiento de este framework y las partes que lo componen, pero antes de comenzar responderemos a la siguiente pregunta.

¿Para qué sirve Metasploit?

Facilita el trabajo al auditor proporcionando información sobre vulnerabilidades de seguridad, ayudando a explotarlas en los procesos de pentesting o test de intrusión.

Módulos

Metasploit dispone de módulos los cuales ayudan a aumentar de manera sencilla las funcionalidades y el uso de esta herramienta.

Un módulo es una pieza o bloque de código que implementa una o varias funcionalidades, como la ejecución de un exploit concreto o la realización de un escaneo de máquinas remotas.

Tipos de módulos en Metasploit framework

Los módulos implementan las funcionalidades del framework.

A continuación, especificaremos cada uno de los módulos existentes en Metasploit y los definiremos:

  • El módulo auxiliary proporciona herramientas externas al framerwork para la integración y utilización con Metasploit, así el auditor podrá utilizar escáneres, herramientas para denegación de servicio, sniffers, fuzzers, etc.
  • El módulo encoders proporciona codificadores para ofuscar el código de las shellcodes y de este modo evitar que los sistemas antivirus puedan detectar al payload.
  • El módulo *exploits es donde se alojan los exploits. Se organizan en categorías, por sistema operativo o tecnología.
  • El módulo de *payloads concentra los distintos códigos maliciosos ordenados también por categorías.
  • El módulo de post almacena en su interior código para ejecutar acciones referidas a las fases de post-explotación como son la escalada de privilegios, la personalización de tokens, captura de pruebas sobre la máquina remota.
  • El módulo nops contiene código capaz de generar instrucciones NOP para los códigos maliciosos. Están organizados por arquitectura y lo más normal es utilizarlo para máquinas x86 o x64.

Interfaces

Metasploit dispone de varias interfaces con las que interactuar con el framework. El usuario puede interactuar mediante una interfaz gráfica, línea de comandos o consola, además el usuario podrá disponer de la posibilidad de acceder directamente a las funciones y módulos que componen el framework siendo muy útil para utilizar ciertos exploits sin necesidad de lanzar todo el entorno.

La primera interfaz que se presenta es msfconsole, esta nos muestra una consola de comandos desde la cual se podrá acceder a todas las opciones disponibles de Metasploit. Esta interfaz se ejecuta introduciendo el siguiente comando msfconsole en una terminal, si se encuentra en Linux.

 

La segunda interfaz que se presenta es Armitage. Esta nos proporciona un entorno gráfico para llevar a cabo el test de intrusión. Esta interfaz se lanza ejecutando el comando Armitage en un terminal.

 

La tercera interfaz es la web UI de Metasploit, con ella podremos gestionar el test de intrusión de manera remota, sin necesidad de disponer de framework en local, pudiendo realizar casi todas las acciones que pueden realizarse desde la consola.

 

Herramientas del framework

Estas serán las herramientas que podremos utilizar en situaciones específicas, sin necesidad de tener que ejecutar la consola y tener que cargar el entorno completo:

A continuación, se definirán dichas herramientas:

  • Msfpayload: Herramienta que está orientada a todo lo que está relacionado con el ámbito de las shellcodes, siendo capaz de generar shellcodes con distintos lenguajes de programación ejecutables que inyecten código malicioso en la máquina victima tras su ejecución, listar los shellcodes disponibles en Metasploit, actualmente esta se encuentra en desuso en las nuevas versiones porque se integra en Msfvenom.
  • Msfencode: Esta herramienta se encarga de dificultar a los sistemas de intrusión, IDS, infección, antivirus, la detección de payload.
  • Msfvenom: Esta herramienta se encarga de unificar las aplicaciones msfencode y msfpayload. La principal ventaja es que podremos disponer de ambos comandos en una sola instancia incrementando así la velocidad en la generación de acciones.
  • Msfpescan y msfelfscan: La herramienta msfpescan permite escanear ficheros ejecutables o DLLs de Windows para encontrar instrucciones de código máquina sobre una imagen basada en memoria. Y por otro lado la herramienta msfelfscan permite realizar las mismas acciones, pero sobre aplicaciones ELF en sistemas operativos Linux
  • Msfrop: Esta herramienta realiza un análisis sobre el binario que se le pasa y tras el procedimiento devolverá los gadgets utilizables.
  • Msfd: Esta herramienta proporciona un servicio el cual genera un listener en un puerto. Los clientes podrán conectare a este servicio y disponer de su propia interfaz de consola, hay que tener en cuenta que todos los clientes utilizan la misma instancia del framerwork.

 

Arquitectura de Metasploit

En la imagen se puede observar la arquitectura de la que está compuesta Metasploit.

Podemos observar tres librerías críticas como son rex, msf core y msf base, las distintas interfaces y módulos ya explicados con anterioridad.

La librería rex es la básica y se encarga de la mayoría de las tareas, manejando sockets, protocolos, por ejemplo, SSL, SMB, HTTP, y otras operaciones interesantes como son las codificaciones, por ejemplo, XOR, Base64 o Unicode.

Las librerías msf core y msf base proporcionan APIs al framework. Las insterfaces, módulos y plugins interactúan con las API base y core que se encuentran en ambas librerías.

 

Versiones de Metasploit

Metasploit dispone de dos versiones muy diferenciadas entre ellas en el mercado de la seguridad informática.

Estas versiones las podremos encontrar en el sitio web oficial https://www.metasploit.com/ disponiendo de diferentes características y precios.

 

Metasploit Community Edition

Esta edición fácil de utilizar dispone de las siguientes características:

  • Una interfaz gráfica intuitiva y sencilla que hace mucho más fácil y ameno el uso de esta herramienta para comenzar el proceso de verificación de vulnerabilidades.
  • Identificación de equipos en una red, puertos abiertos y huella digital del sistema operativo y servicios.
  • Integración con escáneres de vulnerabilidades. Importación a Metasploit de los datos obtenidos con las herramientas de escaneo como son nmap y nessus, entre otros.
  • Bases de datos de exploits, para garantizar el éxito del proceso de intrusión, cada módulo dispone de un ranking que indica la tasa de éxito y el impacto de este en el sistema.
  • Verificación sobre la posible explotación de una vulnerabilidad. Metasploit puede verificar si una vulnerabilidad es explotable o no, sin necesidad de lanzar el ataque.
  • Explotación en vivo y real de los activos de las empresas demostrando a los propietarios demostrar las vulnerabilidades críticas para las empresas.

 

Metasploit Pro

Esta versión dispone de funcionalidades extra además de las anteriormente explicadas en la versión de la comunidad.

A continuación, citaré las opciones extra que trae la versión Pro.

  • Auditoría de contraseñas. Para identificar patrones para localizar contraseñas débiles, para evitar que estas puedan ser vulneradas mediante ataques de fuerza bruta.
  • Auditoría de seguridad de la infraestructura IT. Para realizar pruebas de intrusión sobre dispositivos de red, equipos de escritorio, servidores dónde se incluyen las bases de datos y las aplicaciones web.
  • Ingeniería social. Es una técnica muy potente siempre que el auditor sepa utilizarla, con ella podremos poner a prueba la concienciación del personal de la empresa.
  • Con ella podremos informar a los empresarios sobre los activos que hay en la empresa.
  • Automatización de los test de intrusión.
  • Simulación de ataques. Es una característica muy interesante, porque se podrá observar desde un punto de vista realista el transcurso de un ataque, tanto en redes IPv4 como IPv6.

 

Diccionario

Exploit

Exploit viene del verbo en inglés exploit, que significa explotar o aprovechar. Un exploit es un código escrito con el fin de aprovechar un error de programación y la intención de obtener diversos privilegios.

Podremos utilizar una gran cantidad de exploit sobre un conjunto de fallos de programación similares (En próximas publicaciones hablaremos sobre ellos).

Algunos de los grupos de vulnerabilidades más conocidos son:

  • Vulnerabilidades de desbordamiento de buffer.
  • Vulnerabilidades de error de formato de cadena o format string bugs.
  • Vulnerabilidades de Cross Site Scripting, XSS.
  • Vulnerabilidades de SQL Injection.

Payload

Payload es parte del código del exploit que tiene el objetivo de ejecutarse en la máquina víctima para realizar una acción maliciosa. Podremos entender el significado de payload con los siguientes ejemplos.

Un payload puede ser el código que se introduce en una máquina a través de un exploit, y el cual permite a un atacante ejecutar código malicioso en la máquina remota. Ese código puede ser el que implante una shell inversa, es decir, la máquina víctima lanzará una conexión hacia la máquina del atacante devolviéndole una línea de comandos para que pueda interactuar con la máquina vulnerada.

Un payload también puede ser, simplemente, conseguir ejecutar en la máquina remota una secuencia de comandos sobre la máquina. Por ejemplo, para realizar una denegación de servicio sobre una aplicación en una máquina vulnerable.

 

Fuente: https://0xword.com/es/libros/30-libro-metasploit-pentester.html

Un comentario

  1. Buen post! Buena exposición de las funcionalidades de la herramienta Metaexploit, aunque he echado de menos algún ejemplo. Estoy viendo el resto de posts, y creo que estáis haciendo muy buen material para ponerse al día en todo esto de la seguridad desde mi punto de vista, un novato como yo 😉 Necesito por temas laborales ponerme al día en la seguridad y me parece muy interesante lo que estáis escribiendo!

    Un saludo.

Dejar una contestacion

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *