Mi experiencia con el OSCP
Atención: Este post habla sobre experiencias mías, no habla sobre nada técnico.
Primero que todo quiero aclarar que escribo ese post sin intención de ser modelo a seguir en la forma de orientar el examen del OSCP. Soy consciente que hay 1000 post con relación a esto y estoy seguro de que este no será el mejor, ni pretende serlo, simplemente me gustaría dejar un relato para que cuando lo lea en unos años, vea mi evolución. Una vez hemos aclarado esto… podemos empezar :D
Introducción y contexto
Antes de entrar en detalle sobre como abordé el examen y el laboratorio creo que es mejor entrar en el contexto de saber en qué situación estaba yo cuando decidí adentrarme en esta certificación.
Siempre he sido una persona curiosa (creo que cualquiera que se dedique a esto debe serlo), por lo tanto, mi background hasta entonces era de:
- Algo de conocimientos de Linux adquiridos por estudios y por cuenta propia.
- Conocimiento del funcionamiento interno de webs, ya que me había dedicado como programador a ello.
- Unas cuantas líneas a mis espaldas de diferentes lenguajes, las cuales me había dedicado a revisar que no contengan vulnerabilidades.
- Unas pocas máquinas en Hack The Box (15 o así)
- Y la curiosidad de haber estado trasteando con un poco de todo… :D
Era consciente de que mi background quizá no era el mejor, de ello estoy seguro ahora. Pero necesitaba un reto así en mi vida, había demostrado mi habilidad a la hora de revisar código de otras personas y encontrar sus vulnerabilidades, además, en ese momento iba a empezar en un trabajo nuevo como pentester. Que mejor momento que empezar en un nuevo trabajo como pentester que también asumir el reto de tal certificación como era el OSCP (Nótese la ironía).
Primeros pasos y fin del laboratorio
Una vez me decidií a tomar el examen, leí muchos blogs los cuales comentaban formas diferentes de plantear el laboratorio y examen. Alguno de ellos te proponen primero practicar por tu cuenta en plataformas como Hack The Box o Try Hack Me (mejor esta última para empezar), otros blogs te proponían empezar el manual + laboratorio y posteriormente practicar por tu cuenta con los conocimientos adquiridos, incluso llegué a leer alguna locura de que había gente que dormía 20 minutos cada 3 horas durante tres meses con tal de estar despierto y seguir estudiando… :S
Cuando ya estaba informado lo suficiente, tomé la decisión de primero apuntarme al OSCP, hacer el laboratorio y durante los 3 meses que tienes para programar tu examen, hacer todas las máquinas posibles (spoiler: me equivoqué). Esta decisión se justificaba con la afirmación de, “Si no estudio antes el manual, no podré practicar”. Una vez ejecutado mi plan, todo fue muy rápido, me apunté 3 meses, me llegó el manual y probé la VPN, me lo leia mientras hacía ejercicios, vi que el tiempo se me iba y no había empezado el laboratorio, seguía haciendo ejercicios, seguía viendo que el tiempo seguía pasando… Finalmente, cuando pasaron 3 semanas me planteé que 5 puntos del examen no compensaban con la cantidad de tiempo que estaba invirtiendo, haciendo ejercicios y lo poco que estaba practicando en el laboratorio, pues el tiempo corría en mi contra.
De forma resumida y quizá se haga algo breve la explicación, estoy seguro de que muchos lo agradeceréis, realicé finalmente 35 máquinas del laboratorio (creo recordar) …
Fase post laboratorio
Es mi primer post, estoy seguro de que me estoy enrollando demasiado y la mitad os habéis perdido, resumiendo:
1.- Tomé la decisión de primero laboratorio y después práctico en HTB y THM.
2.- Veo que no me compensa hacer los ejercicios del manual.
3.- Hago en 3 meses de laboratorío, 35 máquinas…
En este punto me di cuenta de que me había equivocado totalmente, no tenía la suficiente experiencia, me había metido en un laboratorio con la esperanza de que el manual me enseñase todas las técnicas posibles y realmente hasta ese momento no había comprendido la filosofía que te estaban intentando enseñar. Durante los 3 meses posteriores que tienes para programar el examen, justamente cayeron en época de verano y en medio del confinamiento del COVID, es cierto que, con los conocimientos que había adquirido empecé a practicar en las plataformas de HTB y THM, no de forma tan dedicada, pero al empezar con las máquinas fáciles sí que realizaba unas 2 máquinas por semana. Mi motivación era como una montaña rusa… o me obsesionaba y me acostaba de madrugada o el simple hecho de intentar realizar una máquina me horrorizaba.
Finalmente, después de 3 meses post-laboratorio, habría realizado unas 20-30 máquinas de HTB y THM, ahora me veía más preparado, ojalá hubiese tenido esos conocimientos antes de empezar el laboratorio, ¡lo hubiese podido aprovechar mucho más! Aun así, no me parecía que estuviese preparado y me quedaba poco tiempo para realizar el examen. Decidí conseguir 3 meses más de tiempo extra, y para ello contraté 30 días más de laboratorio, no solamente me permitió conseguir 3 meses más, sino que esta vez las máquinas de laboratorio que antes me costaban ahora las planteaba de mejor forma. El último día de laboratorio tenía 45 máquinas hechas.
Recta final antes del examen
Al finalizar el laboratorío por segunda vez, sabía que si no programaba una fecha en ese momento no le iba a poner esas ganas que le pone todo el mundo cuando sabe que el tiempo se le acaba, así que cogí el último viernes que me dejaba escoger y lo agendé a las 10 de la mañana, una hora que me permitía despertarme a una hora la cual haya podido descansar bien, y en el caso de tener que dormir durante el examen, me permitía tener horas de margen cuando me despertase.
En el tiempo de terminar el laboratorio por segunda y el examen, fue todo como una curva exponencial, empecé flojito, pero cada día que pasaba estudiaba más y más realizando máquinas de laboratorio, siguiendo la filosofía que te intentan enseñar en el OSCP, ese “try harder” que todo el mundo presumen cuando se lo saca. Finalmente me había realizado casi todas las máquinas de una lista que recomiendan por aquí.
</
Insisto que no quiero ser el modelo de nadie, y estoy seguro de que hay mejores formas de plantearse el examen sin tener que hacer esa burrada de máquinas… A mí me funcionó…
Día del examen
El día anterior no quise tocar el portátil, ya que al día siguiente me esperaba un día entero con este, me acosté temprano (22 h o 23 h). El día del examen me levanté a las 8:30 o así, desayuné, me duché, y a las 9:30 estaba delante de la pantalla de mi ordenador, nervioso, pues no sabía como era realmente la parte en la que te piden los datos. Eran las 09:45, yo estaba conectado y un “nick” me pedía por chat que pusiese mi cam, mostrase mis dos pantallas y diese una vuelta a la habitación para ver que no hubiese nadie escondido… :S. Este proceso no duró más de 10 minutos, aquel nick que me había estado revisando toda la documentación y todo mi entorno, me dijo que estaba todo OK, me llegaría un correo y a las 10:00 h empezaría mi examen.
Creo que lo que voy a comentar ahora está replicado en todos los post que hay sobre el mismo tema, pues seré breve. Primera máquina que realicé, fue la del BOF, una duda que tenía hasta el día del examen era como iba a identificar esta máquina, TRANQUIL@S, te dicen ellos cuál es y te dan una máquina virtual Windows, la cual tiene el mismo software que tienes que realizarle el BOF, junto a un fichero Python con la estructura para empezar el ataque.
Después de que el BOF me funcionase (pasaron 2 horas), realicé la máquina de 20 puntos (2 horas y media…), seguí con la otra de 20 puntos, no conseguía recibir shell por lo que fuí a por la de la de 10 y la saqué en una media hora (buen chute de motivación), seguía atascado en la máquina de 20 puntos e intenté a ver si podía la otra de 25 puntos. En este punto llevaba unas 8 o 9 horas de examen y estaba a 15 puntos de aprobar, por mi cabeza pasaban 100 cosas a la vez, después de tanto tiempo no podía quedarme a 15 puntos… Finalmente recordé que metasploit SI se podía utilizar en una máquina, probé el único exploit que había en metasploit para la máquina de 20 puntos que me faltaba y entré… y después la escalada fue bastante sencilla.
Después de 10 horas de examen, estaba casi seguro de que había aprobado (más adelante hablaré del casi). Estuve intentando sacar la última máquina de 25 puntos durante dos horas, pero mi cerebro iba a estallar. Decidí dar por finalizado el examen, no sin comprobar anteriormente que tenía todas las capturas de pantalla que necesitaría para poder realizar el informe al día siguiente.
El día después de la tormenta.
Una vez me desperté habiendo finalizado el examen, todo me parecía que iba más lento, sabía que el día anterior lo había dado todo. Desayuné con mi familia tranquilamente, tenía 24 horas por delante para entregar un informe(había repasado que tuviese toda la hora antes de finalizar el examen). Una vez me duché y me acicalé después del día anterior, cogí y realicé un informe con la plantilla que ellos te facilitaban.
¿Os acordáis del “casi” que anteriormente dije que hablaría? Ha llegado el momento. Uno mismo, cuando sabe que tiene todas las capturas y ha entregado las “flags” como se le han dicho en el examen, está casi seguro de que ha aprobado, pero los de Offensive Security quieren llevarte al extremo, y sus exigencias relacionadas con el formato del informe son pocas, pero precisas. Antes de enviar el informe, tienes que revisar que todas las capturas con todos los comandos utilizados estén plasmados de la mejor forma posible en el informe, además, este debe tener un nombre y formato específico para que pueda ser entregado.
Finalmente, pasé el domingo sin ganas de ver una pantalla, había terminado agotado y estaba feliz, uno sabe como le ha ido el examen, eso es así. El lunes a media mañana recibí el correo como que había aprobado.
Conclusiones
Para concluir con este “rollazo” que he pegado, decir que estoy contento de haber podido vivir esta experiencia y que haya tenido un final feliz para mí. Ahora que ha pasado un tiempo y lo veo con perspectiva, se que esta certificación, en mi caso, es el principio del camino, aún queda muchísimo por aprender, tengo la base, pero la mejor forma de aprender es probando por ti mismo y estoy seguro de que eso no se enseña en ningún sitio,no es más que uno mismo enfrente de algo con conexión.