PDF de programación - Explotación con Metasploit Framework

Imágen de pdf Explotación con Metasploit Framework

Explotación con Metasploit Frameworkgráfica de visualizaciones

Publicado el 8 de Junio del 2018
668 visualizaciones desde el 8 de Junio del 2018
1,1 MB
31 paginas
Creado hace 14a (15/11/2009)
Explotación con Metasploit

Framework

César Cuadra Pacheco, CISSP, CEH, CompTIA Security+
Senior Security Consultant & Penetration Tester
[email protected]



www.Open-Sec.com

Metasploit
Framework



Metasploit Framework

es

El Metasploit Framework,
una
herramienta para desarrollar y ejecutar exploits
contra una máquina
remota. Fue creado
lenguaje de programación de
utilizando el
el
scripting Perl,
Metasploit Framework ha sido escrito de nuevo
completamente en el lenguaje Ruby.

actualmente

aunque



© Open-Sec

Metasploit Framework

El Metasploit Framework,
tiene varios
componentes y utilidades entre las cuales
destacan:

● Msfcli (Cliente de Metasploit)
● Msfconsole (Consola de Metasploit)
● Msfweb (Servidor e Interfaz web de Metasploit)
● Msfgui (Interfaz gráfica de Metasploit)
● Msfopcode (Cliente de la base de datos

de OPCODES de Metasploit)



© Open-Sec

Metasploit Framework

Continuación de
Metasploit Framework:
● Mspayload
Metasploit)

lista de utilidades de

(Generador de PAYLOADS de

● Pattern_create (Genera una cadena con cierto
patrón, utilizada para encontrar las direcciones
offset)

● Pattern_offset (Calcula el offset de una cadena

específica)



© Open-Sec

Demo: Uso Básico de Metasploit



Creando Exploits...

● ADVERTENCIAS

– Practicar esto en la casa es peligroso,

practicarlo en la oficina es peor aún! Se dará
cuenta que su red no esta segura !!

● Open-Sec

muestra
estas
técnicas y
herramientas
unicamente
con fines
educativos.



© Open-Sec

¿Cómo se descubren los fallos de

Seguridad?



© Open-Sec

¿Cómo se descubren los fallos de

Seguridad?

● Mientras que para algunos un “cuelgue” del

sistema es sólo eso, para otros es un fallo de
seguridad que podrían aprovechar.

● En la actualidad se ha hecho muy extendido el
uso de fuzzers para descubrir vulnerabilidades.

● Se pueden descubrir fallos de seguridad

mediante la revisión de código fuente.

● Sometiendo a las aplicaciones a pruebas de

intrusión.

● Muchas veces se descubren fallos de

seguridad simplemente utilizando el sistema.

© Open-Sec



DEMO: Descubriendo una

vulnerabilidad



DEMO: Descubriendo una

Vulnerabilidad

Código Fuente de Fuzzer Sencillo en Python

Como resultado de la ejecución del script podemos observar una excepción
en ollydbg, es importante notar los registros ESP y EIP, donde EIP tiene el
valor 41414141 el cual esta representado en hexadecimal, en ASCII sería
“AAAA” (que hemos enviado en nuestra petición), de igual modo el registro
ESP tiene valor AAA.......A

Ejecución del script



© Open-Sec

¿Qué es un Exploit?

Es un programa, sentencia o similar que aprovecha
una vulnerabilidad para comprometer la
confidencialidad, integridad y/o disponibilidad



¿Qué es Buffer Overflow?



¿Qué es Buffer Overflow?

para

grande

Según Wikipedia, un desbordamiento de buffer es un
error de software que se produce cuando se copia una
cantidad de datos sobre un área que no es lo
contenerlos,
suficientemente
sobrescribiendo de esta manera otras zonas de
memoria.
Un desbordamiento de buffer ocurre cuando los datos
que se escriben en un buffer corrompen aquellos datos
en direcciones de memoria adyacentes a los destinados
para el buffer, debido a una falta de validación de los
datos de entrada. Esto se da comúnmente al
copiar cadenas de caracteres de un buffer a otro.



© Open-Sec

¿Cómo crear un exploit?

● A continuación crearemos un exploit para una

vulnerabilidad de buffer overflow.



Algunos Conceptos Básicos

Registros del CPU

● EBP (extended base pointer)
● ESI (extended source index)
● EDI (extended destination index)
● ESP (extended stack pointer)
● EIP (enhanced instruction pointer) Apunta a la

siguiente instrucción a se ejecutada.



© Open-Sec

Controlando los registros

● Para examinar los registros y la ejecución del
programa vulnerable usaremos ollydbg (puede
usar algún otro debugger)

● Debemos encontrar la forma de escribir el

registro EIP, para encontrar el offset vamos a
hacer uso de pattern_create.rb y
pattern_offset.rb de Metasploit.



© Open-Sec

DEMO: Controlando los Registros



DEMO: Controlando los Registros

Creando un patrón de caracteres con pattern_create de Metasploit, para
ubicar las direcciones (desplazamientos) de los registros del CPU.

Enviamos el patrón de caracteres generado al servidor a través de nuestro
buffer.

Revisamos los valores de los registros ESP y EIP en OllyDbg, para luego
ingresarlos en pattern_offset y calcular el desplazamiento.

Calculamos el desplazamiento con pattern_offset de Metasploit utilizando los
datos proporcionados en OllyDbg.
Podemos observar que a partir del carácter nro 485 se inicia la escritura en el
registro EIP, y que a patir del carácter 493 se inicia la escritura en el registro ESP.
Entonces nuestro buffer será: A*485 + EIP (son 4 bytes) + 4 bytes + ESP (aca va el
payload)



© Open-Sec

Creando un Exploit sencillo

● Utilizaremos un PAYLOAD de Metasploit,

debemos tener en cuenta los
badchars(caracteres no permitidos) y el
espacio disponible para el Exploit.

● Buscaremos la forma de indicar en el EIP que
ejecute nuestro PAYLOAD (que se encuentra
en ESP), para esto asignamos a EIP una
dirección de memoria que apunte a una
instrucción JMP ESP, esto lo podemos ubicar
en la base de datos de OPCODES de
Metasploit, buscando con OllyDbg o con
findjmp2.exe

© Open-Sec



Creando un Exploit sencillo

● Utilizaremos NOPs(No Operation Command),

para indicar al CPU que continúe con la
secuencia de ejecución.

● Para este sencillo ejemplo utilizaremos Python

como lenguaje de programación.



© Open-Sec

DEMO: Creando un Exploit Sencillo



Seleccionamos el PAYLOAD deseado en la interfaz web de Metasploit, en este
caso utilizaremos Windows Command Shell, Reverse TCP Inline, debido a que
nuestra víctima tiene su firewall activado

Por tratarse de una shell reversa (la víctima se conecta con el atacante),
necesitamos indicar al PAYLOAD la dirección IP del atacante y el puerto al cual
se conectará la víctima, además en esta parte establecemos los badchars.

DEMO: Creando un Exploit Sencillo

Ahora tenemos nuestro PAYLAOD generado, procedemos a fijarnos en el tamaño, que no exceda el tamaño que
tenemos disponible para nuestro exploit, y copiamos el PAYLOAD para utilizarlo en nuestro exploit.



DEMO: Creando un Exploit Sencillo

Con la dirección encontrada, vamos a crear nuestro buffer, de modo tal
que el registro EIP se escriba 7C82385D y en el registro ESP se escriba
nuestro payload, los espacios intermedios serán llenados con NOPs (0x90)

Podemos utilizar la aplicación Findjmp2.exe para ubicar las direcciones de memoria que
contienen una llamada al registro ESP (en nuestro caso) para escribirlas en el registro EIP.



© Open-Sec

DEMO: Creando un Exploit Sencillo

Ponemos en escucha el puerto 4444 en el equipo del atacante.

Ejecutamos el exploit

Así se ve la aplicación en la víctima luego de ejecutar el exploit, pueden fijarse
en la parte del log donde se envía un string bastante largo lleno de “A”.

Obtenemos una shell de la víctima.



© Open-Sec

¿Cómo crearlo en Metasploit?

Estructura básica de un exploit de Metasploit:

● Comentario
● Dependencia
● Definición de la clase
● inclusiones
● método constructor

– Nombre del exploit
– Descripción del exploit
– Más datos sobre el exploit



© Open-Sec

Estructura básica de un exploit de

Metasploit (Cont.)

● Información para generar el Payload

– Espacio disponible
– Caracteres no válidos

● Plataforma
● Objetivos
● Método Exploit



© Open-Sec

Demo: Creando un

exploit con Metasploit

Framework



EXPLOIT en
Metasploit

●En el método exploit, primero establecemos conexión
con la víctima.

●Luego creamos un buffer y llenamos los 485 primeros
bytes con caracteres alfanuméricos
(rand_text_alphanumeric(485)).

●Luego añadimos la dirección ret (EIP) al buffer
([target.ret].pack('V')).

●A continuación agregamos 4 NOPs (make_nops(4)).

●Finalizamos nuestro buffer agregando el payload
seleccionado (payload.encoded).

●Ejecutamos el manejador (hadler)

●Y finalmente desconectamos.

Es importante señalar que en Targets nosotros
podemos agregar otros objetivos que no se encuentren
actualmente listados, por ejemplo Windows 2003,
Windows XP SP3 Spanish, etc, para esto debemos
buscar las direcciones de retorno ya sea con un
debugger, con findjmp2, con metasploit o en alguna
base de datos de opcodes.

© Open-Sec
  • Links de descarga
http://lwp-l.com/pdf11705

Comentarios de: Explotación con Metasploit Framework (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad