La certificación OSEP (Offensive Security Experienced Penetration Tester)

PEN-300 and the OSEP Certification | Offensive Security

En esta entrada vamos a hablar de una de las nuevas certificaciones ofrecidas por Offensive Security, en concreto de OSEP (Offensive Security Experienced Penetration Tester).

Esta certificación forma parte del nuevo OSCE junto con las, también nuevas, OSED (Offensive Security Exploit Developer) y OSWE (Offensive Security Web Expert).

Como todas las certificaciones de Offensive Security, es obligatorio realizar el curso asociado a la certificación, denominado “Evasion techniques and breaching defenses” del que hablaremos más adelante también.

A día de hoy, el precio del curso es de 1299$, el cual incluye 2 meses de acceso al laboratorio y la convocatoria del examen (de 48 fantásticas horas :P).

Supongo que, si estás leyendo esta entrada, todo lo anterior ya lo conocías, así que ¡vamos a profundizar en lo que probablemente no sabes!

¿Merece la pena esta certificación?

En mi opinión, rotundamente SÍ. Es una certificación de un nivel avanzado (superior al reconocidísimo OSCP) que te permitirá llevar tus habilidades al siguiente nivel.

En esta ocasión, presuponemos que nos enfrentamos a entornos fuertemente defendidos y nuestro objetivo es comprometer organizaciones sin una sola vulnerabilidad de seguridad en el perímetro. Digo presuponemos porque tanto durante el entrenamiento como en el examen, serán necesarios aplicar conocimientos básicos de explotación de vulnerabilidades para los compromisos iniciales o los movimientos laterales.

Respecto a los conocimientos necesarios mencionados…

¿Qué nivel debería tener para acceder a esta certificación?

Como se ha mencionado anteriormente, es un curso y una certificación avanzada. Se debe tener un nivel mínimo de OSCP con sólidos conocimientos en redes y preferiblemente con conocimientos básicos en programación con especial énfasis en Visual Basic y C#.

¿Qué vamos a poder aprender?

Seguramente, a estas alturas ya habrás accedido al temario de la certificación que se encuentra en https://www.offensive-security.com/documentation/PEN300-Syllabus.pdf.

En mi opinión, de todo lo que podemos encontrar en el índice, lo más interesante que vamos a poder encontrar son los siguientes bloques:

  • Ejecución de código con Office. En este bloque se aprenderá a inyectar en memoria directamente un shellcode evitando tocar disco (y todos conocemos los beneficios de evitar el disco).
  • Ejecución de código con c#. En este bloque, no solo aprenderás a crear .dlls y .exe desde c# para inyectar directamente en memoria nuestra shellcode, también serás capaz de aplicar cifrados simples (o complejos, depende de tus habilidades de programación) a nuestro shellcode, convertirlo a jscript e incluso crear archivos .hta para evadir diferentes medidas de seguridad como Applocker.
  • Evasión de antivirus simple y avanzado. Este bloque te aporta la teoría necesaria para aplicar en el resto de módulos y entender como evadir desde un simple antivirus basado en firmas hasta los más sofisticados EDR.
  • Lista blanca de aplicaciones. Encontrarás la teoría del funcionamiento de Applocker y algunos de los mecanismos de evasión utilizados como installutils.
  • Credenciales de Windows y movimientos laterales. En este bloque profundizarás en los mecanismos de autenticación y como abusar de ellos para extraer credenciales y realizar movimientos laterales. Probablemente, es uno de los bloques más importantes del curso porque su comprensión es básica para diferentes apartados y es usado en todos y cada uno de los retos.
  • Ataques a Microsoft SQL. Durante este bloque aprenderás los mecanismos necesarios para habilitar y ejecutar comandos en los propios servidores o usarlos para pivotar a otras máquinas usando técnicas tan interesantes como ntlmrelay.
  • Explotación de Active Directory. Otro de los grandes bloques del curso, donde estudiarás como abusar de las confianzas entre dominios y/o escalar privilegios de un subdominio a su raíz.

A grandes rasgos, todo esto comprende el temario, pero no será lo único. También necesitarás realizar grandes enumeraciones de los dominios, estudiarlas y seguir un plan para hacerte Enterprise Admin o Domain Admin.

Otra de las grandes incógnitas que puedes encontrarte antes de apuntarte es acerca del laboratorio…

¿Cómo vas a poder practicar?

De igual manera que te has podido encontrar en el OSCP, cada tema tiene sus ejercicios para que practiques todo lo aprendido.

Pero a diferencia del OSCP, para poner a prueba todo lo aprendido durante el temario, el OSEP tiene únicamente 6 retos, cada uno más difícil que el anterior.

Cada reto es una organización empresarial a la que tienes que acceder mediante diversos métodos (Macros de Office, .hta, binarios en C, etc) o explotando vulnerabilidades (es poco común, pero te lo vas a encontrar).

Una vez tengas el compromiso inicial, deberás comprometer la organización completa que puede comprender desde un par de equipos hasta 9 equipos pasando por puestos de usuario, servidores, dominios y/o redes diferentes con bastantes medidas de seguridad como AV, firewall, applocker, powershell restricted language, entre otros.

 Una vez finalizado el laboratorio, será hora del temido examen.

¿Cómo es el examen?

El examen es una red corporativa que vas a tener que comprometer en 48 horas.

Te recomiendo que una vez comiences el laboratorio programes ya tu examen para poder seleccionar el día y hora que mejor te convenga; yo cometí el error de no hacerlo y empecé un martes a las 5 A.M.

Respecto al examen, puedes aprobar de 2 formas diferentes.

  • La primera de ellas, es consiguiendo 100 puntos, que se consiguen cuando encuentras un local.txt o proof.txt (cada uno vale 10 puntos).
  • La otra opción es encontrar secret.txt. Si encuentras este archivo puedes apagar directamente el ordenador e irte a tomar una cerveza. Obviamente, encontrarlo te va a costar más que hacer los 100 puntos.

Una vez has conseguido los 100 puntos o el archivo secreto, es hora de hacer el informe, para el cual tendrás 24 horas adicionales.

Mi experiencia

Comencé con el plan de dos meses, el cual es suficiente si tienes una base mínima o vas a poderle dedicar suficientes horas al día a estudiar.

Antes de apuntarme a la certificación, estudié todo lo relacionado con macros y C# porque puedes practicarlo sin un gran entorno detrás, solamente con tu máquina virtual de desarrollo (máquina muy recomendable mantener durante todo el laboratorio y examen).

Respecto al tiempo dedicado, cada persona tiene un background diferente y necesitará un mayor o menor tiempo de estudio. En mi caso, durante las primeras semanas me pude permitir estudiar durante bastantes horas y me permitió realizar varias veces los retos y descansar un par de semanas antes del examen de todo el desgaste que conlleva.

Respecto al examen, como he comentado, empecé a las 5 de la mañana, aunque las dudas de si estás preparado para hacerlo rondan hasta el último día.

Una vez realizado, puedo decir que estás preparado para el examen si has realizado todos los retos, aunque hayas necesitado un empujoncito en algún momento puntual.

La dificultad del examen es alta y la presión de realizarlo en 48 horas todavía más, por lo tanto, deja tus cuchillos afilados para enfrentarte a cualquier cosa. Y con cuchillos afilados me refiero a que tengas en tu cherry macros preparadas, c# preparados, comandos preparados para hacer copy&paste y una buena cafetera.

Afortunadamente, yo tuve los cuchillos muy afilados y fui capaz de comprometer y localizar el archivo secret.txt en 15 horas, con un par de horillas para comer y descansar entre medias. Sin embargo, en el propio chat de Offensive vas a poder encontrar decenas de experiencias de 48 horas sin dormir y no lograr ni 50 puntos. Mi recomendación es: ¡NO TE CONFIES, pero si te ves preparado, está a tu alcance!

Finalmente, la entrega del informe es casi como otro examen (me costó más que el propio examen) en el que hay que hilar muy fino para evitar suspensos por no entregar la documentación suficiente o entregarla mal demostrada. Por poner un ejemplo del peligro del informe: encontrarás máquinas donde el acceso con shell interactiva remota será inviable por diferentes motivos, sin embargo, entregar una captura del proof.txt por RDP se considera nulo.

Con todo lo que te he contado espero que te sirva para tomar la decisión de si certificarte o no, en el caso de que decidas hacerlo, solo me queda decirte…