Metasploit framework es una potente herramienta de código abierto que permite a los administradores detectar fallos de seguridad en sus redes.

Un exploit es un programa (código) que se aprovecha de un fallo de seguridad (vulnerabilidad) implementando su propio código.

Un ataque exitoso sobre un buffer overflow requiere de mucho trabajo. El desarrollador tiene que experimentar con direcciones de salto, encontrar espacio para la carga útil que contiene el código a codificar y, a continuación, inyectarlo en la memoria del sistema que se desea atacar.

Pero incluso con pequeños cambios en el, el código que funcionaba a la larga puede dejar de funcionar. Por ejemplo, resulta raro que un desarrollador encuentre una dirección de almacenamiento “universal” que sirva para diferentes versiones de Windows, donde puede colocar su shell y ejecutarla a través del vuffer overflow. Como resultado tenemos que cada plataforma en la que se produce un fallo de seguridad es empezada desde el principio.


Arquitectura del framework

La imagen inferior muestra en forma de esquema la arquitectura del framework. El diseño modular facilita la expansión y adaptación del framework de acuerdo a sus respectivos requerimientos, esto es debido a que las funcionalidades ya existentes pueden ser fácilmente reutilizadas. Los componentes individuales se explican brevemente a continuación.

docs.parrotsec.org_lib_exe_fetch.php_metasploit-for-beginners-6-638.jpg


Ruby Extension Library (REX)

La biblioteca de extensión de Ruby (Ruby Extension Library) es el componente básico del framework. Contiene una variedad de clases que pueden ser utilizadas por las capas subyacentes o directamente por otras herramientas. Las funciones proporcionadas por la biblioteca incluyen, por ejemplo, programas de servidor y cliente de diversos protocolos de red.

MSF-Core

El núcleo del framework proporciona funciones para el manejo de eventos y gestión de sesiones, proporcionando funciones importantes para el manejo del framework.

MSF-Base

El framework permite acceder más fácilmente al núcleo y forma la interfaz con el exterior. Las interfaces de usuario acceden directamente a esta biblioteca. Vale la pena mencionar la función del plug-in de Metasploit, que permite una extensión flexible del framework agregando nuevos comandos a los componentes existentes.

Módulos

La estructura en módulo de las funciones del framework permite un manejo claro del programa, ya que los nombres de los módulos también son reflejados en la estructura en carpetas del programa.


Exploits

Este modulo contiene programas y scripts diseñados para explotar vulnerabilidades.

Payloads

Los payloads son proporcionados aquí, estos pueden ser usados tras una exitosa infiltración (explotación) en el sistema objetivo. El payload es el actual código malicioso que corre en el sistema objetivo.

Codificadores y NOPs

Con el fin de hacer más difícil la detección del payload por de los sistemas IDS / IPS1 o programas antivirus, estos módulos ofrecen funciones para ofuscar el payload en redes.

Auxiliar

El módulo auxiliar proporciona varios programas de escaneo para la recuperación de información. Estos incluyen escáner de inicio de sesión, escáner de punto débil, sniffers de redes y escáner de puertos.


Empezando con metasploit

Empieza escribiendo el comando msfconsole para empezar el programa desde la terminal de linux. Empieza con:

  msfconsole

  • Si aparecen errores, siga los siguientes pasos:
  • Mensaje de error:

git-compat-util.h:280:25: fatal error: openssl/ssl.h …

  sudo apt-get install libssl-dev
  • Mensaje de error:
  "A database appears to be already configured, skipping initialization"
  "Failed to connect to the database: could not connect to server: Connection refused Is the server running on host "localhost" (::1) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host "localhost" (127.0.0.1) and accepting TCP/IP connections on port 5432?"
  • Siga los siguientes pasos:
  grep "port =" /etc/postgresql/9.6/main/postgresql.conf
  • * Si no ve el 5432 como el puerto, cámbielo. Si su puerto es 5433 puede ejecutar esta línea para actualizar:
  sed -i 's/\(port = \)5433/\15432/' /etc/postgresql/9.6/main/postgresql.conf 
  • * Reinicie el servicio postgresql
  service postgresql restart 
  • * Reinicializar la base de datos de metasploit
  msfdb reinit 
  • Mensaje de error:
  fatal: Not a git repository (or any of the parent directories): .git
  
* Ahora tienes que añadir el repositorio de git. No se preocupe, tardará un rato.
  git clone git://github.com/gitster/git
  
* Segundo paso
  cd git
  • Tercer paso
  make
  • Cuarto paso
  Make install
  • Quinto paso
  git init
  • Si tecleas
  help show
  help search

podrás obtener un listado con la información que NECESITAS!


Identificando un servidor remoto

Tenga en cuenta escribir correctamente.

  db_nmap -v -sV host_or_network_to_scan

Esta es una forma de obtener una lista de servidores en su red. Lista de todos los escáneres de puertos disponibles:

  search port-scan

Enumera todos los servidores encontrados:

  hosts
  

Agregue estos servidores a la lista de destinos remotos:

  hosts -R

Gane vulnerabilidad, utilice un exploit

Una vez que sepa cuál es su sistema de servidores remotos (nmap, linux, maltego, wp-scan, etc), puede escoger un exploit y probarlo. También hay una manera de buscar dentro de msfconsole para varios exploits:

  search type:exploit
  search CVE-XXXX-XXXX
  search cve:2009
  search platform:aix

Echa un vistazo a metasploit unleashed para obtener más ejemplos del comando de búsqueda!

A partir de este momento, las opciones disponibles cambian en función del exploit que este utilizando, pero puede obtener una lista de las opciones disponibles con:

  show payloads

Ahora tiene una gran lista de payloads.

Antes de poder mostrar una lista de los posibles objetivos, debe seleccionar un módulo de exploit y, a continuación:

  show targets