# Informes de pentesting

Hacer un buen pentest no se trata solo de explotar cosas. Al final, una de las cosas que más importa es **cómo transmitimos ese conocimiento**. Y seamos honestos/as: para la mayoría, **documentar hallazgos es la parte más tediosa del trabajo**.

Puedes explotar una vulnerabilidad de forma compleja o creativa, pero **si después** **la explicación es pobre o desordenada, el trabajo pierde brillo**. No comunica el valor real del hallazgo, ni su impacto.

Una buena redacción debería, como mínimo:

* **Definir claramente** qué se encontró, cómo y por qué es importante.
* **Detallar de forma estructurada paso a paso** cómo se reproduce, incluyendo:
  * Dónde se identificó (sección, *endpoint*, funcionalidad, etc.).
  * Qué petición, comando o *payload* se usaron.
  * Qué resultado se obtuvo como evidencia clara de la presencia de la vulnerabilidad o explotación exitosa.
* **Explicar el impacto real y potencial** para los sistemas afectados, los usuarios, el negocio o el cumplimiento normativo.
* **Indicar las medidas necesarias para solventar la vulnerabilidad o mitigar el riesgo**, junto con buenas prácticas si aplica.

Y volviendo al tema de lo tedioso que puede ser escribir todo esto... es ahí donde entra la IA. Usar IAs para generar una primera versión del hallazgo, estructurada y clara, que después puede adaptarse al contexto de la vulnerabilidad identificada o explotada. Así se puede enfocar más el tiempo en la práctica y menos en la documentación.

***

## Redacción de una vulnerabilidad

La plantilla está diseñada para **automatizar la redacción técnica de vulnerabilidades** en informes de pentesting. Utiliza un prompt optimizado para ChatGPT (GPT-4o) que genera una entrada completa a partir de los datos reales de un hallazgo. En resumen:

* Una estructura estandarizada de 6 secciones: Título, Definición, Descripción, Impacto, Solución y Referencias.
* Un bloque editable tipo YAML donde se cargan los datos del hallazgo (parámetro vulnerable, URL, método, impacto, etc.).&#x20;
  * **IA no local:** Si se usa una IA que no se encuentre en local **hay riesgo del compromiso de la privacidad de los datos** debido a no tener un control total del manejo de datos, por lo que, en este caso, se deja el **ejemplo anonimizado y luego se adapta en local**.
  * **IA local:** En caso de usarla en local y se pueda **asegurar la privacidad total de los datos**, se pueden rellenar con datos reales. (Ver [ia-en-local](https://www.xtormin.com/general/ia/ia-en-local "mention"))
* Reglas de estilo claras para que el resultado sea coherente y profesional.
* Instrucciones para revisar el contenido generado en un **lienzo editable** antes de exportar la vulnerabilidad redactada.

### Prompt

<https://github.com/xtormin/PentestPrompts/blob/1c66b4ed16bfc85911c33bb07315839a7d273135/Informes/vulnerability-report.md>

### Ejemplo

Para este ejemplo se ha usando **ChatGPT con GPT-4o**. Cuando se ejecuta el prompt, se abre un lienzo donde es posible realizar los cambios necesarios y luego pedir que nos exporte un fichero .md que podemos utilizar y adaptar con la información confidencial en nuestra herramienta de reporting favorita.

La siguiente captura muestra la **salida por defecto y sin adaptar tras usar el prompt anterior**. Como se puede observar, esto da una plantilla que luego **debe revisarse ante posibles (y probables) alucinaciones**, por ello el lienzo es una buena forma de hacer nuestras adaptaciones directamente, pedir mejoras concretas, etc.

<figure><img src="https://940481291-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFPk1C70Fp5SRurFLmfzj%2Fuploads%2FJytHjJbdR3mf6WVNL1jO%2Fimage.png?alt=media&#x26;token=ae6ad544-2de7-4075-bfe0-6d3f10f81d8f" alt=""><figcaption><p>Lienzo de ChatGPT editable</p></figcaption></figure>

Una vez se hayan terminado las adaptaciones, se puede solicitar el fichero en formato markdown con el siguiente prompt:

```markdown
Genera un fichero descargable en formato .md con todo el contenido del lienzo
```
