Bienvenidos a mi primer post. En esta ocasión quiero compartir con ustedes mi experiencia enfrentando los exámenes de OSCP y OSCP+, algunos consejos para aprobar el examen a la primera y, por supuesto, mi opinión sobre el cambio que hizo Offsec con la introducción de OSCP+. Si estás pensando en tomar estas certificaciones o simplemente tienes curiosidad, este post te puede servir para orientarte un poco más sobre lo que te espera.
INTRODUCCIÓN
Bien, ¿qué es OSCP? 🤔 Es una certificación de seguridad ofensiva ofrecida por Offensive Security. Es bastante reconocida en el ámbito de la ciberseguridad debido a la rigurosidad del proceso del examen. El examen consiste en 48 horas de pruebas: 24 horas para comprometer las máquinas propuestas en el examen (y durante esta parte, el examen es ‘proctored’, lo que significa que debes compartir la cámara y la vista de tu escritorio para asegurar que no haya trampas) y otras 24 horas para realizar y entregar el informe final.
Este año decidí tomar el examen 🎯 y, hace unos meses, en mi primer intento, logré comprometer todas las máquinas (tanto el conjunto de Directorio Activo como las tres máquinas independientes) en el primer intento, lo cual me dio un gran impulso en esta etapa de mi carrera. Sin embargo, unos meses después apareció el OSCP+ 🔥. Esta nueva versión del examen era diferente, ya que ahora te proporcionan un usuario y una contraseña para la parte de Directorio Activo, algo que no sucedía en la versión anterior. En este segundo intento, también logré comprometer todas las máquinas y me sentí bastante cómodo, ya que ya estaba familiarizado con todo el protocolo y el proceso del examen. Pude hacerlo porque aún tenía un intento disponible y la suscripción activa, por lo que Offensive Security me dio la oportunidad de utilizar ese intento para obtener el OSCP+.
EXPERIENCIA EN LOS EXÁMENES
Ahora les hablaré sobre mi experiencia y cómo enfrenté ambos exámenes. Empecé ambos exámenes a las 12 del mediodía 🕛, así que me aseguré de estar bien hidratado 💧 y alimentado 🍽️ antes de comenzar. Al iniciar, la primera vez me sentí algo nervioso 😅 debido al protocolo, ya que hay que pasar por una revisión previa con la herramienta de proctoring. Asegúrate de que tu cámara funcione bien 📷, de detallar cuántos monitores estás usando y de tener a mano tu documento de identificación. Si es posible, también ten una foto de tu ID en tu PC por si tu cámara no lo enfoca bien. Además, asegúrate de que tu documento no esté vencido.
Una vez hayas completado estos pasos, podrás enfrentarte al examen 💻. Mi táctica fue la siguiente: primero ir por el conjunto de Directorio Activo (AD), ya que comprometerlo te da más confianza y te facilita el trabajo con las máquinas independientes ya que no tendrás que estar preocupad@ por el AD. La primera vez que realicé el examen, esta parte me resultó más difícil, ya que no se proporcionaban credenciales como en la versión actualizada. Sin embargo, pude comprometer el dominio en aproximadamente 4 horas. En mi segundo intento, al tener las credenciales de AD, todo fue mucho más rápido y me permitió avanzar con más facilidad ya que tener credenciales en el AD siempre facilita las cosas.
Con el AD comprometido, pasé a los retos independientes 🧑💻. La primera vez que tomé el examen me pareció un poco más fácil que en la segunda, ya que en esta última me atasqué en una de las máquinas. Como podrás ver, la dificultad varió entre ambas versiones, principalmente en lo que respecta al AD y las máquinas independientes. Sin embargo, logré superar los retos en ambas ocasiones.
En cuanto al tiempo, la primera vez terminé el examen en aproximadamente 12 horas ⏱️, mientras que la segunda vez lo completé en 8 horas. Luego pasé a la elaboración del informe 📝, la cual me tomó mucho tiempo, ya que quería asegurarme de no perder ningún detalle.
PREPARACIÓN PARA EL EXAMEN
En este apartado les hablaré de mi preparación personal 🛠️. Sabía que la OSCP no iba a ser pan comido, por lo que decidí tomar algunas certificaciones antes de presentarme al examen para evaluar y mejorar mi nivel. Seguí un camino que considero muy útil y que me aportó bastante: eJPT, eCPPT y CRTA.
Cada uno de estos exámenes me proporcionó conocimiento y confianza en mis habilidades 🧠💪 para enfrentar el OSCP. Sin embargo, viendo en retrospectiva, puedo decir que no es estrictamente necesario tener certificaciones previas para presentarte al OSCP. Lo realmente importante es practicar tanto como puedas con máquinas de laboratorio.
Un gran recurso que utilicé al principio fue TryHackMe . Una ruta que recomiendo para prepararte específicamente para el examen es el path Penetration Tester, ya que cubre muchos de los conceptos y técnicas necesarias para el OSCP.
Otra forma de prepararse que considero bastante útil son los módulos de HackTheBox Academy. En especial, recomiendo los módulos de Escalada de Privilegios tanto en Linux como en Windows, ya que abarcan técnicas fundamentales. Para la parte de Active Directory, recomiendo los módulos de Introducción a Active Directory y DACL Attacks I. Estos últimos, en lo personal, me dieron muchísima confianza para enfrentar los retos relacionados con Directorio Activo durante el examen. 💻
Finalmente, no puedo dejar de mencionar las máquinas de Proving Grounds, en especial aquellas ofrecidas por OffSec. Estas máquinas brindan una experiencia muy cercana a lo que enfrentarás durante la prueba. Practicar con ellas no solo te ayudará a desarrollar las habilidades necesarias, sino también a ganar confianza en el entorno que manejarás el día del examen. 🔐
Por otra parte, otro excelente recurso es el listado de TJNull 📜, que incluye máquinas de HackTheBox recomendadas específicamente para la preparación del OSCP. A este listado, personalmente añadiría la máquina SolarLab, ya que, en mi experiencia, es una máquina que te ayudara bastante 😉.
CONCEJOS PARA APROBAR EL EXAMEN
Para que puedas aprobar el examen, aquí te dejo varios consejos que a mí me ayudaron y espero que a ti también te sean útiles:
Prepárate lo más que puedas: OSCP es un examen con contenido básico pero muy amplio, y aquí radica su dificultad. Practica y estudia tanto como puedas. Realiza las máquinas que te mencioné anteriormente. Si te trabas en una, no te sientas mal por consultar un writeup, ya que también es una forma válida de aprender. Si resuelves una máquina rápidamente, revisa otras formas de solucionarla para enriquecer tus conocimientos. Un recurso increíble para esto son los canales de IppSec y S4vitar en YouTube.
Aprende de tus errores: En mi caso, solía olvidar enumerar algunos servicios. Para corregir esto, creé recordatorios en mis CheatSheets, lo cual me ayudó a no repetir los mismos errores. Analiza tus fallos y conviértelos en oportunidades de mejora. 🛠️
Practica con los Challenge Labs: Al final del material oficial de Offsec hay laboratorios que puedes realizar, y son fantásticos. Sin embargo, para el examen, céntrate en los Challenge Labs diseñados específicamente para el examen. Simular el examen y practicar redactando reportes como lo harías en el examen real es una gran manera de prepararte. 📝
Desarrolla tu propia metodología: Ten un conjunto de pasos claros para abordar cada servicio. Por ejemplo, si te encuentras con un servicio web, lo que podrías hacer es primero intentar identificar la versión del servidor para ver si hay vulnerabilidades conocidas asociadas. Luego, revisa el código fuente de la página para buscar cualquier pista que pueda revelarte vulnerabilidades o configuraciones inseguras, luego analizar las tecnologías utilizadas en la página para detectar posibles puntos débiles y, si es posible, busca nombres de usuario o cualquier otra información que puedas recolectar, etc. Tener tu propia metodología, construida a partir de tus experiencias y errores pasados, te ayudará a mantenerte enfocado y a abordar cada desafío de forma sistemática durante el examen. 🔍
Ten a la mano una CheatSheet: Esto está relacionado con el punto anterior. Por ejemplo, si enfrentas un servicio LDAP, ¿qué comandos utilizarías? Todo lo que aprendas anótalo en tu CheatSheet para cualquier servicio. Esto te dará velocidad y confianza. Personalmente, utilizo Obsidian para esto, pero puedes elegir cualquier herramienta que te resulte cómoda. 🗂️
Enumera hasta no poder más: Explora cada puerto, interactúa con cada servicio y nunca des por hecho que algo no es importante. Un puerto alto puede esconder un servicio clave, así que asegúrate de no pasarlo por alto. 💻
Aprende varias herramientas para hacer lo mismo: Es clave conocer múltiples herramientas para realizar una misma tarea, ya que en un escenario real, una herramienta podría no funcionar como esperas. Por ejemplo, si necesitas realizar un salto a otra red o hacer un reenvío de puertos, podrías encontrar que una herramienta no te da los resultados esperados. En mi caso, algunas de mis herramientas favoritas para hacer pivoting o reenvío de puertos son Chisel, SSH y Ligolo. Si Ligolo no funciona como esperabas, puedes probar con Chisel o con SSH para lograr lo mismo. Asegúrate de dominar estas herramientas, ya que tener opciones te dará mayor flexibilidad y te ayudará a resolver los problemas rápidamente en el examen. 🔧
Mantenlo simple: No te compliques innecesariamente. Si te quedas atascado, vuelve a enumerar. A menudo, la solución está justo frente a ti, pero puedes pasarla por alto si te enredas en ideas complejas. 🔄
Confía en ti mismo: Mira hacia atrás y valora todo el esfuerzo y perseverancia que has tenido para llegar hasta este punto. Si no logras pasar el examen en el primer intento, no te des por vencido. Sigue intentándolo, porque estoy seguro de que lo lograrás. 🌟
HABILIDADES CLAVE QUE DEBES DOMINAR ANTES DE ENFRENTAR EL EXAMEN
En este apartado, mencionaré los puntos clave que, según mi opinión, debes dominar para aprobar el examen OSCP o también realizar cualquier evaluación en un escenario real con éxito. Estos aspectos son clave a nivel técnico y te prepararán para enfrentar los desafíos del examen con confianza.
1. Enumeración de puertos y servicios: Como mencioné antes, la enumeración detallada de puertos y servicios es crucial. Es importante identificar todos los puertos abiertos y los protocolos asociados con los cuales podrías encontrarte. Si no estás familiarizado con un servicio, una buena opción es buscar cómo enumerarlo en línea, por ejemplo, en recursos como Hacktricks o simplemente buscando el término específico, como «Port 135». Además, si logras identificar un servicio que permita interactuar con archivos, asegúrate de revisar cuidadosamente todos los archivos disponibles, ya que pueden contener información clave para avanzar en el ataque.
2. Buscar vulnerabilidades y exploits publicos: Esta es una habilidad igualmente crucial. Es importante analizar toda la información recolectada, incluyendo los servicios, versiones y tecnologías que la máquina pueda estar utilizando. Con base en esta información, debes ser capaz de buscar y encontrar exploits adecuados. Un buen enfoque podría ser utilizar operadores avanzados de búsqueda en Google, como «port 7070 exploit» o «Apache 2.X exploit». Los siguientes recursos son recomendados para esta tarea:
- ExploitDB (ya sea la versión local o web). Si usas la versión local, asegúrate de mantenerla actualizada.
- GitHub Realizar búsquedas como «WordPress 5 exploit github» en Google puede arrojar buenos resultados.
- Hacktricks
- 0day.today
- Rapid7
- CXSecurity
- Packet Storm Security
3. Análisis, corrección y adaptación de código: Una vez que hayas encontrado un exploit para una tecnología específica, es crucial revisarlo antes de ejecutarlo, especialmente si no proviene de una fuente confiable. No es necesario tener un conocimiento profundo de programación, pero sí es fundamental entender qué hace el código en cada paso para evitar ejecutar acciones maliciosas en tu propia máquina 🧐. Además, comprender la vulnerabilidad que se está explotando y los parámetros necesarios es esencial para garantizar que el exploit funcione correctamente.
Si el exploit no funciona, deberás investigar el motivo 🔍. Esto puede ser tan sencillo como buscar el error que te muestra el exploit e instalar una biblioteca faltante, o puede requerir un enfoque más técnico, como usar gdb para depurar o un proxy si estás ejecutando un exploit web. Un enfoque útil en estos casos es comparar cómo se comporta el aplicativo (ya sea web o un sitio de red) de manera normal en comparación de cómo funciona durante la ejecución del exploit, y cómo el exploit realiza las solicitudes. Esto te ayudará a identificar posibles diferencias, como parámetros que han cambiado de nombre o que simplemente no existen.
La mayoría de los exploits se encuentran escritos en Python, por lo que es importante sentirte cómodo con este lenguaje 🐍. Además, si el exploit está basado en Python 2 y no hay una versión compatible con Python 3, deberías estar familiarizado con las diferencias y tener experiencia trabajando con Python 2.
Otra herramienta fundamental que debes conocer es msfvenom, especialmente útil para generar shellcode en vulnerabilidades de tipo buffer overflow 💥. Es esencial familiarizarte con las opciones que ofrece msfvenom, como la selección de plataformas y el tipo de payload que necesitas. Además de msfvenom, existen otras herramientas y recursos como Shell-Storm, que también son útiles para la creación y personalización de shellcode. Conocer estas herramientas y saber cómo generar payloads adecuados para distintos tipos de vulnerabilidades puede marcar la diferencia al intentar explotar una máquina en el examen 🚀.
4. Pentesting Web: En el contenido del material encontrarás ataques web comunes. Asegúrate de practicarlos y profundizar en ellos para aprender otras formas de ejecutar el exploit manualmente o eludir ciertos controles. Un recurso muy útil es PayloadsAllTheThings; asegúrate de tenerlo siempre a la mano para acceder a una variedad de payloads y técnicas de explotación.
5. Habilidades en Escalada de Privilegios y PostExplotación: Al igual que en pasos anteriores, aquí deberás repetir la enumeración, por lo que es importante contar con una metodología para encontrar vectores de ataque de manera sistemática y escalar privilegios de forma eficiente. Antes de pasar a un vector que requiera pasos más técnicos, asegúrate de revisar cualquier archivo que parezca fuera de lo común. Por ejemplo:
- Buscar archivos con credenciales 🗝️.
- Revisar historiales y configuraciones 📄.
- Verificar si hay discos o mounts inusuales en la máquina 💽.
En el material del curso encontrarás numerosas técnicas para escalar privilegios. Además, puedes explorar módulos de escalada de privilegios en HackTheBox Academy 🎓.
Siempre ten a mano recursos útiles, como: ExploitDB, GitHub, Posts técnicos o blogs, Sitios oficiales, como los boletines de seguridad de Windows, donde podrás encontrar los últimos CVEs descubiertos que podrían ayudarte a escalar privilegios:
Por otra parte, otra habilidad bastante importante es el port forwarding y el pivoting, especialmente si necesitas reenviar puertos o saltar a otra red. Te recomiendo practicar con varias herramientas, como algunas de mis preferidas: Ligolo, Chisel, SSH. Tener conocimiento de cómo saltar a otra red o transferir archivos entre tu máquina Kali y una máquina en otra subred (y viceversa) es crucial 🖧. Estas habilidades son indispensables para acceder a recursos que inicialmente parecen fuera de tu alcance. Asegúrate de dominar esta técnica para que puedas implementarla de manera eficiente en el examen.
6. Active Directory: Como mencioné anteriormente, Active Directory (AD) es una parte fundamental del examen, por lo que debes asegurarte de prepararte a fondo. Utiliza los recursos que mencioné previamente y asegúrate de sentirte cómodo enumerando con herramientas como PowerView y BloodHound 🕵️♂️.
Además, prepárate para ejecutar ataques conocidos como los de Roasting (por ejemplo, Kerberoasting) y aprende a abusar de DACLs tanto desde Windows como desde Linux. Por lo general, siempre existe alguna herramienta desde Linux para este propósito, como las utilidades de Impacket 🔧, que son ampliamente utilizadas para explotar privilegios en entornos de AD.
Dedica tiempo a practicar estas técnicas para que sean parte de tu arsenal durante el examen. ¡Es clave dominar estos aspectos! .
7. Preparación de Informes: No olvides anotar todo lo que hagas, ¡incluyendo cada comando y la salida! Si puedes, usa bloques de código y capturas de pantalla para hacer el informe más claro 📝. Es importante explicar cada paso que tomes, incluso si modificas un exploit. Si te resulta complicado, usa la plantilla que ofrece OffSec, ¡te facilitará mucho la tarea!
MI OPINIÓN SOBRE EL CAMBIO A OSCP+
Con respecto al cambio que se realizó, lo que más me interesó fueron los nuevos módulos, especialmente los relacionados con el pentesting en AWS, que me parecieron muy útiles. También se añadieron más ChallengeLabs enfocados en Active Directory, lo cual considero un gran aporte. Por lo demás, el contenido es el mismo que cuando realicé el primer examen.
Quizás lo más chocante es que ahora el OSCP+ tendrá caducidad en 3 años. Desde una perspectiva netamente de certificaciones, me parece coherente, especialmente de cara a la competitividad con otras certificaciones, y creo que también está relacionado con los requisitos para algunos puestos gubernamentales en EE.UU.. Sin embargo, el precio de renovación me parece excesivo, y el hecho de que, si no pasas el examen o no cumples con los CPEs, la renovación del examen puede costar 799 dólares, además de la cuota de mantenimiento anual (AMF) de 135 dólares, no me gusta mucho.
Este aspecto no me convence, ya que hice una gran inversión de tiempo y dinero para aprobar el examen. Además, considerando la devaluación de la moneda en otros países, este costo puede ser un inconveniente. A pesar de todo, espero que no tenga un impacto negativo cuando los recursos humanos requieran esta certificación. Lo que me llevo de todo esto es el aprendizaje adquirido y el proceso que he vivido hasta este punto. 💡
De todas formas, considero que aquellos de nosotros que estamos en este campo estamos siempre en constante aprendizaje. No siempre es necesario depender de CPEs o pagar cuotas anuales para seguir desarrollando nuestras habilidades y conocimientos. La verdadera pasión por la ciberseguridad radica en la práctica diaria, los retos que enfrentamos y el deseo de mejorar, algo que no siempre requiere una certificación o sus costos asociados. Al final del día, lo que realmente importa es el aprendizaje y la experiencia que adquirimos al enfrentarnos a desafíos reales. 📚
REFERENCIAS
- https://help.offsec.com/hc/en-us/articles/29840452210580-Changes-to-the-OSCP
- https://help.offsec.com/hc/en-us/articles/31553032386964-OffSec-Continuing-Professional-Education-CPE-Program-Overview
- https://academy.hackthebox.com/
- https://tryhackme.com