0% encontró este documento útil (0 votos)
81 vistas43 páginas

Explotación de Vulnerabilidades con Metasploit

Este documento describe varios tipos de vulnerabilidades como desbordamiento de buffer, race condition e integer overflow. Luego explica la fase de explotación y cómo Metasploit simplifica el proceso de explotar vulnerabilidades remotas o locales para obtener acceso no autorizado a sistemas.

Cargado por

alsuarezv16
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
81 vistas43 páginas

Explotación de Vulnerabilidades con Metasploit

Este documento describe varios tipos de vulnerabilidades como desbordamiento de buffer, race condition e integer overflow. Luego explica la fase de explotación y cómo Metasploit simplifica el proceso de explotar vulnerabilidades remotas o locales para obtener acceso no autorizado a sistemas.

Cargado por

alsuarezv16
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Fase de

explotación
Recolección de información

Índice
1. Explotación ............................................................................................................................ 3
2. Metasploit.............................................................................................................................. 9
2.1 Arquitectura de Metasploit ...........................................................................................10
2.2 Sistemas de archivos Metasploit .................................................................................11
2.3 Librerías de Metasploit ....................................................................................................11
2.4 Objeto de modelado Metasploit .................................................................................12
2.5 Conceptos básicos de Metasploit ...............................................................................13
2.6 Abrir o lanzar Metasploit ................................................................................................14
2.7 Lanzamiento desde la Shell ...........................................................................................14
2.8 Lanzamiento en entorno gráfico .................................................................................15
2.9 Ver los ataques disponibles ..........................................................................................16
2.10 Comandos esenciales ....................................................................................................18
Recolección de información

Índice
2.11 Otros comandos básicos ..............................................................................................18
2.12 Ejemplos de búsqueda .................................................................................................24
2.13 Comandos de la base de datos .................................................................................25
2.14 Categorización de los exploits ...................................................................................26
2.15 Meterpreter .......................................................................................................................26
2.16 Comandos de Meterpreter..........................................................................................26
2.17 Payloads .............................................................................................................................32
2.18 Msfvenom ..........................................................................................................................34
3. Post explotación................................................................................................................36
4. Practica Guiada – Ejemplo de uso de Meterpreter .............................................36
Fase de explotación

Explotación
Dase de explotación

Explotación
A continuación, se describen algunos tipos de vulnerabilidades:

Desbordamiento de buffer: vulnerabilidad más clásica e histórica de


todas. Es un error que se produce cuando se intenta copiar una cantidad
de datos mayor que la zona de datos que tenemos reservada para
Almacenar.

Las consecuencias de escribir en una zona de memoria imprevista pueden


ser impredecibles. Este tipo de vulnerabilidades pueden provocar la parada
de un servicio (denegación de servicio) o, incluso, la ejecución de código
arbitrario, es decir, poder tomar el control de la máquina.

Race condition: generalmente este tipo de problemas suelen darse por la


interacción entre hilos en un proceso multihilo o por la concurrencia de
otros procesos ajenos al proceso vulnerable.

5
Dase de explotación

Explotación
Integer overflow: suceden al intentar almacenar un valor demasiado grande en la variable
asociada generando un resultado inesperado (valores negativos, valores inferiores, ...).

Este tipo de error puede tener consecuencias graves cuando el valor que genera el integer
overflow es resultado de alguna entrada de usuario (es decir, que puede ser controlado por el
mismo) y cuando, de este valor, se toman decisiones de seguridad, se toma como base para
hacer asignaciones de memoria, índice de un array, concatenar datos, hacer bucles, etc. En el
año 2016, Apple tuvo un grave problema con la gestión de la fecha por parte del sistema
operativo iOS.

Cadenas de formato o String format: durante el diseño de un programa puede resultar útil
permitir que un usuario introduzca datos de entrada para, posteriormente, ser mostrados por
pantalla. En algunos lenguajes de programación se debe identificar el tipo de dato que se
desea mostrar, de forma que el programador deberá describir si el dato a mostrar va a ser en
hexadecimal, un carácter, un string, un número entero, un número real...

6
Dase de explotación

Explotación
La explotación de sistemas puede ser altamente compleja, pero existen frameworks que
simplifican la tarea; como es el caso de Metasploit framework, el cual es una de las
herramientas de auditoría más utilizada, potente y versátil.

Después de la fase de análisis de vulnerabilidades se debe tener en cuenta la fase de


explotación, quizá una de las que más adrenalina proporciona al auditor, ya que en muchos
casos conseguirá control sobre diferentes máquinas. Los diferentes tipos que podemos
encontrar son:

Explotación remota con conectividad directa. El escenario es sencillo: la máquina A es la del


atacante y tiene conectividad con la máquina B, la máquina de una organización que tiene
un servidor FTP, web o SSH, por ejemplo. El software FTP, Web o SSH de la máquina B es
vulnerable a alguna vulnerabilidad conocida y, simplemente, por tener conectividad el
atacante de la máquina A podría lanzar un exploit contra la máquina B y tomar el control de
dicha
máquina.

7
Dase de explotación

Explotación
Para ejemplificar, se supone que la máquina B tiene un servidor FTP denominado Easy File
Sharing FTP Server versión 3.5. La aplicación está siendo ejecutada en una máquina Windows
8.1 y tiene una vulnerabilidad de tipo Stack Buffer Overflow. El exploit no es más que un
código, por ejemplo, escrito en lenguaje C, Ruby o Python, que sabe aprovecharse de
la vulnerabilidad y conseguir ejecutar un código arbitrario.

Aquí es dónde se mostrará la facilidad de uso de Metasploit. No hace falta saber de


exploiting para utilizar Metasploit, sencillamente vale con saber qué módulo utilizar y
configurar una serie de atributos. Los módulos de tipo exploit en Metasploit reflejan qué
vulnerabilidad se quiere aprovechar, no hace falta saber más del exploit, ni como está hecho
por debajo.

En la máquina A, el atacante, configura el módulo indicándole la dirección IP de la máquina


B, el payload que quiere utilizar, en este caso un Meterpreter, el cual proporciona gran
cantidad de funcionalidad. Al payload se le indica a qué dirección IP debe devolver el control
si el exploit tiene éxito. Por eso, el atributo LHOST indica la dirección IP de la máquina del
atacante. El atributo RHOST es la dirección IP de la máquina con el servidor FTP. Como se
puede ver Metasploit simplifica el proceso 8
Dase de explotación

Explotación
bastante. Una vez se obtiene el Meterpreter, comienza la fase de postexplotación, es decir,
todas las cosas que se puede hacer desde esa máquina hacia otras.

Explotación local de vulnerabilidades.

La explotación local de vulnerabilidades permite a un usuario sin privilegio, o con privilegios


reducidos, poder saltar los mecanismos de seguridad de un sistema operativo con el objetivo
de poder ejecutar acciones privilegiadas. Metasploit tiene una serie de módulos de tipo
exploit que permiten, una vez se disponga de una sesión remota, ejecutar un exploit local a
través de dicha sesión. Esto es potente, ya que puede que hayamos conseguido solo el
privilegio del usuario “normal”, pero con este tipo de vulnerabilidades se consiga obtener el
máximo privilegio, por ejemplo, “System” en Windows o “root” en Linux.

9
Dase de explotación

Explotación
Para ejemplificar el uso de una vulnerabilidad local en un sistema Windows 7 se hablará de la
vulnerabilidad con CVE-2014-4113, apareció en octubre de 2014 y fue un 0day que permitía la
escalada de privilegio sobre sistemas Windows. La vulnerabilidad fue parcheada por Microsoft
en el boletín MS14-058. Un grupo de hackers publicó un exploit con el que se podía realizar
una escalada de privilegio a los sistemas Windows, hasta la versión 7 SP1, aunque la
vulnerabilidad afecta a sistemas Windows 8, pero el exploit público no era válido para dichas
versiones.

En este ejemplo es importante entender que un usuario con acceso físico a la máquina y a la
sesión de usuario, y sin privilegio ninguno, puede ejecutar un exploit que le permita obtener
una cmd como System.

Partiendo de que el usuario no tiene ningún privilegio, y será miembro del grupo de usuarios
normales del sistema, se logrará elevar el privilegio y poder lanzar acciones como si fuera
“System”. En otras palabras, se englobaría en una escalada de privilegio total sobre el sistema,
ya que en la prueba de concepto se partirá como usuario normal no perteneciente al grupo
administradores, y tras la ejecución del exploit se obtendrá una cmd con privilegio máximo.
10
Dase de explotación

Explotación
Es realmente sencillo conseguir la escalada de privilegio y disponer de una cmd como System.
Hay que tener en cuenta que se debe conocer el tipo de código que se está ejecutando, y no
es recomendable ejecutar exploits en auditorías de los cuales no se tiene control. Algo que
puede ser muy interesante, una vez se tiene la cmd con el privilegio de System, es la
ejecución de un binario, dll o script de PowerShell que devuelva una Meterpreter en remoto.
De esta manera, el proceso de la Meterpreter se ejecutará con identidad de System, por lo
que se devuelve el control de la máquina a otra máquina controlada o gestionada por el
usuario en remoto, y se gana con todas las funcionalidades que Meterpreter aporta.
El exploit se encuentra disponible para versiones de 32 y 64 bits. Además, el módulo de
Metasploit para explotar la vulnerabilidad, se encuentra en:

exploit/windows/local/ms14_058_track_popup_menu.

11
Dase de explotación

Explotación
Explotación local con OS X

En el año 2015, el sistema operativo OS X fue afectado por varias vulnerabilidades que
permitían elevar privilegios en el sistema3. En muchas ocasiones se piensa que solo existen
exploits para Windows, pero esto no es verdad. Cualquier sistema operativo es afectado por
vulnerabilidades, y por consiguiente existen exploits que se aprovechan de dichas
vulnerabilidades.

Una vulnerabilidad conocida como Rootpipe permitía elevar privilegios y pasar de un usuario
sin privilegios a ser root en un sistema OS X. El punto de partida en este ejemplo será una
sesión de Metasploit sobre un sistema OS X. Una vez tenemos la sesión se debe colocar la
shell en background, aunque antes podemos visualizar los permisos que se tienen en la shell
obtenida. Se puede visualizar el uid del usuario logueado, y otros grupos a los que dicho
usuario pertenece.

Cuando dejemos la shell en background configuramos el módulo de explotación local de


Rootpipe.
12
Dase de explotación

Explotación
Hay varios atributos que configurar como son: la sesión por la que se lanzará el exploit, en
este caso utilizaremos el identificador obtenido anteriormente. Además, el exploit permite
configurar que directorio será utilizado por Rootpipe para escribir, tanto exploit como
payload. Si lo dejamos por defecto escribiremos en /.Trashes, la cual es una carpeta que
necesita privilegio para escribir, por lo que si podemos escribir tendrá buena pinta. Una vez
lanzado el exploit a través de la sesión se ejecutará como si estuviera en local. Si la elevación
de privilegios funciona, se abrirá una nueva shell como root, es decir, uid=0.

13
Dase de explotación

Explotación
Explotación a través de Client-Side

Los ataques client side son ataques que son llevados a cabo en el lugar del cliente, es decir, es
un usuario el que tiene que realizar una petición a un servidor controlado por un atacante
para que este le devuelva una respuesta maliciosa. Por ejemplo, un exploit.

El ejemplo básico sería el siguiente:

• El usuario “normal” navega por Internet tranquilamente. Accede a un foro y lee un mensaje
que le llama la atención. En ese mensaje se anuncia un producto que le interesa y hay un link
para acceder a más información. Cuando el usuario pincha sobre el link, el navegador le dirige
a otra ubicación. El sitio web al que se accede puede ser legítimo, pero supongamos que
alguien de forma malintencionada ha colocado un código HTML en ese sitio que obligue al
navegador del usuario a realizar una petición a otro dominio.

14
Dase de explotación

Explotación
• El dominio en cuestión es malicioso y está gestionado por el atacante. Al recibir la petición,
la cual se ha hecho de formar trasparente, se envía un HTML malicioso, el cual contiene un
exploit para una versión concreta del navegador de la víctima.

• Cuando el navegador ejecuta el fichero HTML se encuentra que el exploit aprovecha la


vulnerabilidad y se consigue ejecutar código arbitrario de forma remota.

15
Dase de explotación

Explotación
• El dominio en cuestión es malicioso y está gestionado por el atacante. Al recibir la petición,
la cual se ha hecho de formar trasparente, se envía un HTML malicioso, el cual contiene un
exploit para una versión concreta del navegador de la víctima.

• Cuando el navegador ejecuta el fichero HTML se encuentra que el exploit aprovecha la


vulnerabilidad y se consigue ejecutar código arbitrario de forma remota.

Una vez que hemos conseguido explotar un sistema, nos podemos encontrar dos
tipos de Shell:

BIND SHELL: Es una shell que funciona de forma directa entre un equipo
local y otro remoto, ya que no hay en el equipo remoto un router o
Dispositivo que haga NAT.

REVERSE SHELL: Es utilizado cuando se tiene en medio algún dispositivo


de Enrutamiento que está haciendo NAT, por lo que se hace necesario que
sea el cliente, quien llame o abra la conexión con el servidor.
16
Dase de explotación

Explotación
2. METASPLOIT

¿Qué es Metasploit?

Metasploit es un framework para desarrollar y ejecutar exploits contra un sistema


informático. Trabaja de forma original en modo texto, bajo línea de comandos.

Metasploit fue creado por H. D. Moore en 2003 como una herramienta portable de red
usando el lenguaje de programación Perl. En el 2007 fue reescrito en el lenguaje de
programación Ruby. En 2009 fue adquirido por la empresa de soluciones de vulnerabilidades
Rapid7. Se dice que es un framework porque es un programa en el que disponemos de una
serie de herramientas programadas para realizar un trabajo. Estas herramientas nos ayudan
a automatizar una serie de procesos en nuestra auditoría o pentesting, como veremos en
los siguientes puntos de la unidad.

17
Dase de explotación

Explotación
2.1 Arquitectura de Metasploit

Los creadores de Metasploit nos recomiendan que nos familiaricemos antes de comenzar a
utilizar el framework con los archivos del sistema y librerías de este. Dentro de la distro de
seguridad Kali Linux, podemos encontrar los archivos del sistema y librerías en el directorio
/usr/share/metasploit-framework

18
Dase de explotación

Explotación
2.2 Sistemas de archivos Metasploit

El sistema de directorios está diseñado para un uso intuitivo y organizado por medios del uso
de directorios:

data: Contiene archivos editables usados por Metasploit.


documentation: Podemos encontrar documentación sobre el framework.
external: Código fuente y librerías de terceras personas.
lib: Esta carpeta contiene el código base del framework.
modules: Dispone los módulos actuales de Metasploit.
plugins: Plugins que pueden ser cargados en tiempo de ejecución.
scripts: Scripts de Meterpreter y otros tipos de scripts.
tools: Contiene varias utilidades de la línea de comandos.

19
Dase de explotación

Explotación
2.3 Librerías de Metasploit

Las librerías de este framework nos ayudan a ejecutar exploits sin necesidad de
tener que escribir código adicional.

Rex

- Es la librería básica para la mayoría de las tareas.


- Maneja Sockets, Protocolos …

Msf:Core

- Nos proporciona la API básica.


- Define el framework Metasploit.

Msf:Base

- Nos proporciona una API amigable.


- También nos proporciona API’s simplificadas para usarse en el framework.
20
Dase de explotación

Explotación
2.4 Objeto de modelado Metasploit

En Metasploit, todos los módulos son clases de Ruby. Tienen las siguientes características:

 Módulos heredados de una clase de tipo específico.


 La clase de tipo específico hereda de la clase Msf:module.
 Existe una API compartida entre módulos.

21
Dase de explotación

Explotación
2.4.1 Mixings

Conozcamos unos conceptos básicos de Ruby:

- Cada clase tiene solamente un padre.


- Una clase puede incluir varios módulos.
- Los módulos pueden agregar nuevos métodos.
- Los módulos pueden sobrecargar métodos viejos.
- Los módulos de Metasploit pueden heredar de Msf:module e incluir mixings para agregar
nuevas características.

22
Dase de explotación

Explotación
2.5 Conceptos básicos de Metasploit

Cuando trabajes con Metasploit, necesitarás conocer algunos conceptos y terminología


básica para no perderte. Te dejamos aquí una breve referencia para que te vayan sonando los
términos.

Exploit: Programa o parte pequeña de código que explota una vulnerabilidad en un sistema.
Un exploit puede darnos control total de un sistema o dejar un sistema inhabilitado.

Exploit local: Este tipo de exploits funcionan en un sistema al cual tenemos acceso físico.

Exploit remoto: Funcionan cuando atacamos un sistema informático, ya sea dentro o fuera de
nuestra red.

Exploit 0’day: Estos tipos de exploits explotan un fallo y no hay forma de detenerlos, en la
mayoría de las ocasiones no se sabe su existencia, ya que no han sido reportados para su
arreglo.
23
Dase de explotación

Explotación
Auxiliary: Estos módulos nos dan funcionalidades, cómo por ejemplo un escáner de puertos,
captura de tráfico red….

Post: En este módulo encontraremos recursos para utilizar una vez que hemos comprometido
un sistema.

Payload: Es una pieza de código que se ejecuta después de que hayamos explotado alguna
vulnerabilidad en un sistema. Básicamente define el tipo de acceso y las acciones que haremos
cuando estemos dentro del sistema.

Encoder: se usan para evadir protecciones que utilizan los antivirus, firewalls y detectores de
intrusiones entre otros.

Nop: Es una abreviación de “no operation” y está “no operación” está escrita en lenguaje
ensamblador. Este es un tema con cierta complejidad, pero se usan para el desarrollo de
exploits y le da estabilidad a nuestro payload.

24
Dase de explotación

Explotación
2.6 Abrir o lanzar Metasploit

Para lanzar la suite, en Kali Linux (y en muchas otras distribuciones orientadas al pentesting,
como Parrot, Arch Linux, etc…) podremos hacerlo de dos formas, siempre y cuando
dispongamos de entorno gráfico:

- Desde la Shell.
- Desde el entorno gráfico (menú del gestor de ventanas).

25
Dase de explotación

Explotación
2.7 Lanzamiento desde la Shell

Simplemente deberemos escribir el nombre de la consola de Metasploit:

$ msfconsole

Una vez arrancada la


consola de Metasploit, nos
aparecerá el total de
elementos almacenados en
la base de datos, listos para
ser usados.

26
Dase de explotación

Explotación
2.8 Lanzamiento en
entorno gráfico

Abrimos el menú de
“Herramientas de
explotación” de Kali y
localizamos
“Metasploit
Framework”. No tendrás
ningún problema en
encontrarlo.

27
Dase de explotación

Explotación
2.9 Ver los ataques disponibles
Una vez que haya arrancado, tendremos a nuestra disposición un gran listado de
ataques a nuestra disposición, pero si queremos conocer el listado de cada uno
de ellos, podemos listarlos de forma independiente.
Para ver el listado de exploits disponibles, únicamente deberemos escribir en la
consola msf, el comando:

$ show exploits

28
Dase de explotación

Explotación
2.9 Ver los ataques disponibles
Una vez que haya arrancado, tendremos a nuestra disposición un gran listado de
ataques a nuestra disposición, pero si queremos conocer el listado de cada uno
de ellos, podemos listarlos de forma independiente.
Para ver el listado de exploits disponibles, únicamente deberemos escribir en la
consola msf, el comando:

$ show exploits

Para ver los payloads, usaremos el comando:

$ show payloads

Para ver los auxiliary, usaremos el comando:

$ show auxiliary

29
Dase de explotación

Explotación
Con los nops, escribiremos el siguiente comando:
$ show nops

30
Dase de explotación

Explotación
2.10 Comandos esenciales

A continuación, vamos a aprender a movernos por la consola de Metasploit. Es esencial


conocer los comandos básicos para comprender el correcto funcionamiento de este potente
framework.

 msfupdate: Actualiza Metasploit a su última versión.


 msfconsole: Nos hace ingresar en la consola de Metasploit.
 msfvenom: Arranca la herramienta de creación de puertas traseras
(Backdoors).
 Exploit/run: Lanza un determinado exploit o módulo auxiliar.

31
Dase de explotación

Explotación
2.11 Otros comandos básicos

jobs: Nos muestra los trabajos que se están ejecutando en segundo plano.

32
Dase de explotación

Explotación
irb: lanzará el intérprete de Ruby y también nos ayuda a ejecutar algunos
comandos y scripts.

33
Dase de explotación

Explotación
route: Nos permite establecer tablas de enrutamiento a través de una
sesión proporcionando capacidades de pivoting básicas.

34
Dase de explotación

Explotación
sessions: Nos permite listar, interactuar y matar sesiones, como las
sesiones de Meterpreter, Shell etc... Nos dará el listado actual de sesiones
activas donde se está ejecutando un exploit.

35
Dase de explotación

Explotación
help: Con él obtenemos ayuda sobre el uso de Metasploit.

Es importante anotar toda la ayuda que nos ofrece este comando para comprender mejor el
funcionamiento de Metasploit. 36
Dase de explotación

Explotación
use: Lo utilizaremos para seleccionar o cargar cualquier módulo

37
Dase de explotación

Explotación
info: Muestra información sobre el módulo.

38
Dase de explotación

Explotación
show: Muestra opciones, objetivos, parámetros etc.

39
Dase de explotación

Explotación
set: Nos permite asignar y/o configurar los valores a los módulos con los
que estemos trabajando.

40
Dase de explotación

Explotación
setg: Con este comando podemos establecer variables globales dentro de msfconsole.

unset: Nos permite eliminar los valores en los módulos con los que estemos trabajando.

unsetg: Con este comando podemos eliminar variables globales, que hayamos asignado
dentro de msfconsole

check: Verifica que un exploit pueda funcionar antes de ejecutar este.

versión: Muestra la versión del framework y la consola.

load: Carga un plugin desde el directorio que le indiquemos.

unload: Descarga un complemento previamente cargado y elimina los comandos extendidos.

sleep: Deja en stand by Metasploit.

quit: Con él, salimos de Metasploit. 41


Fase de escaneo

Actividades prácticas

Fase de Explotación

42

También podría gustarte