Mi experiencia con el OSCE: Opinión honesta, no mártir edition


Hola estimados humanoides que pululan por Hackplayers, soy Borch y vengo a hablaros del OSCE y mi experiencia con el mismo. El primer disclaimer lo hago desde ya, esta opinión es a todas luces, tirarme piedras a mi propio tejado. Es que probable que éste no sea el artículo que estás buscando; es más, ni soy excepcionalmente inteligente, ni tengo 0days, ni se usar regex sin buscar en Google (lo siento wint3r). Tampoco he luchado contra leones mientras me sacaba la cert, ni me levantaba a las 4 para viajar 3 horas, estudiar de camino y alimentar a mi hambrienta familia (con los leones de antes). Una persona normal (bueh) con un poco de ganas (y tampoco tantas) por un nuevo reto y nada más.

Es un examen y nada más. No nos flipemos.
Todo comenzó un fatídico día de yo que sé, Septiembre. Quería profundizar en el tema y ya tenía el flamante (y sobrevalorado) OSCP desde hace un año y pico (que suspendí las dos primeras veces), leí un par de opiniones y ... ¡no pintaba mal! Me lié la manta a la cabeza (y mi jefe me animó a ello, gracias Rod!) y me apunté para empezarlo a finales de Noviembre. En ese transcurso, un crisol de sentimientos encontrados salieron a flote como submarino alemán U-boot: una mezcla entre ignorancia, ganas y estrés se apoderaron de mí, momento en el cuál me di cuenta del atolladero en el que me encontraba, la realidad era que la última vez que había visto algo de exploiting fue con un par de ROPs tontos y poco más, así que decidí que investigar por libre antes del lab sería una buena idea. Ahí me topé con Ramachandran, alias el colegui de Pentesteracademy y su certificación/curso/comoqueraisllamarlo: SLAE 32. Un contenido de fruta madre que se divide en dos partes:
- Ensamblador 101 (en esta parte estaba menos verde de lo que pensaba, lo cual fue un alivio)
- Shellcoding
Desgraciadamente, la primera parte es una chapa impresionante, podéis poner los videos a 1.25 1.5 si queréis porque el colega va a su ritmo a veces, viene bien si pensáis que sois unos paquetes para repasar conceptos. La segunda parte es harina de otro costal... haces stubs, encoders y empiezas a sentirte el jodido Kevin Mitnick. Total, que lo hagáis si queréis, yo lo hice y lo recomiendo muchísimo.

Cuando terminé el SLAE me sentía bien, con la bilirrubina a flor de piel, listo para afrontar los problemas del exploiting y me sentía encaminado hacia las mieles del éxito. Durante un par de semanas andé con algo de lío así que aparqué un poco el tema hasta el día en el que comencé el lab. El OSCE no es como el OSCP que te encuentras 300 máquinas distintas; te dan el PDF con deberes, los haces en el lab y ya está. Por esta razón, recomiendo coger el mínimo tiempo posible de lab, buscar el software instalado y crearos vosotros vuestro propio lab.

Antes de continuar, permitidme hacer un pequeño interludio para analizar la siguiente opinión sobre esta cert:
- “¡Está desactualizada!”
La respuesta a esta rotunda e inquietante afirmación es... si y no. Me explico: si bien es cierto que hace un lustro que no la actualizan y que los contenidos que encontramos son mas de la década pasada que de esta, si que es verdad que la metodología y las formas se mantienen, soy de la escuela de los que piensan que no puedes empezar la casa por el tejado y que tomar cierta soltura con elementos que a día de hoy son menos complejos o están mas desactualizados aporta una solidez a los fundamentos. Definitivamente si estás buscando las últimas tendencias esta NO es tu certificación e igual deberías estar leyendo algo que te mole de verdad.

Ahora que el camión de haters va colina abajo, prosigamos con el contenido teórico del curso:
Según el syllabus (https://www.offensive-security.com/documentation/cracking-the-perimeter-syllabus.pdf) será necesario que conozcamos en profundidad los siguientes temas:
  • Web app testing
  • Egghunting
  • Backdoors y evasión de AVs (chusteros)
  • Saber debuggear de pé a pá
  • Saber bypassear ASLR (del Vista)
  • Hacer exploits en espacios reducidos (por ejemplo egghunters) y con encodes concretos
Según yo, los siguientes links y consejos vienen bien para complementar:
  • ¿No sabes de IDA o de Ghidra (nivel básico)? Pues ahora es el momento 
  • ¿No sabes usar immunity con soltura? Pues ahora es el momento, mona.py mola también
  • ¿Crees que fuzzear es una cosa que solo se hace con servidores web para encontrar ese directorio chustero de aquella máquina grannyfinder de HTB que sólo han hecho cuatro compraflags? Va tocando aprender a usar fuzzers (como Spike!)
  • ¿Conoces a Ted?¿Digo a Vulnserver? (http://www.thegreycorner.com/p/vulnserver.html) Pues ya lo conoces. Hazlo parte de tu día a día. Haz todos y cada uno de los ejercicios una vez tras otra, domínalos, entiende que demonios esta pasando, se capaz de editar ensamblador a pelo. Los siguiente enlaces son excepcionales y os ayudarán a comprender la mandanga:
  • ¿Sabes mediar con egghunters y con SEH? ¿No? No pasa nada:
  • Estos links también te serán de ayuda:
Con esto estaríamos cubriendo gran parte del contenido del examen. Es posible que se haya quedado algún link en el tintero, no me lo toméis muy en cuenta, ni soy perfecto ni lo pretendo (disclaimers vendo). Es probable que si has llegado hasta aquí, tengas cierto interés en el examen (porque hasta ahora ni lo he nombrado) y es que he decidido dejar lo mejor para el final. El día del examen,nos encontraremos con cuatro ejercicios diferentes a realizar: dos con un mayor puntaje (30pts cada uno) y otros dos con menos (15pts cada uno). En un total de 48 horas tendremos que tener un mínimo de 75 puntos ¿Es difícil? Pues yo que sé, si , supongo ¿Era difícil el examen de la asignatura esa imposible en la carrera?¿Es difícil levantarte todos los días temprano para ir a trabajar? Al final la vida es una lista interminable de cosas chungas que hacemos y esta prueba no es ninguna excepción sobrenatural . Ni es imposible ni va a ser el problema más complicado de tu vida.

Por último me gustaría dar un mensaje de apoyo claro a los que estáis en proceso o tenéis en mente hacerlo: si haces de Vulnserver tu hijo predilecto, haces de pé a pá todos los ejercicios del syllabus/PDF y revisas todos los puntos previamente expuestos las probabilidades de aprobar aumentarán considerablemente. No obstante, seamos realistas, todos los ejercicios están destinados a darle vidilla a tu creatividad y prepararte lo que a todas luces será un examen complicado. Podría ser que ese día te atacase un oso pardo, te lanzasen una nevera o que simplemente la inspiración no llegase. Como dicen por ahí: it's okay not to be okay. El examen tiene una componente psicológica, no dejéis que os afecte más de lo debido, parad cuando queráis, echaos unos Cola Cao's con vuestros colegas o ved Brooklyn 99 un rato. En comparación al OSCP dispondréis de bastante tiempo (48 horas de examen). Y si suspendéis no pasa absolutamente nada,¡la próxima vez irá mejor!



A la hora del examen es esencial ser capaz de desconectar. 
Brooklyn 99 me ayudó enormemente.

Pd: estoy por los Telegrams modernos por si necesitáis algo (StooormQ)

Agradecimientos a Rod, PabloLB, Vorga, Íker, arale, Adon, Naivenom y SniferL4bs.

Contribución gracias a Borja Cañavate aka StooormQ

Comentarios