Curso de Seguridad Creación Exploits
1.
OBJETIVOS Y COMPETENCIAS
En este curso 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.
1.
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.
1.
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.
4.1.
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.
1.
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.
1.
DURACIÓN
La duración estimada del
curso en su formato online es de 100 horas aproximadamente.
1.
CONTENIDO DEL CURSO
1.
MÓDULO 0 – INTRODUCCIÓN:
Qué es el debugging
Qué es el fuzzing
Laboratorios
Fundamentos del curso
1.
MÓDULO 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
1.
MÓDULO 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
1.
MÓDULO 3 –
Sobreescritura de SEH (Buffer overrun):
Introducción
SEH
Fuzzing y debugging
Egghunting
1.
MÓDULO 4 – Bypass de
DEP:
Introducción
Teoría adicional de
Buffer Overflow
Llamadas de Windows
Return Oriented
Programming
1.
MÓDULO 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
1.
MÓDULO 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