Curso de seguridad creación exploits
OBJETIVOS Y COMPETENCIAS
En este curso de seguridad creación exploits el alumno adquirirá los conocimientos y habilidades necesarias para realizar tareas de depuración y proceso de creación de código malicioso, también conocido como “exploit”.
Las competencias y conocimientos que los alumnos adquirirán tras finalizar el curso son las
siguientes:
- Conceptos básicos y fundamentales del lenguaje ensamblador.
- Conocimiento en profundidad de cómo comenzar el proceso de depuración de software.
- Los métodos y técnicas de creación de fuzzers.
- Los métodos y técnicas de creación de código exploit.
¿A QUIÉN VA DIRIGIDO?
- Personal con conocimientos de pentesting.
- Perfiles profesionales con experiencia en el ámbito de la ingeniería y/o programación.
Requisitos o conocimientos previos.
Para la realización de este curso se requieren las siguientes aptitudes y conocimientos básicos
previos:
- Redes informáticas.
- GNU/Linux (sistemas operativos).
- Entornos de virtualización.
- Conocimientos avanzados de informática.
- Conocimientos de algún lenguaje de programación orientada a objetos.
- Conocimientos básicos del funcionamiento de la memoria en sistemas operativos de 32 y 64 bits.
MATERIAL Y METODOLOGÍA DEL CURSO
La estructura de este curso se compone de un 50% de teoría y un 50% de práctica. No existe una parte diferenciada entre ambas, sino que están mutuamente integradas para poder visualizar mejor los conceptos y facilitar el aprendizaje al alumno.
En este curso se proporcionarán los siguientes recursos y materiales didácticos:
- El alumno dispondrá de las diapositivas que se irán exponiendo durante el curso.
- También se le ofrecerán lecturas, estudios de casos y documentación para que profundice en su aprendizaje.
- Dentro del marco práctico, el alumno dispondrá de máquinas virtuales individuales y laboratorios con distintos niveles de dificultad con los que se realizarán las prácticas del curso.
EVALUACIÓN
Para la evaluación de este curso el alumno deberá superar una puntuación mínima en el desarrollo de
los ejercicios propuestos en cada uno de los módulos que compone el curso.
CERTIFICACIÓN
Una vez el alumno haya completado el curso, realizado el respectivo proceso de evaluación y superado
la calificación mínima de corte, se le remitirá un certificado digital de cumplimiento del curso con sus respectivos datos.
DURACIÓN
La duración estimada del curso en su formato online es de 100 horas aproximadamente.
CONTENIDO DEL CURSO
BLOQUE DE PROGRAMACIÓN
1.-Introducción a la programación en bash.
2.-Introducción a la programación en python.
BLOQUE DE CREACIÓN DE EXPLOITS
1. TEMA 0 – INTRODUCCIÓN:
Qué es el debugging.
Qué es el fuzzing Laboratorios Fundamentos del curso.
2. TEMA 1 – Conceptos de debugging y fuzzing:
Definiciones Ensamblado EIP Instrucciones Prólogo de una función Epilogo de una función.
Dirección de retorno Reversing estático.
3. TEMA 2 – Introducción al buffer overflow (Smashing Stack):
Introducción Buffer Overflow Fuzzing y debugging.
Encontrando el offset para el exploit Creación del exploit .
4. TEMA 3 – Sobreescritura de SEH (Buffer overrun):
Introducción SEH Fuzzing y debugging Egghunting.
5. TEMA 4 – Bypass de DEP:
Introducción Teoría adicional de Buffer Overflow
Llamadas de Windows Return Oriented Programming.
6. TEMA 5 – Bypass de NX y ASLR:
Introducción Teoría adicional de Buffer Overflow GDB Linux.
Depurando un binario en Linux Evadiendo ASLR y NX.
7. TEMA 6 – Buffer Overflow en entorno de 64 bits:
Introducción Registros Instrucciones Arrays.
Llamando una función Escribiendo una función.
Alojamiento dinámico en la stack Stack Smashing en 64 bits Evasión de NX