La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

BUFFER OVERFLOW Y EXPLOITS

Presentaciones similares


Presentación del tema: "BUFFER OVERFLOW Y EXPLOITS"— Transcripción de la presentación:

1 BUFFER OVERFLOW Y EXPLOITS
Bernardo Coutinho @bernardocout

2 TEMARIO Introducción Buffer Overflow Stack Overflow
Un poco de historia Definición Tipos Stack Overflow Funcionamiento de la pila Exploits y Shellcodes EOF

3 INTRODUCCION Vulnerabilidad: es un punto débil del sistema, un error o una deficiencia. Ej: un fallo de programación. Es conocido en jerga informática como «bug». Ataque: es comprometer la seguridad del sistema aprovechándose de alguna vulnerabilidad del mismo. Contramedida: acciones a llevar a cabo para evitar tener vulnerabilidades en el sistema.

4 INTRODUCCION Las vulnerabilidades más comunes se dan por el uso de software con fallas de programación. Algunos ejemplos comunes: Falla en la validación de la entrada de datos. Falla en el sistema de validación de acceso. Error de configuración.

5 BUFFER OVERFLOW: ALGO DE HISTORIA
Robert T. Morris desarrolló en 1988 el primer gusano que se autopropagó por Internet utilizando un fallo de Buffer Overflow en los UNIX de esa época. Miles de ordenadores fueron infectados.

6 BUFFER OVERFLOW: ALGO DE HISTORIA (2)
En el 2001, el gusano Code Red se aprovecho de un Buffer Overflow en el servidor web IIS de Microsoft que permitía obtener un acceso como administrador del sistema. En 2003 apareció SQLSlammer que permitía la ejecución de código arbitrario en servidores SQL Server 2000.

7 BUFFER OVERFLOW: DEFINICION
El Buffer Overflow o Desbordamiento de Buffer es una falla de software que se da por una incorrecta validación de los datos de entrada, permitiendo así copiar en una porción de memoria más datos de los que puede almacenar.

8 BUFFER OVERFLOW: TIPOS
Stack Overflow Heap Overflow Format String Overflow Integer Overflow Return into libc o pilas no ejecutables

9 STACK OVERFLOW En Español Desbordamiento de la Pila, es el tipo de Buffer Overflow más común. La pila es una estructura de datos en la cual el último elemento que entró es el primero que sale. La pila se usa generalmente para almacenar: Direcciones de retorno de funciones Variables locales Parámetros de funciones

10 FUNCIONAMIENTO DE LA PILA
Hay dos registros del procesador que permiten el manejo de la pila: EBP: contiene la dirección de la base de la pila. ESP: contiene la dirección de la cima de la pila.

11 FUNCIONAMIENTO DE LA PILA

12 FUNCIONAMIENTO DE LA PILA
Si para una variable local se le reservan 10 bytes, y luego se copian más de 10 bytes, puede suceder que pisemos la dirección de retorno. Modificando esa dirección de retorno de manera inteligente podemos ir a cualquier punto determinado del programa o incluso ejecutar un programa puesto por nosotros en memoria.

13 EXPLOIT Un exploit es un programa que permite automatizar la tarea de explotar una falla. Podemos desarrollar un exploit para aprovechar un buffer overflow y ejecutar código arbitrario, escalar privilegios, realizar una denegación de servicio, etc.

14 SHELLCODES Una shellcode es un conjunto de instrucciones especialmente diseñadas para ser inyectadas por un exploit. Lo más común es construir shellcodes para: - Obtener una consola - Abrir una puerta trasera. - Generar una conexión reversa. - Obtener una cuenta de administrador.

15 SHELLCODES No pueden contener instrucciones cuyo OP CODE sea cero, ya que ese valor se interpreta como fin de cadena y no se podrá inyectar con el exploit. Lo más común es que se desarrollen en ASM, ya que tenemos un mayor control de las instrucciones. Es difícil obtener shellcodes genéricas, que son aquellas que funcionan en varios sistemas.

16 ¡GRACIAS POR SU ATENCION!
Bernardo Coutinho @bernardocout


Descargar ppt "BUFFER OVERFLOW Y EXPLOITS"

Presentaciones similares


Anuncios Google