CPTS Report
Introducción
El examen CPTS de HTB tiene dos criterios principales que debes cumplir dentro del período de prueba de diez días
:
Captura al menos doce de las catorce flags disponibles.
Producir un informe de prueba de penetración de nivel comercial y alta calidad.
Si eres como yo antes del examen, probablemente tengas confianza en tus habilidades de hacking, pero quizás no tengas mucha experiencia en la redacción de informes de pruebas de penetración.
Una buena manera de prepararse, como se recomienda en el material del curso, es crear informes simulados. Esta práctica puede ayudarte a desarrollar las habilidades necesarias para redactar un informe sólido el día del examen.
Pero, sinceramente, no hice nada de eso (salvo algunos informes de CTF). El primer informe real de pruebas de penetración que escribí fue el que presenté para mi examen. Y, según los comentarios que recibí, creo que quedó bastante bien.
Lo logré desarrollando de antemano lo que llamo una metodología de informes basada en activadores , que seguí durante el examen con gran éxito.
Esta metodología me permitió completar el informe a medida que avanzaba en el proyecto. Mantuvo el proceso fluido y equilibrado, de modo que la redacción del informe no interrumpió mi ritmo de trabajo y viceversa.
En esta publicación, compartiré las herramientas que utilicé para escribir mi informe y la metodología única que me ayudó a tener éxito.
Nota: No tomes esta publicación como una recomendación para omitir la práctica de reportar. Si sientes la necesidad de practicar, hazlo. Solo comparto lo que me funcionó.
Herramientas
Antes de profundizar en la metodología de informes, cubramos rápidamente las herramientas que utilicé para escribir mi informe. Si bien la metodología es el enfoque principal, estas herramientas fueron cruciales para mi éxito.
SysReptor
Cuando empecé a revisar el material del curso, estaba seguro de que usaría un procesador de texto sencillo como LibreOffice Writer para escribir mi informe. No quería lidiar con la sobrecarga de un software especializado en informes de pruebas de penetración, así que decidí descargar una plantilla de internet y empezar a escribir.
Pero una vez que llegué al módulo de Documentación e Informes, me di cuenta de que no era suficiente. Al ver la complejidad y el detalle que implica un informe profesional, me di cuenta de que necesitaba un software adecuado para redactar informes.
Decidí probar SysReptor , una herramienta de generación de informes diseñada específicamente para pruebas de penetración. Es gratuita, de código abierto y alojada por el usuario.
Esta resultó ser una excelente decisión, ya que facilitó considerablemente el proceso de generación de informes en comparación con escribirlo todo desde cero. SysReptor realmente cumple su promesa de simplificar la creación de informes.
En resumen, SysReptor funciona permitiéndole elegir una plantilla de informe que divide el documento en secciones, cada una con sus propios campos. Simplemente edite los campos y añada sus hallazgos para completar el informe. La estructuración y el estilo del informe ya están hechos.
Cuando hayas terminado, puedes exportar el informe como un documento PDF o una página HTML.
Además existe una plantilla CPTS oficial de HTB para SysReptor, ¡recomendada por Hack The Box! Consulta la demo para ver cómo quedaría un informe final.
Puede consultar esta publicación de blog de HTB sobre cómo instalar SysReptor y agregar la plantilla CPTS.
La metodología que desarrollé se basa en completar la plantilla HTB CPTS de SysReptor, por lo que tenerla instalada es un requisito previo.
ChatGPT
Otro recurso valioso para redactar informes es ChatGPT o cualquier otro chatbot LLM de su elección.
Puedes mejorar la calidad y la eficiencia de tu proceso de escritura redactando textos rápidamente sin preocuparte demasiado por la gramática ni la fluidez. La IA puede refinarlo corrigiendo errores y ajustando el tono a tus necesidades.
Simplemente pedirle al bot que “reformule el texto de una manera clara y profesional” puede transformar tu borrador en un informe pulido y profesional en poco tiempo, lo que te permitirá concentrarte en el pentesting.
Sin embargo, es importante revisar cuidadosamente lo que produce el bot para asegurarte de que se ajuste a tu visión. Además, limita su uso a reformular lo que escribes en lugar de generar contenido desde cero, ya que la IA a veces puede generar contenido sin sentido.
Metodología
Muy bien, profundicemos en la metodología real y cómo surgió.
Un consejo común para este (y otros) exámenes es no dejar la redacción de informes para el final. En su lugar, conviene trabajar en ella a medida que se avanza.
Este es un consejo sólido, pero no aborda realmente una pregunta crucial: ¿cuándo debería tomarse un descanso de piratear para actualizar su informe?
Si actualizas tu informe con demasiada frecuencia, interrumpes tu flujo de trabajo y ralentizas tu progreso. Pero si te tomas muy pocos descansos, tendrás demasiado que reportar a la vez, lo que puede perjudicar la calidad de tus informes. La clave está en encontrar un equilibrio predecible y manejable.
Aquí es donde entra en juego mi metodología. Como mencioné antes, usaremos la plantilla SysReptor HTB CPTS, que gestiona la estructura del informe. Ahora solo necesitamos una estrategia clara sobre cuándo y cómo completarlo.
Lo que desarrollé es un enfoque basado en activadores , donde asigno los diferentes campos del informe a hitos específicos durante el compromiso.
Cada vez que alcanzo un hito, me motiva a trabajar en ciertas partes del informe. Al establecer esto de antemano, siempre sé cuándo tomarme un descanso y exactamente en qué secciones del informe centrarme en ese momento.
Seguir esta metodología tiene varios beneficios:
Claro y fácil de seguir con un enfoque si-entonces.
Elimina las conjeturas sobre cuándo pausar la piratería para trabajar en los informes.
Divide los informes en pequeñas sesiones relacionadas con lo que acabas de trabajar.
Los informes son detallados porque escribes mientras las cosas están frescas en tu mente.
Gracias a SysReptor no es necesario preocuparse por el estilo ni la estructura del informe.
Su informe estará completo en más del 90% cuando termine de capturar las banderas.
Vamos a entrar en materia.
Estructura de informes
Antes de sumergirnos en los activadores que utilicé y recomiendo personalmente, veamos primero la estructura de la plantilla HTB CPTS SysReptor.
A continuación se muestran las secciones y sus respectivos campos:
Meta
Nombre, título y email
Engagement Information
Document Control
Customer Contacts
Executive Summary
Executive Summary
Approach
Scope
Assessment Overview and Recommendations
Network Penetration Testing Assessment Summary
Network Summary
Summary of Findings
Internal Network Compromise Walkthrough
Walkthrough Summary
Detailed Walkthrough
Remediation Summary
Remediation Summary
Short Term
Medium Term
Long Term
Appendix
Finding Severities
Host & Service Discovery
Subdomain Discovery
Exploited Hosts
Compromised Users
Changes/Host Cleanup
Flags Discovered
Domain Password Review
Findings
Title
CWE
CVSS
Overview
Impact
Affected Components
Recommendations
References
Details
La mayoría de los campos ya tienen textos predeterminados. Estos pueden ser marcadores que deberá completar o texto estándar bastante aceptable.
No es necesario modificar drásticamente todos los campos, ya que algunos ya tienen texto que funciona bien en la mayoría de los informes. Estas son las viñetas que no están resaltadas en negrita. Puede dejarlas prácticamente como están (pero asegúrate de leerlas) o reformularlas con tus propias palabras.
Los campos en negrita
son aquellos en los que definitivamente necesitarás cambiar el texto predeterminado por el tuyo.
Triggers
Por último, repasemos los factores desencadenantes que utilicé durante el examen.
Asociaremos los hitos que se produzcan naturalmente durante el pentesting con campos específicos del informe. Cuando se active un evento, deténte y complete los campos correspondientes.
La idea es que al completar el informe a medida que ocurren estos hitos, tendrás la mayor parte del informe listo cuando finalice el compromiso.
Estos son los triggers que utilicé, pero puedes crear los tuyos propios según lo que mejor te funcione. Asegúrate de anotarlos y consultarlos regularmente durante el examen. Si lo deseas, puedes consultar el índice de esta entrada del blog periódicamente.
Cuando comienza el examen
Estos son los campos que deberás rellenar nada más iniciar el examen y recibir la información sobre la evaluación de seguridad que realizarás:
Meta
Nombre, título y email
Engagement Information
Document Control
Customer Contacts
Network Penetration Testing Assessment Summary
Network Summary
Summary of Findings
Executive Summary
Executive Summary
Approach
Scope
Básicamente, complete completamente las secciones Meta , Control de documentos y Resumen de evaluación de pruebas de penetración de red y la mayor parte del Resumen ejecutivo , dejando el campo Descripción general de la evaluación y Recomendaciones para más adelante.
La mayoría de estos campos son bastante estándar y requieren poca o ninguna modificación. Léalos detenidamente y decida usted mismo si necesita cambiar algo o dejarlos como están.
Cuando se descubre un host o servicio
Una vez que descubra un host activo y enumere los servicios disponibles (por ejemplo, a través de un escaneo de Nmap), debe completar el apéndice correspondiente:
Appendix
Host & Service Discovery
En este campo, me desvié ligeramente del texto predeterminado proporcionado por la plantilla y creé una tabla para cada host descubierto con sus servicios disponibles.
Para cada host descubierto, creé una tabla con las siguientes columnas:
Port
The port(s) where the discovered service is running. E.g., “80”
Service
The name and version of the service. E.g., “nginx 1.18.0
”
Notes
Any additional notes you have. E.g., “Hosts a custom support web application.”
Asegúrese de que cada tabla esté claramente etiquetada con un encabezado que identifique a qué host pertenece la información.
Cuando se descubre un vhost o un subdominio
Debes completar el apéndice correspondiente con los dominios previstos en el alcance del compromiso (si los hay) y aquellos que descubras durante tu prueba de penetración:
Appendix
Subdomain Discovery
Este campo consta de una única tabla con las siguientes columnas:
URL
The URL of the domain. E.g., “admin.target.htb
”
Description
A description of what the domain is used for. E.g., “Administrator dashboard for the web application.”
Discovery Method
How you discovered it. E.g., “Revealed in HTML comment.”
Cuando se descubre un hallazgo de seguridad
Este es uno de los triggers más importantes y que más tiempo consume, por lo que es fundamental manejarlo correctamente. Para cada hallazgo de seguridad, debe agregar un hallazgo al informe.
Rellena todos los campos:
Findings
Title
CWE
CVSS
Overview
Impact
Affected Components
Recommendations
Details
Remediation Summary
Short Term
Medium Term
Long Term
Recuerda que cada hallazgo de seguridad debe documentarse individualmente. No agrupe varias vulnerabilidades, como la inyección SQL, en un solo hallazgo.
Desglosemos los campos que deberá completar:
Title
Para el "Title" , si bien puede ser difícil de crear, no hay un estándar estricto que deba seguirse. Siempre que el título sea claro y coherente, puede nombrar los hallazgos como mejor le parezca.
A continuación se muestran algunos títulos de ejemplo basados en los que recopilé de las fuentes de Hack The Box que podrían inspirarte:
CWE
Para el CWE , si no está seguro, puede preguntar a ChatGPT qué CWE se ajusta a la vulnerabilidad. Luego, valide la información buscando en Google <CWE> MITRE
y revisando la descripción.
CVSS
Para CVSS , use la calculadora CVSS integrada en SysReptor o busque una en línea. Si necesita ayuda, ChatGPT puede ayudarle, pero asegúrese de verificar el resultado usted mismo.
Overview
En el campo "Overview" , proporciona una explicación detallada de la vulnerabilidad, tanto en general como en el contexto de su hallazgo. Evite abordar aquí el impacto o la remediación, ya que estos se abordarán en campos posteriores.
Impact
En la sección "Impact" , describe las implicaciones de seguridad de la vulnerabilidad si persiste en el entorno del cliente. Proporcione ejemplos específicos relevantes para esta instancia de la vulnerabilidad. Puede presentar esta información como un párrafo o una lista con viñetas, pero mantenga el formato uniforme en todos los hallazgos.
En el campo "Affected Components", proporciona la etiqueta más pequeña que abarque todos los componentes afectados por la vulnerabilidad.
Por ejemplo:
Si una vulnerabilidad afecta a un solo host o servicio, utilice una etiqueta que incluya tanto el host como el servicio, si corresponde, como "
HOST01
(SMB / 139,445 TCP)". (p. ej., EternalBlue)Si afecta a un subdominio específico, utilice una etiqueta como
app.target.htb
. (por ejemplo, SQLi en una aplicación web)Para vulnerabilidades que afecten a una subred completa o a un entorno de Active Directory, no enumere cada host individualmente. En su lugar, utilice una etiqueta como “
target.htb Active Directory domain
” o un rango de IP, como10.0.0.0/8
. (p. ej., Kerberoasting).
Recommendations
En el campo "Recommendations" , proporciona pasos prácticos para abordar la vulnerabilidad. Nunca intentes solucionar el problema por tí mismo, por ejemplo, proporcionando una versión corregida del código. En su lugar, guíe al cliente sobre cómo resolverlo. Cada vulnerabilidad tratada en el CPTS cuenta con una sección de la Academia con sugerencias de mitigación que puedes usar como referencia al redactar recomendaciones. Puede presentar estas acciones como un listado con bullets.
References
En el campo References , incluye enlaces a recursos relacionados con el hallazgo de seguridad. Algunas referencias útiles podrían ser:
La página del NIST para el CVE, si corresponde, y cualquier publicación de blog relevante del investigador.
La página MITRE para CWE, si está disponible.
Un OWASP Prevention Cheatsheet para la vulnerabilidad, si existe alguno.
Si utilizaste un script de prueba de concepto (PoC) que no escribiste tu mismo, proporciona un enlace.
Details
Por último, en el campo "Details" , proporciona un procedimiento paso a paso para reproducir el descubrimiento y la explotación del hallazgo, incluyendo explicaciones para cada paso. Asegúrate de incluir:
Muchas imágenes y bloques de código para ilustrar sus puntos.
Etiqueta claramente todas las imágenes y bloques de código.
Resalta líneas importantes en bloques de código.
Recorta las imágenes para mostrar sólo las partes relevantes.
Redacta cualquier información confidencial tanto de las imágenes como de los bloques de código.
Menciona las herramientas y scripts utilizados.
Remediation Summary
Una vez completada la sección de hallazgos, tómate un momento para completar los campos relacionados con la sección Remediation Summary agregando recomendaciones para abordar este hallazgo específico.
En este paso, generalmente puede copiar y pegar las acciones de remediación que sugirió en el campo Recomendación del hallazgo y distribuirlas en los campos Short Term , Medium Term y Long Term según corresponda.
Al finalizar el compromiso, debe tener una lista con bullets de acciones de remediación a corto, mediano y largo plazo para todos los hallazgos de seguridad que descubrió.
Cuando obtienes acceso a un host
Una vez que logras la ejecución de comandos en un host, es momento de agregarlo como "Exploited" al apéndice apropiado.
También documentarás los pasos para este compromiso inicial en el tutorial de compromiso.
Internal Network Compromise Walkthrough
Walkthrough Summary
Detailed Walkthrough
Appendix
Exploited Hosts
Exploited Hosts
Para el apéndice Hosts explotados , completa una tabla con las siguientes columnas para cada host:
Host
El nombre y la dirección IP del host. E.j., “HOST01
(192.158.1.38
)”
Scope
Indica “External
” o “Internal
”, dependiendo de si el host está expuesto al exterior o si es interno (por ejemplo, en una DMZ).
Method
Describe el método de explotación utilizado para comprometer el host. E.j., “Command injection on web application.”
Notes
Incluye cualquier nota adicional sobre el anfitrión. E.j., “Domain Controller for target.htb.”
Para el tutorial de compromiso, comience revisando el campo Resumen del tutorial . Realice los ajustes necesarios y compruebe si le parece correcto. Si lo necesita, puede reformularlo con sus propias palabras; de lo contrario, puede dejarlo como está.
Detailed Walkthrough
Para el Detailed Walkthrough , documentarás los pasos relacionados con el host que acabas de explotar.
Utilice la siguiente estructura, que se divide en dos partes:
En ambas partes, excluya cualquier hallazgo no relacionado con la ruta de ataque más corta para comprometer el dominio. Escriba en tercera persona, refiriéndote a tí mismo como "el pentester".
Bullet Point List: Manténgala concisa y enfocada. Está bien tener varios puntos para un mismo hallazgo, pero no exagere. No incluya imágenes, bloques de código ni detalles superfluos.
Detailed Walkthrough: Describa los pasos detalladamente en un documento. Sea muy descriptivo y explique cada técnica o acción en detalle, al menos una vez. Incluya abundantes imágenes y bloques de código; en caso de duda, opte por incluir demasiados en lugar de demasiados. Agregue comentarios pertinentes cuando corresponda, como reconocer la eficacia de las medidas de seguridad.
A medida que se comprometen más hosts durante el pentesting, este campo se irá llenando gradualmente, lo que dará como resultado un recorrido completo de la cadena de ataque al final.
Cuando conseguimos root en un host
Una vez que haya obtenido el privilegio local más alto en un host (root o SYSTEM), complete los siguientes campos:
Internal Network Compromise Walkthrough
Detailed Walkthrough
Appendix
Changes/Host Cleanup
Primero, tómese un momento para recordar todos los cambios que realizó en el host desde que se estableció. Esto podría incluir acciones como agregar un shell web, transferir un ejecutable, crear un usuario local, etc.
Incluso si revirtió un cambio, como eliminar un script de PoC después de usarlo, es importante documentarlo en el informe. La transferencia podría haber generado una alerta de EDR, y el cliente necesitará saber si formó parte de la prueba de penetración o de una posible brecha de seguridad.
Después de compilar su lista, agregue una tabla al apéndice Cambios/Limpieza del host con las siguientes columnas:
Host
El nombre y la dirección IP del host. E.j. “HOST01
(192.158.1.38
)
Scope
Indica “External
” o “Internal
”, dependiendo de si el host está expuesto al exterior o si es interno (por ejemplo, en una DMZ).
Change/Cleanup Needed
Una descripción del cambio realizado. Si implica la creación o transferencia de un archivo, incluya el MD5 sum. E.j. “Uploaded a web shell to /var/www/html/shell.php
. MD5: 6ea3393fd7a4544d2fda0e42d7634013
”
Asegúratede agregar un encabezado antes de la tabla para identificar a qué host se refieren los cambios.
Después de documentar los cambios, incluye los pasos para este compromiso en el campo Detailed Walkthrough, tanto en la lista de bullets como en la descripción detallada.
Consulta el trigger “Cuando obtienes acceso a un host” para obtener orientación sobre cómo estructurar este campo.
Cuando se compromete a un usuario
Una vez que obtenga el control de un usuario, ya sea obteniendo sus contraseñas, hash NTLM o cualquier otro medio, agregue esta información al apéndice correspondiente.
Appendix
Compromised Users
Recomiendo crear una tabla para usuarios locales y otra para cada dominio de Active Directory donde se haya comprometido a un usuario. Como alternativa, puede crear una tabla independiente para usuarios locales en cada host si le resulta más conveniente.
Las tablas deben incluir las siguientes columnas:
Username
The username for the user. E.g., “www-data
”
Method
The method you used to gain control over this user. E.g., “Kerberoasted”
Notes
Notes about the user. For local users, specify the host they belong to. If the user has a specific purpose, mention that too. E.g., “HOST01
’s local user for Tomcat service.”
Como siempre, asegúrese de que las tablas estén precedidas por un encabezado que identifique el host o dominio con el que están asociadas.
Cuando capturamos una flag
¡Capturaste una flag! ¡Excelente trabajo! Ahora, agrégala al apéndice correspondiente:
Apéndice
Banderas descubiertas
Recomiendo utilizar una sola tabla con las siguientes columnas:
Columna
Explicación
Bandera #
El número de la bandera. Ordena las filas en orden ascendente. Por ejemplo, "9".
Anfitrión
El nombre del host donde se encontró la bandera. Por ejemplo, " HOST01
"
Valor de la bandera
El valor exacto de la bandera tal como se encontró.
Ubicación de la bandera
Dónde se encontró la bandera. Si estaba en un archivo, proporcione la ruta completa. Por ejemplo, " /root/flag.txt
"
Método utilizado
El método usado para acceder a la bandera sin permiso. Por ejemplo, "Escalada de privilegios mediante derechos de sudo sobre el wget
binario".
Cuando el compromiso termina
Al finalizar su participación, si siguió la metodología de activación, su informe debería estar completo en más del 90 %. Solo falta completar los campos restantes y pulirlos.
Los campos que es necesario rellenar o revisar son:
Resumen ejecutivo
Descripción general de la evaluación y recomendaciones
Resumen de la remediación
Corto plazo
Mediano plazo
A largo plazo
Apéndice
Revisión de contraseñas de dominio
Ahora que tiene un recorrido completo de la ruta de ataque en el campo Recorrido detallado, es momento de completar la sección Descripción general de la evaluación y recomendaciones del Resumen ejecutivo.
En esta sección, proporcionará un resumen claro de la estrategia de ataque y las conclusiones generales de la interacción. Evite el lenguaje técnico, las viñetas y los bloques de código, ya que esta parte está dirigida a un público sin conocimientos técnicos.
Comience con un párrafo sobre su evaluación general de su postura de seguridad. Reflexione sobre los hallazgos de seguridad y lo que revelan sobre las prácticas de seguridad del cliente. Por ejemplo, si ningún ataque de robo de contraseñas tuvo éxito, elogie su sólida política de contraseñas.
Luego, escribe un párrafo para cada hallazgo de seguridad en la cadena de ataque. Explica cada vulnerabilidad en términos sencillos que cualquiera pueda entender (sin parecer condescendiente) e incluye sugerencias directas para solucionarlo.
El texto predeterminado para este campo está bien escrito, así que consérvelo e inserte su propio texto donde se indica.
Después, revise los campos de remediación a corto plazo , mediano plazo y largo plazo . Para este momento, debería tener acciones de remediación relacionadas con los hallazgos de seguridad específicos enumerados. Sin embargo, también es importante agregar recomendaciones que aborden la postura de seguridad general de la organización.
Por ejemplo, si muchos hallazgos se relacionan con software obsoleto con CVE conocidos, debería recomendar la revisión y mejora de sus procedimientos de actualización de software. Además, ofrezca consejos generales, como realizar auditorías de seguridad periódicas y mantenerse al día con las mejores prácticas.
Un apéndice no incluido en la plantilla SysReptor pero recomendado por el material del curso es Revisión de contraseña de dominio .
En este apéndice, se proporcionarán estadísticas sobre las contraseñas de los usuarios del dominio de Active Directory tras la vulneración y el volcado del dominio NTDS.dit
. Las estadísticas clave que se deben incluir son:
Número de hashes obtenidos
Número de hashes únicos
Porcentaje de hashes descifrados
Contraseñas más utilizadas
Desglose de la longitud de la contraseña
Para generar estas estadísticas, recomiendo usar el script DPAT de Python. Utilice las estadísticas más detalladas que proporciona y cree tablas para ellas en el apéndice.
Por último, revise su informe completo a fondo y añada los últimos retoques necesarios. Revíselo varias veces. Si tiene tiempo, tómese un descanso cuando considere que el informe está listo, consúltelo con la almohada y léalo de nuevo a la mañana siguiente con una perspectiva fresca.
¡Y ahí lo tienes, un informe completo! Envíalo y listo.
Conclusión
A la mayoría de los evaluadores de penetración les encanta profundizar en el aspecto técnico del hacking, pero les aterra redactar el informe después. Si te interesan los aspectos técnicos de las pruebas de penetración, redactar informes para altos ejecutivos y otros profesionales del sector probablemente no sea lo tuyo.
Pero recuerde, el informe final de un trabajo, junto con otros entregables, es lo que el cliente realmente nos paga. No es solo una formalidad molesta, es la razón principal por la que nuestro cliente nos contrató.
Espero que esta publicación te ayude a escribir un excelente informe para tu intento de examen HTB CPTS.
Última actualización
¿Te fue útil?