Trabajo en el ámbito de seguridad informática algo más de 10 años, y la idea de obtener una certificación de Offensive Security siempre estuvo rondando mi cabeza, lamentablemente, el tiempo que sobra entre el trabajo y los niños no me habían permitido iniciar este camino. 

El 29 de octubre escribí este post, para tener una linea de tiempo de mi inicio de preparación sin estar seguro de que me enrolaría o no. 

Pasado eso inicié con la resolución de máquinas en la plataforma Hack The Box. A partir de ahí no paré, llegando a resolver cerca de 20 máquinas no retiradas antes de decidirme a tomar el PWK. En este trayecto pude iniciar con una comunidad que agrupa a jugadores ecuatorianos de esta plataforma y entusiastas de la seguridad ofensiva. Algo importante que ocurrió en este camino y con la comunidad es que se pudo llevar a Ecuador al puesto 69 en ranking de Hack The Box, donde antes ni siquiera aparecía (top 100). Al terminar alguna de las reuniones grupales, tomé la decisión de enrolarme en PWK. Y aquí inician las recomendaciones:

Familia, trabajo y tiempo:

La primera recomendación que me hicieron en la comunidad de HTB Ecuador fue «habla con tu familia y explica que vas a estar ausente por 2 meses», al inicio me pareció una exageración, pero una vez dentro vi que es real. Es por ello que si vas a iniciar en la preparación te recomiendo que hables con tu esposa/esposo, roommate, padres o con quien vivas y explica que no vas a tener el tiempo que tenías antes para compartir y que por al menos dos meses (es el tiempo que yo tomé el lab) no podrán contar contigo. 

Habla con en tu trabajo, es importante que conozcan que te vas a lanzar a sacar esa certificación y en muchos casos ayudará a que no te pongan reuniones tarde o temas similares que te corten tu preparación. 

Bueno a continuación inicio con las recomendaciones técnicas:

Hack The Box y Try Hack Me:

Cuando compras el curso tu eliges cuando vas a iniciar con la preparación, te recomendaría que te des al menos unos 20 días para que resuelvas las máquinas de Hack The Box parecidas al lab de OSCP de TJNull. Todas las máquinas que tienes en la lista son retiradas por lo que ya tienes el writeup, hay varios muy buenos (Plaintext, Takito, S4vitar). Al inicio podrías apoyarte en la guía, luego sin darte cuenta ya estarás haciendo las cosas solo.

La plataforma Try Hack Me tiene entre sus Learning Path uno dedicado a OSCP. También lo hice después del laboratorio de PWK. Pero ahora veo que sería más conveniente hacerlo antes de empezar con Hack The Box. 

Hay un curso que podría recomendar, también lo tomé para cubrir cualquier agujero en mi conocimiento de técnicas de escalación de privilegios. Hay un curso para windows y otro para linux. Los dos cursos lo conduce Tb3rius, que es el creador de Autorecon. Lo explica muy bien.  

Por lo que mi recomendación concreta es la siguiente:

1.- Enrólate en el curso y establece el inicio del lab para 15 a 30 días en el futuro (según tu conocimiento inicial). 

2.- Inicia el curso de Tib3rius, practica y aprende, te tomará al menos 4 días. 

3.- Inicia con el learning path de OSCP de Try Hack Me, te tomará al menos 7 días en el caso de que estés iniciando (no uses writeups).

4.- Resuelve al menos un 70% de las máquinas de la lista de Hack The Box de TJNull Yo resolví 30 y me tomó 15 días. 

5.- Inicia el PWK.  

Iniciando el Curso:

El día que fue establecido por ti para el inicio del curso a la hora señalada en punto, te llega un correo de bienvenida, que contiene todo el material, acceso VPN, libro y videos.  Lo que hice yo fue enumerar toda la red del lab con Autorecon (lo recomiendo mucho), mientras contiúa el escaneo (tomo 2 días) realicé una enumeración manual con nmap y empecé a hacer listas de todos los host linux, todos los windows, todos los que tienen el puerto 80, smb, ftp etc. Y comencé con la resolución de las máquinas más parecidas a la lista de TJNull, en las primeras 24 horas del laboratorio tenía resueltas 6 máquinas. 

Luego de las 24 horas de resolución, inicié con el libro y los videos. Tomé la desición de resolver todos los ejercicios y hacer el reporte de al menos 10 máquinas para obtener unos 5 puntos extras. El leer el libro y hacer los ejercicios me tomó cerca de 15 días trabajando en promedio 6 horas de lunes a viernes y 10 los fines de semana. El reporte final del laboratorio terminó con 487 hojas. Si me preguntas, ¿valió la pena?, digo que si!, ese trabajo fue bastante agotador y repetitivo, pero me dió esas ganas de continuar que necesitas en una tarea de largo aliento. Si terminas algo que al inicio parecía inalcanzable te genera una respuesta positiva y te da ganas de seguir. Hay ejercicios que me costó resolver y me apoyé en el foro de estudiantes para hacerlos. Te aconsejo que a partir del primer día te apoyes en el foro. 

Una vez que terminé todos los ejercicios en 15 días me centré 100% a la resolución de máquinas. Al informe de los ejercicios hay que agregar la resolución de al menos 10 máquinas para obtener los 5 puntos por lo que mi siguiente meta fue comprometer las 10 máquinas, como en el primer día hice 6, solo me faltaban 4 que comprometí en 2 días. En el día 17 de 60 tenía la documentación completa para mis primeros 5 puntos, fue gratificante.

En adelante me dispuse a leer detenidamente la información generada por Autorecon, y buscar en el arbol las frutas más bajas, cuando terminé con el laboratorio, había logrado abrir todas las redes y comprometer 65 equipos. En las últimas 24 horas del laboratorio estuve despierto 20 horas y resolví 4 de las 5 máquinas que me faltaban en todo el laboratorio. Si tenía 4 horas más es muy probable que lo resolvía todo, nunca lo sabré.  Me apoyé mucho en el foro de estudiantes y en el grupo de discord de Offensive Security. Lo documenté todo. Aquí algo muy importante, me quedé con 5 máquinas que tenían dependencias, y demoré en resolverlas porque no identifiqué la dependencia inicial, para que no te pase esto debes documentar todo, y no dejar la máquina un segundo después de obtener la flag, el lab pretende ser un entorno real y no un CTF. Mira que puedes hacer con las credenciales de root o system, dumpea hashes, mira correos, notas etc. Con los hashes de windows trata de hacer Pass The Hash en otras máquinas del lab y con los hashes de linux mira si puedes crackearlos y usarlos en otra máquina o servicios. 

Hay algo muy importante que debes considerar para poder trabajar de manera rápida y efectiva, debes elegir muy bien tu terminal, en mi caso yo uso zsh con yakuake. El primero me permite instalar plugins como la corrección de sintaxis y el segundo, permite crear un terminal desplegable que se abre/cierra al presionar la tecla F12. En yakuake configuré el scrolldown infinito para que no se me sobreescriba los comandos por si necesito en algún momento volver al resultado de un comando cuando elabore la documentación, configuré atajos para abrir un nuevo terminal, para dividir horizontal, vertical y otros adicionales. Mi recomendación es que debes tener una terminal que te sientas cómodo y con tantos atajos como puedas para que procures solo usar el teclado. 

Como generar la Documentación:

Para la documentación usé dos etapas, la documentación «cruda» y la información procesada, para la primera lo hice con la herramienta de captura de pantalla que viene por defecto en Kali, configuré algunos atajos que me permitía hacer las capturas de manera eficiente. Estas capturas y descripciones fueron recopiladas en CherryTree otra aplicación que viene por defecto en Kali. Cada ejercicio / máquina fue configurada como un nodo y los subnodos son las etapas de la resolución de la máquina o ejercicio. 

Para procesar esta información cruda se uso como base este template que  con markdown, latex, pandoc y VisualStudio Code se obtuvo un resultado muy agradable a la vista de mis dos reportes. Si alguien quiere ayuda para hacerlo funcionar me contacta y con gusto le ayudo, si hay varios comentarios solicitando ayuda, hago un video.

Recomiendo mucho visitar el link y usarlo para documentar el lab y el examen, esto al contrario de lo que se piensa, me ayudó a trabajar con mayor rapidez, no me imagino haber trabajado con word o similares en un documento de al menos 1000 imágenes, eso debe ser algo muy doloroso y frustrante.  

Durante el Examen:

La fecha del examen, la eliges tú, te recomiendo que lo hagas antes de los primeros 15 días después del inicio del curso, si tardas mucho en decidir no puedes agendar días libres como un fin de semana por ejemplo. En mi caso agendé el examen la primera semana del curso y lo puse para 15 días despues de terminar mi periodo de lab.

Un día antes del día 0 te enviarán un correo con las instrucciones para el examen. Y te piden que ingreses a la plataforma del examen 15 minutos antes para que el supervisor haga un conjunto de revisiones, una vez que termina, te envían un correo con los datos de acceso a la VPN y adicionales relativos al examen. 

Si ya llegaste a este punto solo diviertete y haz lo que te gusta. 

Las recomendaciones que puedo dar referente al examen son las siguientes:

  1. Decide el horario del examen en función de tu naturaleza, ¿Te gusta trabajar en la noche o en el día?. Yo agendé mi examen para que inicie a las 17:00, porque estoy más cómodo trabajando en la noche. 
  2. Duerme bien el día, anterior no topes ninguna máquina, procura relajarte, ver alguna película o jugar videojuegos. Lo de no topar una máquina me refiero a resolver una, por mi trabajo no pude dejar de usar el computador el día anterior. 
  3. Piensa la música que vas a poner, spotify tiene la ventaja de que tiene un completo historia de las canciones que te gustan y genera listas de lo que más escuchaste en 2016,2017,2018,2019, por lo que puse eso, 24 horas de música con canciones de las que más me han gustado en los últimos 4 años. 
  4. Piensa el día anterior en lo que vas a comer, procura que no sea algo muy pesado, a mi me sirvió mucho comer snacks para picar durante todo el examen, de esta manera no tuve hambre, el día sábado cuando habían transcurrido 20 horas del examen comí el almuerzo. 
  5. Necesitas una silla cómoda desde el inicio del PWK en un lugar donde no haya mucho ruido, no sabes cuanto agradecerás tenerla. 

Recomendaciones técnicas:

  1. Procura tener todas las tareas repetitivas automatizadas con funciones en bash. No hagas un query mental para acordarte las opciones específicas de nmap, gobuster o cualquier otro programa que uses de manera repetitiva. Reducelo todo a un comando. Por ejemplo, si pongo autogobuster http://X.X.X.X se que iniciará gobuster con 100 hilos, usando el diccionario medio de dirbuster y otras opciones que se que son efectivas, no tengo que estar memorizando parámetros de ejecución. Tengo funciones para:
    • Descubrimiento de puertos con nmap. 
    • Gobuster. 
    • WPScan. 
    • Generar payloads y binarios con msfvenom.
    • Generar la escucha para recibir una shell reversa. 
    • Entre otras 
  2. Algo que también me sirvió mucho fue usar una aplicación de postits, donde tenía comandos básicos para por ejemplo, la ejecución de powercat.ps1, establecer una shell reversa con php, perl o python, y muchos otros apuntes que sabes que están ahí y no tienes que recurrir a una cheat sheet de un tercero. Estos postits se fueron alimentando en el lab de PWK al igual que las funciones de bash. 
  3. Inicia resolviendo la máquina de BufferOverflow y mientras haces eso deja que Autorecon haga su trabajo en las 4 máquinas restantes. Algo que sirve mucho para BoF es completar los ejercicios extra miles del libro. Yo los completé 2 días antes del examen y me dió la completa seguridad para resolver la primera máquina en 1 hora. 
  4. El resto del examen fue así, hasta las 12 de la media noche solo tenía un usuario de bajos privilegios en una máquina de 20 puntos y el system en la de BoF. Unas ganas de dar clic en «END EXAM» y resignarme al fracaso, no sabía porque no me resultaba bien nada de lo que intenté para elevar privilegios y no encontraba el punto de apoyo inicial en otra máquina. Pedí permiso al supervisor para tomar un descanzo de 10 minutos, me di cuenta que estaba demasiado tenso con el tema del examen y en realidad no me estaba resultando divertido hacer lo que en otras ocaciones disfrutaba. Me di cuenta también que me focalicé una sola máquina (no lo hagas). Volví al computador, le pedí al supervisor si puedo continuar, cerré todo y dejé la máquina que estaba haciendo para el final, y de ahí en adelante fue tan gratificante que todo me resultó bien, Hice una máquina de 20 hasta las 2 am y la de 25 hasta las 5:30 am. En ese punto me fui a descanzar con la seguridad de que ya tenía más de 70 puntos. Me desperté a las 9:30, a las 10:30 ya estaba notificando al supervisor que voy a continuar con el examen. Hasta las 11:30 hice la de 10 puntos y hasta las 13:00 completé la escalación de privilegios de la de 20 que no pude resolver horas atrás. Fui a comer y regresé solo para revisar si tenía todas las capturas de pantalla para el reporte final y para solicitar al supervisor que quería terminar el examen a las 14:00 aproximadamente había terminado la sesion «proctored». 
  5. La última etapa del examen es el reporte, en mi caso yo ya tenía mi reporte del laboratorio y de los ejercicios listo, solo debía concentrarme en el reporte del examen, empezé a las 19:30 del día sábado a elaborar el examen con las herramientas que se detallan en como generar la documentación. A las 2:00 am del día domingo estaba enviando el correo con el link de los reportes. A las 2:30 me estaban respondiendo con un acuse de recibo, en ese punto solo cerré los ojos y me desperté a las 13:00 del día domingo, con una gratificante sensación del deber cumplido.  
  6. El día lunes 4:30 am recibí el tan esperado correo de confirmación de aprobación. 

Las horas (UTC) exactas de las flags:

Consideraciones Finales

Animo a todo aquel que se sienta atraído por la seguridad ofensiva a que sigan este curso. Entre más joven mejor. El PWK está muy bien pensado y si lo aprovechas 100% material, videos, lab y ejercicios el examen te resultará sencillo de resolver.