Este es el tercer año en el que tengo el honor de participar en las formaciones de RootedCON, Este año en concreto es la segunda edición del Bootcamp de explotación de vulnerabilidades, en el que se aprenderán y trabajarán técnicas de explotación de vulnerabilidades. Esta dirigido a todas aquellas personas que quieren pasar unos días muy intensos y divertidos aprendiendo a explotar vulnerabilidades.
Un Bootcamp es un curso eminentemente práctico en el que se aprende mediante la resolucion de distintos ejemplos prácticos. En este Bootcamp los asistentes aprenderán a explotar fallos en programas. Además, los Bootcamps tienen la característica de ser muy intensivos, tanto en la cantidad de materia a desarrollar, como en el tiempo dedicado. Cada día de los tres que consta el Bootcamp estaremos trabajando una media de 12 horas, desde las 9:00 hasta las 21:00 o más…..
El primer día del curso lo dedicaremos a explotar vulnerabilidades en sistemas operativos Linux. Comenzaremos con una introducción teórica sobre estos sistemas operativos y las distintas herramientas que se utilizaran, para poder lanzaremos a explotar un stack buffer overflow. Este tipo de fallo es un clásico que lleva con nosotros desde los años 90 y permite lograr la ejecución de código cuando se produce un desbordamiento a la hora de escribir datos en un buffer que esta alojado en la pila o stack. Posteriormente analizaremos que medidas de protección se han ido añadiendo en los sistemas operativos para dificultar la explotación de este tipo de vulnerabilidades y veremos que técnicas se pueden utilizar para sobrepasar dichas medias de protección. Continuaremos con la explotación de otro tipo de fallo, al que no se le suele dar mucha importancia pero que puede resultar muy perjudicial, como son los Format String no controlados. La última parte del día la dedicaremos a introducir los aspectos teóricos necesarios para comenzar la explotación de vulnerabilidades en sistemas Windows y a realizar ejercicios en este sistema operativo.
El segundo y tercer día del Bootcamp los dedicaremos íntegramente a trabajar la explotación de vulnerabilidades en sistemas Windows. El curso volverá sobre el famoso y clásico stack buffer overflow, que aunque parezca sorprendente todavía se encuentran programas que tienen este tipo de fallos. Avanzaremos con otro tipo de fallo como es la explotacion de un stack based overflow que sobreescriba un SEH y trabajaremos también una parte importante a la hora de explotar vulnerabilidades como es tener cierta soltura a la hora de emplear distintas shellcodes o payloads. Una shellcode o payload es el código arbitrario que es ejecutado cuando se explota una vulnerabilidad.
Continuaremos el segundo día explicando, cómo los sistemas operativos introducen técnicas de protección para dificultar la explotación de estos fallos. La primera en la que nos centraremos es DEP ( Data Execution Prevention ) la cual evita la ejecución de código en zonas destinadas a almacenar datos. Los programas disponen de distintas zonas de memoria. En unas se almacena el código a ejecutar y en otras se almacenan datos, los cuales son utilizados o generados por el programa. DEP permite marcar las zonas ejecutables como lectura y ejecución y las zonas de datos como lectura y escritura, pero nunca como lectura, escritura y ejecución. De esta forma se previene la ejecución de código en la pila o stack (que es una zona de datos). Después veremos que DEP se puede superar ( o “bypassear” ) mediante el uso de técnicas como el ROP (Return Oriented Programming) Esta técnica utiliza pequeñas partes del código ejecutable, para conseguir llamar a determinadas funciones del API de Windows que nos permitirán modificar los permisos de la zona de memoria y añadir el permiso de ejecución antes de lanzar nuestra shellcode.
El tercer día lo dedicaremos a introducir la medida de protección ASLR (Address Space Layout Randomization) Esta medida aleatoriza la disposición de las DLLs en memoria. Aunque no lo pueda parecer, con esta protección se dificulta tremendamente la explotación de vulnerabilidades y hace muy difícil el uso de shellcodes simples y de cadenas de ROP. Al terminar este Bootcamp los alumnos tendrán asimilado porque esta técnica es tan importante y les resultará muy fácil justificar la sustitución de sistemas no soportados, pero desgraciadamente aún utilizados como XP o 2003. Nos centraremos en ver distintas técnicas o fallos que nos van a permitir superar ASLR para posteriormente introducirnos en el apasionante mundo de la explotación de navegadores. Estudiaremos fallos como UAF que nos permitirán ejecutar código al visitar una pagina web utilizando un navegador vulnerable. Las últimas horas del Bootcamp las utilizaremos para realizar un pequeño CTF en el que los asistentes podrán emplear todo lo aprendido para ganar uno de los tres BitCoins que ya repartimos el año pasado.
El Bootcamp se realizará los días 25, 26 y 27 de Marzo y tendrá lugar en el hotel Eurostars i-Hotel en la Ciudad de la Imagen (Madrid – España). El objetivo de este Bootcamp es que los asistentes se introduzcan o profundicen en las bases de la explotación de vulnerabilidades. Esto les ayudará en su día a día profesional, permitiéndoles desarrollar o adaptar exploits ya creados para otras versiones de sistemas operativos, pudiendo así mejorar los resultados ofrecidos en un pentest o auditoría de seguridad, modificar exploits disponibles en repositorios para que utilicen otras shellcodes o ayudar a los departamentos de desarrollo a entender los problemas de un código vulnerable, sus implicaciones y posibles soluciones. os esperamos y mas info
Si tenéis alguna duda o consulta, podéis acceder la información del curso, consultarme en RRSS o en mi email. Os esperamos a tod@s con muchas ganas de explotar y disfrutar la X edición de RootedCON, que va a ser muy especial
Gracias por leer esta entrada y nos vemos en la red