This page looks best with JavaScript enabled

Usando Obsidian como herramienta para crear notas en procesos de Pentesting

 ·   ·   10 min read  ·  Autor - Snifer

Durante los ultimos 6 meses fui dejando de a poco la herramienta CherryTree1 que me estuvo acompañando durante mucho tiempo, para tomar mis notas personales como tambien para registrar los logs y pruebas de concepto que son descubiertas durante un proceso de Pentesting.

Se tiene actualmente una nueva versión 2.0 del Template puedes ver al finalizar la entrada la referencia completa.

Uno de los puntos negativos que fui viendo en CherryTree1 fue el no poder tener la seguridad de que mis notas y apuntes se encuentren seguros, y lo menciono por que comence a tener problemas aleatorios como ser cierre inesperado, al realizar algun registro, el cheat principal no abria correctamente llegando a tener que esperar hasta 10 minutos o más para utilizarlo, con todo ello me propuse realizar la migración a Obsidian.

Template de Vault

Durante la migración y el uso que llevo con Obsidian, identifique la posibilidad de extender y tratar de automatizar muchas tareas que realizo regularmente teniendo un acceso a la información de manera organizada.

Seguro piensa que tan organizado puedes tener en comparación del trabajo que hagas o registres en CherryTree1, ya que ambos permiten realizar un arbol de directorios y tener una jerarquia. En esta entrada verás hasta que punto podemos configurar o automatizar algunos procesos teniendo unos “reportes” con ayuda de Plugins adicionales en la herramienta.

Además tengo pensando ir actualizando esta bóveda, ya que será un template especifico para el registro de vulnerabilidades ya que Obsidian2 nos permite compartir el Vault.

Ahora si te gustaria que comparta el Vault que voy manejando para los procesos de Bug Bounty con gusto lo comparto así te permitirá tener de una forma ordenada tus datos, aclarando que este formato es una forma de manejar el contenido de mis notas puede servirte a ti, o directamente generar, modificar y tener el tuyo propio.

¿Que es Obsidian?

Obsidian2 es un editor de texto para generar notas a partir de ficheros Markdown, lo cual nos permite realizar texto enriquecido permitiendonos migrar a cualquier otro tipo de herramienta. Un detalle a tomar en cuenta es que tu eres dueño de tus datos, y aún mas cuando manejas de datos de terceros o en un proceso de pentesting.

Al menos a mi, no me gusta la política de herramientas como Notion por mencionar alguna, puesto que ellos tienen acceso a tu información y llego a desconfiar si llegan a ingresar o visualizar directamente nuestra información.

Instalación

Para la instalación tenemos disponible desde la página oficial, basta con realizar la descarga e instalar segun tu sistema operativo el paquete correspondiente no procedo a dar un detalle de la instalación ya que es sencillo.

¿Obsidian es gratuito?

Si, es totalmente gratuito lo que tiene un coste es el cifrado de tus notas y sincronización con un entorno propio desarrollado por los creadores de la herramienta, pero tu mismo puedes realizar el proceso de sincronización con el servicio que desees utilizar, en mi caso particular uso el plugin de git para sincronizar mi vault con gitlab.

Si te gustaria contar con el servicio de sincronización y ahora que viene pronto la versión mobile, puedes pensar adquirirlo por el precio de 4$ por mes el servicio es denominado Sync3

Puedes colaborar al proyecto formando parte de uno de los siguientes niveles.

  • Personal
    • 100% Gratuito, sin registro, acceso a Plugins y soporte de la comunidad.
  • Catalist
    • Soporte para el desarrollo, acceso previo a funciones nuevas de Obsidian, Badge en el foro y Discord los canales oficiales. Además de darte un acceso a canal de desarrollo.
  • Contando con los siguientes niveles:
    • Insider 25$
    • Supporter 50$
    • VIP 100$
  • Commercial
    • Como su nombre lo indica es para uso comercial, soporte prioritario y el costo es de 50$ por año, por cuenta.

En mi caso desde principios de año pague la licencia, como Insider4 apoyando de esta manera al proyecto. Vale aclarar que no es necesario que realices ningun pago para utlizar Obsidian depende de ti si te brinda algun apoyo o no el uso de la misma para valorar el trabajo de los desarrolladores.

Plugins

Los plugins permite extender la funcionalidad por defecto de Obsidian, estos son creados por la comunidad que engloba permitiendonos tener muchas funcionalidades como ser un extractor de contenido de un sitio solo a traves de la URL, contar con un calendario integrado en la herramienta, tener un buscador directo en Google, Wikipedia, Duckduckgo a un solo click desde la herramienta, si procedo a explicar aún más les aseguro que no terminaria de especificar cada uno de ellos, o al menos de los que uso actualmente.

En este vault Template, estarán solo los necesarios para llegar a trabajar conforme se adicione algo nuevo repito aunque suene algo pesado lo iremos actualizando.

Configuración del Vault de Pentesting

Como lo mencione anteriormente este Vault es un template para cada pentest que estes realizando, permitiendo de este modo trabajar con la herramienta y tener resultados adicionales, reportes durante el proceso por ahora generamos ciertos datos en base a las vulnerabilidades que vayamos reportando, conforme vaya pasando el tiempo este vault template lo iré actualizando con nuevas “funcionalidades” por lo tanto puedes dar el fork o estrella para seguir el proyecto.

Por defecto se tiene el siguiente arbol de directorios.

  • Vault_name:
    • **001-Vulnerabilidades : ** Notas de las vulnerabilidades identificadas tienen 4 notas como ejemplo.
    • 002-Template: Este directorio corresponde, a los Templates a ser usados en el Proyecto. Para realizar la insercción se debe ejecutar Ctrl + p Insert Template y seleccionar el template que deseamos.
    • 003-Reportes: Directorio donde se tiene el detalle en tablas que son generados automáticamente, en base al contenido de la carpeta “001 Vulnerabilidades."
    • img: Directorio donde se encuentran las imagenes que vayas cargando al Vault.
    • Reporte General.md: Esta nota esta pensada para tener un reporte directo de los datos que se generen, seguro con el tiempo se vaya enriqueciendo.

Safe mode

Una vez que descargues y abras el Vault desde Obsidian tendrás que dar a “Turn off safe mode” con el cual habilitaremos el uso de Plugins de terceros lo cual nos permite extender aún mas la funcionalidad de Obsidian.

Registrar una nueva vulnerabilidad

Cuando desees registrar una nueva vulnerabilidad tienes que utilizar el comando ctrl + n y se generará un nuevo fichero, el cual debes de asignarle un nombre.

Despues presionando el comando ctrl + p nos permitira llamar a un nuevo template registrando Insert Template.

En este caso tenemos un unico template por lo tanto se llenara una cabecera con YAML teniendo el siguiente contenido.

---
title: {{title}}
scope: 
description: 
solution: 
level: 
value:
date: {{date}}
---
  • title: Se registrara de forma automática con el nombre del fichero, por lo tanto si no es el nombre que daras a la vulnerabilidad puedes modificarlo directamente.
  • scope: Cual es el sistema que se afectado por la vulnerabilidad que se identificó.
  • description: detalle breve de lo que se identificó.
  • solution: Cual es la solución para lo identificado.
  • level: La vulnerabilidad es de Riesgo Crítico, Alto, Medio o Bajo
  • value: Este punto nos permitira posteriormente ordenar los hallazgos bajo Critico primeros, segundo Alto y sucesivamente para ello tendremos en cuenta la siguiente tabla de valores.

  • date: La fecha es generada de manera automática por que lleva la formula {{date}}

Reportes

No estoy seguro de especificar en este apartado o mencionar como tal que son Reportes pero al menos se quiere tener un vistazo general de los datos que vamos encontrando y estos sean generados de manera automática, exceptuando la torta que se tiene en el fichero Reporte General.

En la sección de Reportes contamos con dos ficheros, en este caso usamos el plugin dataview5 que a traves de los datos del YAML nos permite realizar consultas como si se tratase de una base de datos, llegando a extraer información segun lo que necesitemos.

  1. Reporte Vulnerabilidades
    • En el reporte de vulnerabilidad mostramos unicamente el Nombre de la vulnerabilidad, cual es el host vulnerable, y el nivel.

  1. Reporte Soluciones
    • El reporte de soluciones esta para mostrar cual es la mitigación y como se debe realizar.

Cabe resaltar que este proceso por ahora se tiene es bastante simple, y durante los próximos días, iremos de ver actualizando y cuando se realice un cambio significativo crearé una nueva entrada.

Extracción de datos

En los datos iniciales de registro de cada vulnerabilidad se tiene el campo value correspondiente a un texto específico siendo esto debido a que en el reporte de Vulnerabilidades ordenamos a partir de dicho valor.

```dataview
table title AS Nombre, scope AS "Host Vulnerable", level AS Nivel
FROM "001 Vulnerabilidades"
sort value desc

Como veran en la siguiente captura en el caso del Reporte General se hace el llamando a Reporte de Vulnerabilidades y Reporte de Soluciones contando con un detalle en un solo fichero.

Generación de gráficos

Todos los gráficos es posible realizar con ayuda del plugin Obsidian Charts, para generar un nuevo gráfico debes de hacer uso del comando Ctrl + P despues buscar Obsidian Charts y seleccionar.

Despues podemos registrar segun el tipo de gráfico que deseemos, el formulario es bastante descriptivo, llegando a registrar cada uno de los datos y tener el gráfico realizado en un par de segundos o quizás minutos.

Torta con las vulnerabilidades

Por defecto contamos con este gráfico realizado en la sección de Reportes

  • labels: Puedes agregar o quitar los valores respectivos
  • series: Nos permite crear la torta con los valores respectivos.
    • title: Titulo
    • data: Los valores de cada campo que registramos en labels.
```chart
type: pie
labels: [Criticos, Altos, Medios, Bajos]
series:
  - title: Vulnerabilidades
    data: [2,3,12,1]
tension: 0.2
width: 40%
labelColors: true
fill: false

El resultado llega a ser el siguiente, estoy con la idea de que esta torta se automática con el fin de contar con los datos directamente desde una salida pero aún no logre pillar la tuerca.

Convertir de Markdown a HTML, PDF, o DOCX

Seguro más de uno se preguntara generar un reporte de manera directa con los datos que generemos en el vault de Obsidian, para ello dejenme decirles que aun no existe una forma rápida o automatizada para hacerlo, o al menos no identifique algun proceso para ello.

Pero tenemos un par de alternativas, el uso de pandoc como lo mostre previamente en la entrada de Realizando reportes de Pentesting en Markdown como se explica en la entrada realizada con anterioridad se hace uso de un template para generarlo aunque se debe tener todo el contenido en un solo fichero, ese mismo proceso utilicé para realizar el reporte de la certificación CRTP, que por cierto debo el review.

El otro es que realicemos el export de los ficheros por medio de pandoc, mantiendo en la salida la extensión que deseemos en el caso de darle algun formato en específico podemos usar estilos.

1
pandoc vuln1.md vuln2.md vuln3.md -o Output.docx

Además actualmente obsidian cuenta ya con una extensión dedicada para exportar el fichero Markdown por medio de Pandoc directamente desde la herramienta. Cuando identifique algun proceso funcional, les aseguro que compartire.

Funciones extras dentro de Obsidian

Una de los plugins que me llama bastante la atención es Meld Encrypt, que hace uso de AES con modo GCM, por lo tanto al realizar el registro de una nota y como los datos son importantes que son registrados.

El siguiente contenido los cifre con el plugin, podrían descifrarlos? la clave esta en las narices

%%🔐 3ztsIDp6mO8ENKDGzm/O3eD/pZ+Eqjq3olK5xtzhmSwnIatbrB9O0rHZ2098bhL9uSyyrszrrmgIZmJ8vuAp7cwxkKP3+J5fwVObSiFhM/4SwlDzRVfEZTPyA2t2Yuzo5wgA 🔐%%

Funcionalidades a agregar

Se que quizás estas tareas me lleve un poco mas de tiempo, para encontrar el flujo adecuado.

  • Contar con un centro de control por medio del uso de Botones para generar dinámicamente los nuevos hallazgos esto con el fin de hacerlo mucho más rapido, y el mismo se vea reflejado en el reporte permitiendonos automatizar un poco más las tareas.
  • Generar gráficos basandonos con los datos que se obtengan de los reportes.
  • Permitir generar un informe, reporte en documento Word o PDF desde el mismo Obsidian.

Descargar Vault


«Yo soy una parte de todo aquello que he encontrado en mi camino.» - Alfred Tennyson.

Que otra funcionalidad agregarias al template? dejame conocerlo en los comentarios, recordaste que estaremos en los próximos dias con una entrada para exportar los ficheros Markdown a un CherryTree.

Puedes seguir el uso de Obsidian como herramienta de pentesting en el siguiente https://sniferl4bs.com/series/obsidian/

Regards,
Snifer

Share on
Support the author with

Avatar
WRITTEN BY
Snifer
Creador del proyecto Snifer@L4b's, Consultor en Seguridad Informática.