1 / 16

BUFFER OVERFLOW Y EXPLOITS

BUFFER OVERFLOW Y EXPLOITS. Bernardo Coutinho. @ bernardocout. TEMARIO. Introducción Buffer Overflow Un poco de historia Definición Tipos Stack Overflow Funcionamiento de la pila Exploits y Shellcodes EOF. INTRODUCCION.

Download Presentation

BUFFER OVERFLOW Y EXPLOITS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. BUFFER OVERFLOW Y EXPLOITS Bernardo Coutinho @bernardocout

  2. TEMARIO • Introducción • Buffer Overflow • Un poco de historia • Definición • Tipos • StackOverflow • 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 • StackOverflow • HeapOverflow • FormatStringOverflow • IntegerOverflow • Returnintolibc 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 bernardocou@hotmail.com

More Related