Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Hacking Ético
Metasploit
Índice
Esquema 3
Ideas clave 4
5.1. Introducción y objetivos 4
5.2. Interfaces de Metasploit 4
5.3. Framework y arquitectura de metasploit 10
5.4. Exploits y payloads 12
5.5. Intrusión con y sin interacción 14
© Universidad Internacional de La Rioja (UNIR)
5.6. Meterpreter 19
5.7. msfpayload, msfencode y msfvenom 23
5.8. Lecciones magistrales 26
5.9. Referencias bibliográficas 26
A fondo 27
Test 28
© Universidad Internacional de La Rioja (UNIR)
Tema 5. Esquema
Esquema
Hacking Ético
3
Ideas clave
En este tema vamos a introducir uno de los framework más importantes a la hora de
realizar actividades de pentesting. Hablamos de Metasploit, un proyecto de código
abierto que nos proporcionará información acerca de las vulnerabilidades de los
sistemas y además nos facilitará los métodos de explotación y posexplotación.
Objetivos:
Hacking Ético
4
Tema 5. Ideas clave
Un exploit es un programa de alto nivel que aprovecha una vulnerabilidad de
seguridad en un sistema informático para causar un fallo en este y provocar
comportamientos maliciosos, como obtener el control remoto de una máquina o la
obtención de privilegios no autorizados.
Hacking Ético
5
Tema 5. Ideas clave
Módulos. Los módulos son pequeños bloques que construyen un sistema
completo. Cada módulo se compone de tareas específicas que construyen un
sistema completo al combinar varios módulos que funcionan como uno solo. El
mayor beneficio de cada arquitectura es la facilidad para los desarrolladores de
integrar un nuevo exploit y herramientas para esta gran herramienta.
MsfConsole. Es una interfaz por consola, pero es la más usada, ya que permite un
acceso a todas las funcionalidades de Metasploit. Es la que más juego y
flexibilidad da.
Hacking Ético
6
Tema 5. Ideas clave
Figura 2. Interfaz de Armitage. Fuente: elaboración propia.
Hacking Ético
7
Tema 5. Ideas clave
Todas estas herramientas estarán por defecto en Kali Linux. Nosotros utilizaremos
MsfConsole por su versatilidad. A continuación, se explicarán sus diferentes
funciones y comandos:
Hacking Ético
8
Tema 5. Ideas clave
Figura 6. Salida de show options. Fuente: elaboración propia.
Hacking Ético
9
Tema 5. Ideas clave
unset «opción» -> Elimina un parámetro previamente seleccionado con set.
exploit/run -> Ejecuta el exploit.
sessions -> Para interactuar con las máquinas explotadas.
back -> Permite volver atrás en los módulos.
jobs -> Muestra los trabajos activos.
kill -> Permite matar trabajos activos.
help -> Muestra la ayuda.
load/unload «plugin» -> Carga o descarga un plugin.
check -> Comprueba si el objetivo es vulnerable al exploit sin necesidad de
lanzarlo antes (no todos los exploits lo incluyen).
exit -> Sale de la aplicación.
Los activos, aquellos que explotarán una máquina objetivo por fuerza bruta hasta
inyectar el payload o encontrar un error.
Los pasivos, que esperan a que una máquina víctima se conecte a la máquina host
para explotarlos (suelen ser por los navegadores o los clientes FTP).
© Universidad Internacional de La Rioja (UNIR)
Hacking Ético
10
Tema 5. Ideas clave
La arquitectura de Metasploit consta de tres librerías críticas, que son rex, msf base
y msf core, junto con las diferentes interfaces que ya hemos visto en el apartado
anterior y seis tipos de módulos. En la Figura 8 podemos visualizar la arquitectura de
Metasploit:
Las librerías msf core y msf base proporcionan API al framework. Las interfaces,
módulos y plugins interactúan con las API base y core que se encuentran en ambas
librerías.
Hacking Ético
11
Tema 5. Ideas clave
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 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.
a través de dicho exploit. Un único exploit puede entregar múltiples cargas útiles a
uno o varios objetivos.
Hacking Ético
12
Tema 5. Ideas clave
interacción con el usuario. Por el contrario, con el payload es necesaria la
interacción, ya que la víctima tiene que ejecutar el archivo malicioso para que
nosotros podamos obtener el control.
Exploit
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.
Hacking Ético
13
Tema 5. Ideas clave
Existen diferentes tipos de payloads, como son:
Hacking Ético
14
Tema 5. Ideas clave
Los exploits pasivos esperan a los hosts entrantes y los explotan a medida que se
conectan.
Los exploits pasivos casi siempre se centran en clientes como navegadores web,
clientes FTP, etc.
También se pueden usar junto con exploits de correo electrónico esperando
conexiones.
Las vulnerabilidades pasivas informan de los shells a medida que ocurren
pasando -l al comando de sesiones. Añadir -i interactuará con un shell.
Intrusión directa
© Universidad Internacional de La Rioja (UNIR)
Es aquella que no hace falta que el usuario interactúe en ningún momento, por lo
que es la más peligrosa de todas, ya que en ningún momento será consciente del
ataque.
Hacking Ético
15
Tema 5. Ideas clave
En cuanto al tipo de conexión de la shellcode sobre este tipo de ataques, el esquema
es muy claro: el atacante lanza un exploit, ya sea con Metasploit o en algún lenguaje
de programación. El código se ejecuta en la máquina víctima aprovechando dicha
vulnerabilidad y, en función de si es una conexión reversa o si es una conexión de tipo
bind, van a ocurrir dos cosas.
En el caso de tipo bind, en vez de usar una comunicación reversa, lo que hace es sacar
un puerto, por ejemplo, el puerto 4444, y queda a la escucha, por lo que un atacante
tendría que ir luego a ese puerto a conectarse.
Client Side.
Hay muchas formas diferentes de usar Metasploit para realizar ataques del lado del
cliente, como por ejemplo:
Binary Payloads
podrá generar una carga útil de shell inversa, la ejecutaremos en un sistema remoto
y obtendremos nuestro shell. Para hacer esto, usaremos la herramienta de línea de
comandos msfvenom. Este comando se puede usar para generar cargas útiles que
se usarán en muchas ubicaciones y ofrece una variedad de opciones de salida, desde
Hacking Ético
16
Tema 5. Ideas clave
perl hasta C y raw. Estamos interesados en la salida ejecutable, que es proporcionada
por la opción -f exe.
© Universidad Internacional de La Rioja (UNIR)
Hacking Ético
17
Tema 5. Ideas clave
Figura 11. Generación de Binary Payload. Fuente: elaboración propia.
Ahora, vemos que tenemos un ejecutable de Windows listo para funcionar y usaremos
multi / handler, que es un stub que maneja exploits lanzados fuera del framework.
Explotación local
© Universidad Internacional de La Rioja (UNIR)
Hacking Ético
18
Tema 5. Ideas clave
usuario no tiene privilegios suficientes para realizar las acciones que deseamos, para
ello buscamos ser usuarios con todos los privilegios posibles: system, root,
administrador, etc.
Entre las posibilidades que nos enfrentamos en un entorno Windows, tenemos tres
ámbitos:
Administrador real con identificador 500, con este usuario tenemos todos los
privilegios, por lo que podemos pasar a system inmediatamente y llevar a cabo la
impersonación. Este sería el caso ideal.
5.6. Meterpreter
Los payload más utilizados en los pentesting suelen ser la shell remota y el intérprete
de comandos Meterpreter. Este intérprete tiene muchas funciones y se caracteriza
© Universidad Internacional de La Rioja (UNIR)
porque reside totalmente en memoria RAM para no dejar rastro en el disco duro ni
crear nuevos procesos. Meterpreter se inyecta en el proceso comprometido y puede
migrar a otros procesos en ejecución con facilidad, además de que utiliza
comunicaciones cifradas entre la víctima y el atacante.
Hacking Ético
19
Tema 5. Ideas clave
Ya está incluido con Metasploit e incluye gran número de funcionalidades:
help -> Mostrará todos los comandos de Metasploit y una breve descripción,
podremos cargar plugins con funcionalidades extra usando el comando load
«plugin». También se mostrará la ayuda de estos plugins con el comando help una
load sniffer -> Cargará el plugin para poder capturar paquetes en la víctima.
© Universidad Internacional de La Rioja (UNIR)
Hacking Ético
20
Tema 5. Ideas clave
Figura 13. Uso de plugins en meterpreter. Fuente: elaboración propia.
Hacking Ético
21
Tema 5. Ideas clave
escuchando, a la espera de que la máquina atacante se conecte y obtenga todos los
privilegios y el control total de esta, o también, creando un proceso en la máquina
víctima que, cada cierto tiempo, intente activamente conectarse a la máquina
atacante, siendo el atacante el que deba estar a la escucha.
Utilizaremos el comando run metsvc para crear la puerta trasera y luego nos
conectaremos a ella con el manejador de exploits multi/handler y el payload
metsvc/reverse_bind_tcp.
Hacking Ético
22
Tema 5. Ideas clave
Figura 14. Creación de persistencia. Fuente: elaboración propia.
Cuando creemos la conexión persistente nos dirá en qué archivo de nuestra máquina
se encuentra el cleanup para borrar la conexión persistente. Para hacer esto,
usaremos el comando:
Para conectarnos será como antes, pero esta vez con el payload de meterpreter.
herramientas son: msfpayload, msfencode y msfvenom (esta última unifica a las otras
dos).
Hacking Ético
23
Tema 5. Ideas clave
Msfpayload
A veces no podremos ejecutar un exploit remotamente para obtener una shell. Por
ello, este módulo nos permitirá generar un payload personalizado para enviárselo a
la víctima. Esta herramienta ya es deprecated pero todas sus funcionalidades las
incluye la herramienta msfvenom.
Msfencode
Para evitar ser detectados por los antivirus, a veces tendremos que codificar los
ficheros infectados. Por ello, esta herramienta permite realizar diferentes
codificaciones tantas veces como se deseen, para hacer pasar desapercibidos a estos
ficheros. También es deprecated y todas sus funcionalidades las incluye msfvenom.
Msfvenom
Hacking Ético
24
Tema 5. Ideas clave
Nos creará un fichero que tendremos que enviar a la víctima por correo, por enlace
web, por algún dispositivo de almacenamiento externo, etc. Nosotros pondremos
nuestra máquina a la escucha y, para ello, usaremos:
use multi/handler
Hacking Ético
25
Tema 5. Ideas clave
5.8. Lecciones magistrales
Dragoit. (2016, abril 20). Definición de exploit - ¿Qué son y cómo funciona?
https://dragoit.com/blog/definicion-de-exploit-que-son-y-como-
funciona/#:~:text=Exploit%20%28del%20ingl%C3%A9s%20exploit%2C%20%E2%80
%9Cexplotar%E2%80%9D%20o%20%E2%80%98aprovechar%E2%80%99%29%20es,
para%20conseguir%20un%20comportamiento%20no%20deseado%20del%20mism
© Universidad Internacional de La Rioja (UNIR)
Hacking Ético
26
Tema 5. Ideas clave
A fondo
SEToolkit y Metasploit
SheHacks_KE. (2020, abril 7). Creating a Backdoor using Social Engineering Toolkit
(SET). https://shehackske.medium.com/creating-a-backdoor-using-social-
engineering-toolkit-set-c5ce486aab5
Metasploit y Nexpose
Developer Bangladesh. (2018, septiembre 8). Lecture 30 NeXpose scanner via metasploit
[Vídeo]. Youtube. https://www.youtube.com/watch?v=eDdSEVQ6bMw
Vídeo explicativo de cómo integrar Nexpose y Metasploit para unificar las etapas de
análisis de vulnerabilidades y la fase de explotación.
© Universidad Internacional de La Rioja (UNIR)
Hacking Ético
27
Tema 5. A fondo
Test
1. Si hablamos de Meterpreter, ¿cuál de las siguientes afirmaciones sería la correcta?
A. No crea ningún proceso nuevo ya que se carga directamente en memoria
RAM.
B. Lo podemos manejar desde Metasploit.
C. Es un intérprete de comandos que nos permite crear un backdoor.
D. Todas las anteriores son correctas.
comunicación.
Hacking Ético
28
Tema 5. Test
4. Armitage es:
A. Un módulo de Metasploit que nos permite crear canales de comunicaciones
reversos y de tipo bind.
B. Una utilidad que no está incluida en Metasploit ni en Kali Linux y que se debe
ejecutar e instalar por otra vía.
C. Una herramienta que nos permite crear mapas de red para integrarlos con
Metasploit y obtener diagramas de flujo.
D. Una herramienta incluida en Metasploit y que se diferencia en presentar una
interfaz gráfica.
7. Msfvenom es:
A. Una herramienta integrada en msfpayload para poder generar exploits de
© Universidad Internacional de La Rioja (UNIR)
última generación.
B. Una herramienta de generación de payloads.
C. Una herramienta de generación de exploits.
D. La interfaz web de Metasploit.
Hacking Ético
29
Tema 5. Test
8. Msfencode es:
A. Un exploit para integrar con diferentes herramientas de análisis de
vulnerabilidades.
B. Una herramienta que permite codificar la shellcode para adaptarse a un
objetivo.
C. Una herramienta de generación de exploits.
D. La interfaz web de Metasploit.
9. Cuando infectamos una máquina que se encuentra detrás de una red NAT,
debemos utilizar como mecanismo de conexión:
A. Tipo shell inversa.
B. Tipo escucha TCP.
C. Tipo escucha UDP.
D. Tipo payload.
10. Cuando hemos conseguido tomar el control de una máquina, ¿cuál es la mejor
forma de continuar con nuestra posexplotación?
A. Analizando manualmente el equipo víctima para escalar privilegios.
B. Utilizando exploits locales.
C. Probando nuevos exploits para abrir más vías de entrada.
D. Eliminando la capacidad de conexión a sus usuarios legítimos.
© Universidad Internacional de La Rioja (UNIR)
Hacking Ético
30
Tema 5. Test