Tabla de contenidos

Title
Title
Tabla de contenidos
Tabla de contenidos
Tabla de contenidos
Title
Title
Title

Opiniones

Una revisión de OffSec Exploitation Expert (OSEE): Un viaje inesperado

Andres Roldan

VP of Hacking

Actualizado

1 sept 2023

9 min

El 22 de agosto de 2023, recibí este correo electrónico indicando que había aprobado el examen OSEE:

Primer correo de OffSec

Ese correo electrónico fue la culminación de años de estudio, trabajo duro y superación de mis límites más allá de lo que jamás hubiera podido imaginar.

El camino para conseguir ese correo electrónico comenzó cuando obtuve la certificación OSCE en 2020. Para entonces, había comprado una plaza en la formación Advanced Window Exploitation (AWE) en Londres y llevaba dos años de intentos fallidos de viajar debido a la cuarentena mundial de COVID, las restricciones de visados del Reino Unido y el fallecimiento de la Reina.

Empezaré este post con un resumen de lo que es la certificación OSEE. Luego, me sumergiré en los detalles de la formación y ofreceré algunas ideas y consejos para el examen.

OffSec Exploitation Expert (OSEE)

OSEE es una certificación OffSec que se obtiene tras completar el curso "EXP-401: Advanced Windows Exploitation (AWE)" y superar un duro y agotador examen de 72 horas.

Conozco gente que tiene el certificado desde 2009, pero el curso ha recibido varias actualizaciones desde su creación, con exploits para Adobe Flash Player y el Kernel de Windows en sus versiones más recientes.

La última actualización, en ese entonces, fue anunciada en el canal privado certificado por OSEE en el servidor de OffSec Discord el 18 de septiembre de 2021, por Morten Schenk, uno de los instructores de AWE.

Actualización de OffSec

Lo que dijeron durante mi formación fue algo como esto: Necesitamos actualizar constantemente este curso; de lo contrario, los contenidos no serían lo suficientemente avanzados.

Esa frase resume lo que es AWE: el entrenamiento en explotación de Windows más avanzado, difícil y descabellado del mercado.

El precio para realizar el curso puede variar según la ubicación. Por ejemplo, en BlackHat Oriente Medio y África, el precio era de 12.375 dólares:

Precio 1 de OSEE

Mientras tanto, el precio en Londres era de 9.435 libras + IVA:

Precio 2 de OSEE

Camino a Londres

Una de las principales características del curso AWE es que hay que asistir en persona.

Normalmente, AWE se imparte en BlackHat USA, en Las Vegas. Sin embargo, era 2020 cuando terminé la certificación OSCE, y BlackHat USA iba a ser 100% virtual debido a la pandemia COVID-19. Entonces miré la web de OffSec y encontré que iba a haber formación en Londres en abril de 2021. Me animé, pero como era de esperar, se reprogramó varias veces debido a la pandemia. Tras varias iteraciones y un visado británico retrasado, pude viajar en septiembre de 2022 para hacer el curso en las instalaciones de QA (socio de OffSec) en Londres.

Curso AWE

El curso estaba diseñado para impartirse en cinco días. Sin embargo, el lunes que debía empezar fue día festivo en el Reino Unido por el funeral de la Reina Isabel II. El resultado fueron cuatro días intensos de entrenamiento.

Prerrequisitos del curso

Al igual que con todas las certificaciones OffSec, no es necesario tener un título específico antes de intentar tomar cualquiera de sus cursos. Sin embargo, dado que AWE es una formación avanzada, sugieren que deberías contar con lo siguiente:

  • Experiencia realizando análisis dinámico de binarios con WinDbg y análisis estático con IDA free.

  • Experiencia práctica en explotación básica. Al menos deberías haber escrito exploits en el pasado.

  • Conocimientos básicos de arquitectura Windows x86_64 y creación de shellcode x64.

  • Familiaridad con la programación C/C++ y el uso de Visual Studio.

También sugieren llevar un portátil con una CPU moderna, al menos 16 GB de RAM y 160 GB de espacio libre en el disco duro. Sin embargo, cuando llegué al aula, cada alumno tenía su propio PC de escritorio específico con todo configurado. No sé si eso ocurre en todas las formaciones, pero tenlo en cuenta.

Al registrarte, también hay un reto de preentrenamiento llamado "0h n03z, I @m bR0k3n!". Para este reto, se te da un proyecto de Visual Studio con un shellcode roto, y tienes que realizar un análisis dinámico utilizando WinDbg para arreglarlo y hacer que aparezca una calculadora. Ellos concluyen que resolver este reto representa los prerrequisitos técnicos mínimos requeridos para este curso, y que si lo encuentras demasiado difícil, puede que quieras reconsiderar tu inscripción en la clase.

EXP-401

El programa oficial de EXP-401 puede consultarse aquí.

Una de las primeras diapositivas de la formación era esta:

Introducción al curso AWE

¿Qué se puede esperar de un entrenamiento que comienza así? Bueno, te sumergirás en cinco módulos en los que se esboza una mentalidad detallada para crear exploits complejos.

El primer día, creas un shellcode inverso x64 personalizado desde cero. Suena fácil, ¿verdad? Bueno, eso se dio en las 2 primeras horas de la formación. El resto del día estuvo dedicado a la explicación y finalización de un exploit guest-to-host para una vulnerabilidad User-After-Free en el mecanismo RPC de VMWare (llamado backdoor), eludiendo modernas mitigaciones de exploits como WDEG (que incluye bottom-up heap randomization) y un uso descabellado de una mezcla de ROP + COP, resultando en un shell inverso desde el host de VMWare.

El segundo día, se presentó una vulnerabilidad de confusión de tipos en el motor JS de Edge (pre-chromium). Debido a la naturaleza de Edge y a las mitigaciones de seguridad presentadas, el camino desde la primitiva Lectura/Escritura Arbitraria inicial hasta la ejecución de APIs Win32 arbitrarias está plagado de controles como CFG, ASLR, ACG, CET y DEP, que son eludidos mediante técnicas alucinantes. Para poder escapar del sandbox, se abusa de un CVE, lo que finalmente resulta en la obtención de un reverse shell con solo pulsar un botón en una página web desde el navegador.

El tercer día fue el comienzo de la explotación del Kernel de Windows. Las primeras horas se utilizaron para explicar cómo se configuró la depuración del Kernel y muchos conceptos internos importantes de Windows relevantes para la explotación, como Memory Paging, SSDT, introducción a los controladores del Kernel y protecciones del Kernel, entre otros. A continuación, se creó un exploit LPE para una vulnerabilidad del driver FortiShield, creando una primitiva de Lectura/Escritura Arbitraria, evadiendo SMEP abusando de las Page Table Entries (PTE), restaurando la ejecución del Kernel y haciéndolo independiente de la versión.

Por último, el cuarto día se dedicó a crear un exploit para un controlador nativo de Windows (win32k). El exploit realizaba una fuerte manipulación del pool y un novedoso gadget para crear una primitiva de Lectura/Escritura Arbitraria. Además, se desarrolló una versión del exploit que funciona desde un shell de baja integridad abusando de las fugas de memoria. Por otra parte, el exploit fue actualizado para funcionar incluso con HVCI activado.

En resumen, el curso te enseñará a realizar un exploit de cadena completa:

  • Abusar de una vulnerabilidad de confusión de tipos para obtener una Lectura/Escritura Arbitraria en un proceso Edge en sandbox y ejecutar APIs Win32 arbitrarias.

  • Salir del sandbox explotando (¡invirtiendo un exploit C#!) otro proceso de Edge y ejecutar comandos arbitrarios del sistema operativo en integridad media.

  • Realizar un ataque guest-to-host explotando una vulnerabilidad en el protocolo RPC propietario de VMWare.

  • Elegir cómo elevar privilegios en el sistema operativo anfitrión explotando un controlador de Fortinet o creando un exploit para el controlador win32k nativo.

Todo lo anterior tenía que lograrse eludiendo mitigaciones avanzadas como WDEG, CFG, CET, ACG, (k)ASLR, DEP, EAF, HVCI, SMEP, etc.

Ahora, los niveles de WTF se entienden fácilmente.

Resaca después del curso

Como ya he dicho, el curso duró cuatro días. A diferencia de muchos otros, el material del curso incluye dos libros con contenido escrito, un archivo ZIP con todos los PoC creados y las diapositivas utilizadas para guiar el entrenamiento. Varias "millas extra" en el curso (¡pista, pista!) están ahí para practicar más sobre los temas presentados.

Una vez terminado el curso, tienes hasta un año para programar el examen. Yo programé el mío para el 17 de agosto de 2023.

El mes anterior al examen, me dediqué al 100% a repetir los materiales del curso y a reproducir los mismos exploits:

Estudianto para obtener OSEE

En realidad, leí los materiales dos veces durante ese mes de estudio. La primera vez, resolví todos los ejercicios de los cinco módulos y algunas millas extra. La segunda vez, volví a leer todo el material pero con una "visión a 30.000 pies de altura" para tener una vista global de los contenidos y entender el diseño de los exploits desde un alto nivel.

Ese enfoque me dio más confianza para entender y digerir el profundo nivel de los conceptos técnicos presentados en el curso.

Con todo preparado, llegó el día del examen.

Examen

Reservé el examen para que comenzara el 17 de agosto de 2023 a las 7 a. m. Tienes 71 horas y 45 minutos de tiempo de laboratorio para completar los desafíos y otras 24 horas para crear y subir un informe. Como el examen es supervisado, debes presentarte 15 minutos antes para la comprobación de identidad y otros controles de supervisión.

El modelo de informe del examen proporciona directrices sobre lo que cabe esperar del examen:

  • Hay dos retos.

  • En el primer reto, debes escapar de una sandbox.

  • En el segundo desafío, debes enfrentarte al Kernel de Windows.

  • Cada reto puede darte 25 o 50 puntos.

  • Debes conseguir al menos 75 puntos para aprobar el examen (es decir, debes completar al menos un desafío y medio).

No puedo dar más detalles sobre el examen, pero creo que los retos son una buena forma de evaluar los temas tratados en el curso, y el tiempo es suficiente para completarlos si sabes lo que estás haciendo.

En mi caso, terminé el examen apenas una hora antes de la fecha límite. Sí, fue agotador.

Tras unas horas de sueño, creé el informe y lo envié la noche del 20 de agosto. La última vez que envié un informe a OffSec fue a principios de 2023, cuando completé la certificación OSEP, y tuve que esperar hasta una semana para recibir los resultados. Sin embargo, solo dos días después de enviar el informe de la OSEE, el 22 de agosto, recibí el mencionado correo electrónico en el que se me comunicaba que había superado las pruebas y obtenido la certificación OSEE.

Correo de OffSec

Consejos para el examen

Los siguientes consejos me han funcionado a mí, pero, como siempre, tu experiencia puede variar:

  1. Completa todos los ejercicios del libro.

  2. Cada módulo tiene algunas millas extra. Completa tantas millas extra como sea posible. La última milla extra que terminé fue la creación de un exploit para CVE-2021-31956:

PoC de OSEE
  1. Repite los puntos 1 y 2.

  2. He realizado trabajos previos sobre depuración del Kernel. Puedes seguir mis blog posts y replicar la evasión de controles y la creación de un exploit para HEVD.

  3. La serie Browser Exploitation de Connor McGarr es una buena manera de aprender y practicar el módulo Edge Type Confusion.

  4. Únete al servidor OffSec Discord. La comunidad es impresionante, y el personal de soporte de OffSec puede ayudarte con cualquier cosa relacionada con el curso.

  5. La conexión VPN no es estable. Como se trata de un túnel UDP, puede haber problemas con el cálculo del tamaño de MTU (VPN MTU > Link MTU), lo que puede conducir a la pérdida de paquetes durante el tráfico pesado. Sigue esta guía para solucionarlo. Al final, tuve que añadir la línea mssfix 1387 a mi archivo de conexión OpenVPN para solucionar estos problemas.

Críticas frecuentes

La primera y más notoria es que asistir al curso es caro. Sin embargo, en mi opinión, lo que se aprende durante la formación y la preparación del examen vale cada centavo.

Además, como sugiere el nombre del curso, la formación trata sobre la explotación. Microsoft ha hecho un gran trabajo desde el lanzamiento de Windows 8 para mejorar continuamente la seguridad del sistema operativo. Así que, aunque el curso se actualizó en 2021, muchas técnicas presentadas en el entrenamiento ya no funcionan en las versiones más actuales del sistema operativo Windows. Eso significa que, aunque los conocimientos adquiridos están más enfocados a crear la mentalidad para hacer exploits complejos y avanzados, algunas de las técnicas y primitives utilizadas ya no son válidas y se necesita una nueva investigación para desarrollar un exploit para una build moderna de Windows (de nuevo, creo que esto puede ser incluso una ventaja si lo ves desde otra perspectiva).

Conclusiones

La experiencia del OSEE fue realmente enriquecedora para mí. Obtener esta certificación era un sueño personal que tenía desde hace mucho tiempo, y es o era un objetivo final para muchos otros compañeros profesionales de la seguridad ofensiva.

Pero siempre he tenido la misma sensación después de obtener una certificación: ¿Qué es lo que sigue?

Get started with Fluid Attacks' PTaaS right now

Etiquetas:

ciberseguridad

exploit

formacion

empresa

Suscríbete a nuestro boletín

Mantente al día sobre nuestros próximos eventos y los últimos blog posts, advisories y otros recursos interesantes.

Inicia tu prueba gratuita de 21 días

Descubre los beneficios de nuestra solución Hacking Continuo, de la que ya disfrutan empresas de todos los tamaños.

Inicia tu prueba gratuita de 21 días

Descubre los beneficios de nuestra solución Hacking Continuo, de la que ya disfrutan empresas de todos los tamaños.

Inicia tu prueba gratuita de 21 días

Descubre los beneficios de nuestra solución Hacking Continuo, de la que ya disfrutan empresas de todos los tamaños.

Inicia tu prueba gratuita de 21 días

Descubre los beneficios de nuestra solución Hacking Continuo, de la que ya disfrutan empresas de todos los tamaños.

Las soluciones de Fluid Attacks permiten a las organizaciones identificar, priorizar y remediar vulnerabilidades en su software a lo largo del SDLC. Con el apoyo de la IA, herramientas automatizadas y pentesters, Fluid Attacks acelera la mitigación de la exposición al riesgo de las empresas y fortalece su postura de ciberseguridad.

SOC 2 Type II

SOC 3

Suscríbete a nuestro boletín

Mantente al día sobre nuestros próximos eventos y los últimos blog posts, advisories y otros recursos interesantes.

Las soluciones de Fluid Attacks permiten a las organizaciones identificar, priorizar y remediar vulnerabilidades en su software a lo largo del SDLC. Con el apoyo de la IA, herramientas automatizadas y pentesters, Fluid Attacks acelera la mitigación de la exposición al riesgo de las empresas y fortalece su postura de ciberseguridad.

SOC 2 Type II

SOC 3

Suscríbete a nuestro boletín

Mantente al día sobre nuestros próximos eventos y los últimos blog posts, advisories y otros recursos interesantes.

Las soluciones de Fluid Attacks permiten a las organizaciones identificar, priorizar y remediar vulnerabilidades en su software a lo largo del SDLC. Con el apoyo de la IA, herramientas automatizadas y pentesters, Fluid Attacks acelera la mitigación de la exposición al riesgo de las empresas y fortalece su postura de ciberseguridad.

SOC 2 Type II

SOC 3

Suscríbete a nuestro boletín

Mantente al día sobre nuestros próximos eventos y los últimos blog posts, advisories y otros recursos interesantes.

Nos vemos en RSA Conference™ 2025 en el booth N-4204.

Agenda una demo on-site

Nos vemos en RSA Conference™ 2025 en el booth N-4204.

Agenda una demo on-site