En este curso aprenderás, desde las bases teóricas hasta la practica con ejercicios, a entender que es el Buffer Overflow, explotarlo con éxito y tener mas confianza a la hora de enfrentarte a un BoF de una certificación o CTF.
Empezaremos con una pequeña parte de teoria, que es necesaria. Para luego practicar con muchos ejercicios tanto en Linux como en Windows porque practicando se aprende. Todo bajo la arquitectura de 32 Bits.
Crearemos nuestro laboratorio y veremos temas como:
En este curso aprenderás, desde las bases teóricas hasta la practica con ejercicios, a entender que es el Buffer Overflow, explotarlo con éxito y tener mas confianza a la hora de enfrentarte a un BoF de una certificación o CTF.
Empezaremos con una pequeña parte de teoria, que es necesaria. Para luego practicar con muchos ejercicios tanto en Linux como en Windows porque practicando se aprende. Todo bajo la arquitectura de 32 Bits.
Crearemos nuestro laboratorio y veremos temas como:
Entender el Buffer Overflow.
Como se realiza el Buffer Overflow Attack.
Conceptos Registro de la memoria, como esta estructurada la memoria y el Stack.
Conocer instrucciones basicas de Assembly. (Lenguaje de bajo nivel)
Practicar fuzzing con Python.
Obtener un conexión reversa mediante la inyección de una shellcode.
Practicar el Stack-Based Buffer Overflow.
Practicar la técnica de Ret2libc.
Bypass de protecciones. (ASRL y DEP)
Manejo de Debuggers como GDB e Inmunity Debbuger.
Integer Overflow
Format Strings
Cadenas ROP.
Windows SEH
Windows Egghunter
Con todo lo aprendido en el curso estarás mas seguro para vencer retos CTF de Buffer Overflow, Empezar con certificaciones de exploiting o entender la parte de BoF de certificaciones con la del
No necesitas tener ningún conocimiento previo en Buffer Overflow ya que veremos este tema desde 0 hasta conocer diferentes técnicas de explotación.
Te espero en el curso para explotar muchos ejercicios y programas.
Explicación teórica de que es el Buffer y como se produce un desbordamiento (Overflow) del buffer de la memoria.
Bienvenida al curso, veremos que aprenderemos, para que nos sirve un ataque de Buffer Overflow y como empezaremos.
Explicación teórica de como se realiza el ataque de Buffer Oveflow tanto en Linux como en Windows en arquitecturas de 32 Bits.
Virtualización de la maquina atacante Kali Linux para realizar los Ataques de Buffer Oveflow.
Virtualización de la maquina victima Debian para realizar los Ataques de Buffer Oveflow en Linux de 32 Bits.
Primer ejercicio de Buffer Overflow. Algo básico pero veremos como sobrescribir direcciones en la pila para que se cumpla un condicional.
Mediante otro ejercicio, reforzaremos conceptos para tener una base solida.
Veremos como a través de la exportación de un variable de entorno podemos escribir direcciones en la pila. No hay nada mejor que practicar junto a ejemplos.
En este video veremos un ejemplo de Stack Based Buffer Overflow donde tendremos control del registro EIP e inyectaremos nuestra Shellcode, todo esto mediante un script en Python.
Crearemos una revershell con la ayuda de msfvenom, encontraremos los badchars para que no nos de ningún error y controlaremos el equipo victima desde nuestra maquina de atacante realizando un tratamiento de la tty para tener una shell completamente interactiva. Además veremos el uso de otro complemento de GDB.
No necesariamente tienes que inyectar tu Shellcode después del registro EIP. Veremos como podemos inyectar en otras secciones de la memoria y poder seguir obteniendo una Shell. Les mostraré una herramienta muy útil que nos ayudara a obtener direcciones de instrucciones especificas.
Vamos a practicar con otro ejercicio de Stack Based Buffer Overflow para que los conceptos y técnicas se nos quede claro. Son libres de usar GDB-PEDA o GDB-GEF para la explotación. En este ejemplo estaré usando el primero.
Veremos como no solo podemos inyectar una Shellcode que nos devuelva una Shell, sino otros que nos permiten hacer cosas divertidas.
Hasta el momento vimos como podiamos desbordar entradas de texto y aprovecharnos de eso. ¿Sabias que tambien se pueden desbordar valores enteros (números)?
En este video veremos como aprovecharnos de estos valores para hacer que sucedan cosas.
Reforzamos conceptos de Interger Overflow mediante otro ejemplo practico.
Vamos a conocer un método con el cual podemos obtener una Shell con la diferencia que podemos evadir la protección NX cuando esta se encuentra activada.
A poner en practica todos los conceptos aprendidos mediante un ejemplo práctico.
Volvemos a realizar otro ejemplo practico para que nos quede mas claro esta técnica. La práctica hace al maestro.
Vamos a comprender un poco mejor el lenguaje ensamblador, como inicia y termina una función, llamadas convencionales en la arquitectura x86, registros caller y calee y mas. Esto nos ayudará a comprender mejor futuras lecciones.
Veremos y comprenderemos el tema de encadenamiento de funciones a través de un poco de teoría y un ejercicio práctico. Sin darnos cuenta lo aplicamos en el método Ret2Libc
Entramos en la sección de Return Oriented Programming (ROP), vamos a conocer una plataforma de WarGames (Retos) para practicar esta técnica con retos muy prácticos.
Vamos ampliar nuestro arsenal con una herramienta que nos permite hacer ingeniería reversa de binarios. Veremos como es posible obtener un pseudo código de las funciones de un binario en caso de no conocer o tener el código fuente del mismo.
Vamos a resolver el primer ejercicio dela plataforma ROPEmporium y realizaremos un análisis de código mediante el código assembler.
Vamos a realizar una ingeniería reversa del segundo ejercicio de la plataforma ROPEmporium para ver como funciona el binario.
Creamos un exploit para resolver el segundo ejercicio.
Vamos a realizar una ingeniería reversa del tercer ejercicio de la plataforma ROPEmporium para ver como funciona el binario.
Creamos un exploit para resolver el tercer ejercicio, este es un claro ejemplo de ROP. Vamos a divertirnos.
Entramos a una nueva sección de ataques dentro del Buffer Overflow. Explicaremos qué es y cómo funciona este tipo de ataques.
Vamos a ver, mediante un ejemplo practico, como podemos leer direcciones arbitrarias de la memoria y poder encontrar los parámetros que estamos introduciendo.
Vamos a ver como podemos ingresar a funciones que no tenemos acceso dentro del código mediante los Formats Strings.
Seguimos practicando la técnica Format String para la explotación de binarios.
Vamos a realizar un bypass de aquello que hemos estado deshabilitando en todas las clases, Ya es hora, bypass de ASRL.
En este video vamos a introducirnos teóricamente a como funciona y como vamos a explotar un Buffer Overflow en Windows.
Vamos a crear nuestro laboratorio para esta sección. Estaremos virtualizando una maquina Windows 7 Home Basic de 32 bits para trabajar junto a nuestra maquina Kali Linux.
Vamos a instalar algunos programas a la maquina ya virtualizada que nos ayudaran para que que pasa a bajo nivel con los programas que vamos a estar vulnerando.
Vamos a aplicar desbordamiento de buffer Stack Based para lograr una ejecución remota de comandos.
Vamos a aplicar desbordamiento de buffer Stack Based para lograr una ejecución remota de comandos. Este ejercicio aparece en varias certificaciones.
Que el manejo de excepciones no nos detenga, es mas vamos a aprovecharnos de eso para que apunte a nuestra Shellcode. Técnica SEH.
Es hora de aplicar la técnica SEH para conseguir un desbordamiento de buffer y ejecución remota de comandos.
Esta técnica nos salvara la vida cuando no tengamos mucho espacio para introducir nuestra Shellcode. Técnica de EggHunter.
En este ejemplo practico vamos a combinar un Stack Based con un EggHunter.
En este ejemplo practico vamos a combinar un SEH con un EggHunter.
El DEP ya nos ha molestado en Linux y ahora lo hace en Windows. No tenemos de otra que hacerle un Bypass. Uso de cadenas ROP para vencer a DEP.
Vamos a aplicar todo lo aprendido teóricamente para ejecutar nuestra Shellcode dentro de la pila a pesar de que el DEP este habilitado.
¿Te gustaría conocer que certificaciones a nivel internacional hay para el desarrollo de exploits?
Muchas gracias por tomar el curso. Nos vemos la próxima!
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.