En este post te voy a contar de la manera más breve y ordenada cómo he hecho yo para aprobar el CPTS gastando una única bala en el examen.
Sí, ese, el HackTheBox Certified Penetration Testing Specialist (menudo nombrecito…)
Fácil no es, pero te aseguro que te va a quedar clarísimo qué pasos tienes que seguir.
El camino
La posibilidad de presentarte al examen no es para todo el mundo, antes de atreverte a intentarlo tienes que acabar lo que HackTheBox llama “Penetration Tester Job Role Path”.
Un camino de 28 secciones (módulos) en los que pasaras desde la metodología más básica de una prueba de penetración hasta la explotación de un entorno completo de Directorio Activo con una aproximación de caja negra.
43 días no vas a tardar, eso ya te lo digo yo.
Según mis cálculos aproximados, cuenta con invertir unas 4 horas diarias 5 o 6 días a la semana durante 6 meses (ya cuento con que te vas a pegar un descanso de vez en cuando).
El camino tiene un ORDEN por algo. No te saltes módulos “para luego” ni vayas a los que más te llaman la atención directamente. Debes hacerlo en orden, te facilitará muchísimo la vida.
Y, más pronto que tarde, la insignia “llave” del examen será tuya.
Los apuntes
El debate infinito. ¿Qué apuntes debo tener?
Grandiosa pregunta, pero no hace falta ser ningún genio, solo hay una regla básica. Por nada del mundo hagas “copy-paste”. Lo más importante es que los apuntes sean TUYOS y que sigan un orden coherente. Buscar un comando concreto se puede hacer en un segundo, que tus apuntes no estén llenos de comandos sin teoría.
Aquí te muestro un ejemplo de cómo organicé yo una parte del “Active Directory”, por si te sirve para hacerte una idea.
Y aquí te muestro un ejemplo de como manejar el contenido (un ejemplo de lo que a mí me parece óptimo, no significa que tenga que funcionar para ti).
Los comandos primero (estamos haciendo un examen, no te olvides de la velocidad) y la teoría justo después.
Para aprender, hay que escribir las cosas uno mismo, es de primero de estudios.
IMPORTANTÍSIMO, ten un apartado de “Ases bajo la manga”. Una webshell PHP, cómo estabilizar una reverse shell, etc… Esas cosas que usas tantas veces tienes que tenerlas a mano. Aquí te pongo un ejemplo de algunos ases:
Las prisas
De verdad, no tengas prisa. Entiendo que quieres esa espada cuanto antes, pero si corres vas a tardar mucho más en conseguirla.
Es fundamental que interiorices los conocimientos y es fundamental que intentes aprender. No intentes aprobar, intenta aprender.
Peléate con los módulos y no busques las soluciones por internet. Ese reto que no te ves capaz de superar va a caer en el examen, te lo aseguro, y ahí no vas a tener a quien copiarle los comandos.
Attacking Enterprise Networks
Es el último módulo de todo el camino, y tienes que hacerlo a ciegas. Sí o sí.
Es la única oportunidad que vas a tener de hacer algo parecido a lo que va a ser el examen. Es un entorno tan completo y bien hecho que es absurdo que no cueste dinero extra.
Por favor, no lo desaproveches. No caigas en la tentación. Yo tardé 5 días en acabarlo y aprobé el examen a la primera, no creas que tienes que hacer el módulo entero en 1 día porque no se puede.
Una vez más, ten paciencia. Paciencia y trabajo, es lo que hay.
El examen
El punto que más te interesa, me imagino. ¿Cómo es el examen?
El examen es un entorno empresarial semejante a uno real. Es una empresa que tiene un ordenador expuesto hacia internet y, con tus conocimientos, tienes que vulnerar toda su infraestructura interna comenzando por el punto de entrada.
Hay 14 banderas que sirven a modo de “checkpoint”, para que sepas que ese es el camino. Y es necesario obtener un mínimo de 12 banderas para aprobar.
Este es el debate infinito de las personas que han aprobado el examen: ¿Qué bandera es la más difícil?
NINGUNA. Ninguna bandera es “la más difícil”.
Mira, te voy a ser muy sincero, pensar que X bandera es “difícil” va a hacer que pasen dos cosas:
Vas a infravalorar las otras banderas, te vas a pensar que son un paseo y te vas a frustrar si te quedas estancado en una de ellas.
Vas a darle demasiadas vueltas a esas que se suponía que eran tan difíciles, cuando en verdad no lo son.
Yo mismo me pasé dos días (48 horas completas) en la bandera 7 cuando el resto del mundo la saca en menos de 1 hora.
Y yo mismo saqué la bandera 8 en 10 MINUTOS cuando hay gente que ha suspendido por ella.
Como vayas con una bandera en la cabeza la vas a cagar, tenlo muy claro.
Que no te de miedo la bandera 9, olvídate de ella. Te prometo que no es para tanto, simplemente es más larga que las demás. Pero ahora yo te pregunto, qué es más difícil, andar 400 metros por la calle o avanzar 50 metros haciendo el pino por una montaña? Más largo no significa más complicado.
Recomendaciones
Pivotar (Ligolo-ng)
Tienes que aprender sí o sí. Tienes que ser capaz de pivotar con los ojos cerrados. Es fundamental entender perfectamente lo que significa y las implicaciones que tiene (es probable que suba un video a youtube explicándolo).
La herramienta que recomiendo, Ligolo-ng, o está en el path pero es la mejor herramienta que vas a encontrar.
Tuneliza tráfico por HTTPS. Puedes encontrar posts que en 5 minutos te explican cómo usarlo a la perfección.
Esta es la herramienta:
Transferir archivos
Hay mil maneras de enviar archivos, pero yo te recomiendo las siguientes:
Utilizar volúmenes con “xfreerdp”, la manera más sencilla de compartir archivos con un sistema Windows al que te conectas por RDP. Yo tenía una carpeta “utils” que era la que siempre compartía, ahí lo tenía todo a mano.
Aprender a usar “download” y “upload” con evil-winrm. No tiene ninguna complicación pero que sepas que existen, si estás conectado con este método basta con usarlos para subir o bajar archivos.
Peticiones a un servidor web. Te vas a tu carpetita “utils” en tu máquina atacante y lanzas un server básico con HTTP y a partir de ahí ya solo es utilizar wget en Linux o “Invoke-WebRequest ….. -OutFile …” en Windows. Facilísimo.
La frustración
No es una herramienta, pero tienes que aprender a estar bloqueado, porque lo vas a estar.
Respira, da un paseo y revisa tus apuntes sin afán de encontrar la solución perfecta, simplemente revísalos. Al acabar te aseguro que se te habrá ocurrido algo.
Si estás repasando tus apuntes no pares para probar cosas, concédete 45 minutos para leer y apuntar todas las cosas que quieres probar más tarde.
Mi experiencia
Hacer el examen mientras trabajas es una mierda, y a mí me tocó hacerlo. Intenta empezar un viernes para terminar el domingo de la semana siguiente, así tienes dos fines de semana completos, es lo único que te puedo decir.
Pero sí, vas a sufrir. Si te apetece pedirte unos días de vacaciones puede que sea el momento.
Y ya, ya lo sé, ya se que quieres saber cuánto tardé yo en sacar cada bandera.
No debería contártelo porque no te ayuda en nada, no todos somos iguales!!! Pero bueno, a mí también me habría gustado leerlo en su momento, así que aquí lo tienes:
Flag 1- 4 horas (Día 1/10)
Flag 2- 10 horas (Día 2/10)
Flag 3- 2 horas (Día 3/10)
Flag 3- 4 horas (Día 3/10)
Flag 4- 6 horas (Día 4/10)
Flag 5- 1 hora (Día 4/10)
Flag 6- 1 hora (Día 4/10)
Flag 7- 2 días (Día 6/10)
Flag 8- 10 minutos (Día 6/10)
Flag 9- 1 día (Día 7/10)
Flag 10- 4 horas (Día 8/10)
Flag 11- 2 horas (Día 8/10)
Flag 12- 1 hora (Día 8/10)
Y el tiempo que quedaba, pues eso, a documentar.
Y cuidado, porque documentar no es moco de pavo. 122 páginas de sufrimiento me cargué a las espaldas. Y fueron suficientes para aprobar.
Conclusiones
El examen es difícil. Diría que es el examen más difícil y para el que más me he preparado en mi vida, y, habiendo sido el mejor expediente de Ingeniería Informática en la universidad, esta opinión de dificultad gana credibilidad.
Pero es bonito, muy bonito. Una satisfacción que es difícil de expresar, así que te va a tocar vivirla cuando lo apruebes tú mismo!
Pronto subiré un video a mi canal de YouTube con todos los detalles contados de palabra, que hablando se entiende la gente!
Y ah, por cierto, el código CPTS vuelve a estar vivo para comprar mi libro “Hacking Para Cachorros (Y Perros Viejos) - El Sabueso de Linux” con un pedazo de 40% de descuento, que estamos de celebración!!
Muchísima suerte con tu examen. Pronto tú también podrás compartir una imagen como esta:
Hola buenas tardes, yo estoy por terminar el modulo de Windows Privilege Escalation de HTB. Y estaba viendo que comentabas sobre tus apuntes y de tomar el ultimo modulo a ciegas.
Podrias hacer una descripcion mas exhaustiva sobre como hacer correctamente el apunte, yo una vez terminado el modulo de reportes me iba a poner a hacer el manual, pero no tengo mucha idea de como poder hacerlo correctamente. Agradeceria tu ayuda. Saludos
Enhorabuena por tu certificado CPTS!!! Ha sido placer leer tu artículo sobre como ha sido tu trayectoria.
Nos podrías decir que programa has usado para tomar todos tus apuntes?
Un saludo.