Hackpuntes para Obsidian: un tema para notas de pentest, red team y CTF
Tabla de contenido
Todas mis notas de auditoría acaban en Obsidian: la salida de nmap, los payloads que funcionaron (y los que no), las credenciales que van saliendo y el borrador de los hallazgos para el informe. Después de un par de años, el tema por defecto se me quedaba corto. Los comandos se leían con ligaduras, un -> se convertía en una flecha, y no había forma rápida de distinguir de un vistazo una vulnerabilidad de una credencial o de una nota de OPSEC.
Así que hice Hackpuntes, un tema con el aspecto de este blog: fondo #0d1117, acento turquesa, títulos con un ligero brillo y JetBrains Mono en todas partes. La versión 1.3.0 añade lo que más echaba de menos en el día a día de un pentest.
🚨 Callouts pensados para una auditoría
Los callouts son las cajas de color de Obsidian. Se escriben como una cita que empieza por [!tipo], y el tema añade ocho tipos nuevos con su propio icono y color:
> [!vuln] SQL injection en /login #critical
> El parámetro `username` se concatena directamente en la consulta SQL.
> [!creds] Credenciales
> `svc_backup : Summer2026!`, reutilizada en SSH.
> [!flag]- user.txt
> Plegado por defecto: un `-` detrás del tipo lo cierra, un `+` lo deja abierto.
| Callout | Alias | Para qué |
|---|---|---|
[!recon] | [!enum] | Puertos, servicios y versiones |
[!vuln] | [!finding] | Qué está roto y dónde |
[!exploit] | Payloads y pasos para reproducirlo | |
[!shell] | Cómo se consiguió la shell y con qué usuario | |
[!creds] | [!credentials] | Usuarios, contraseñas, hashes y tokens |
[!flag] | user.txt, root.txt y evidencias | |
[!loot] | Ficheros y datos extraídos | |
[!opsec] | Ruido, detecciones y qué evitar |
La idea es poder recorrer una nota larga con la vista y saber al momento dónde está cada cosa. Cuando repasas una máquina tres semanas después, encontrar las credenciales en un bloque amarillo ahorra mucho scroll.
Los callouts propios de Obsidian (
[!note],[!tip],[!warning]…) siguen funcionando y toman los colores de la paleta activa.
🔖 La severidad, a la vista
Las etiquetas #critical, #high, #medium, #low e #info se convierten en píldoras con el color de su severidad, también en español (#critica, #alta, #media, #baja). Funcionan en el texto, en las tablas y en el editor, así que la tabla de hallazgos de una máquina queda lista para pasarla al informe:
| # | Hallazgo | Severidad |
| - | -------- | --------- |
| 1 | SQL injection en el login | #critica |
| 2 | Subida de ficheros sin restricciones | #alta |
☑️ Checklists con más de dos estados
Una checklist de enumeración casi nunca es solo “hecho” o “pendiente”. Hay cosas en curso, cosas que hay que revisar, cosas fuera de alcance y, de vez en cuando, ese [!] que te cambia la tarde. El tema da a cualquier carácter entre corchetes su propia caja de color, como en una terminal:
- [x] Fuerza bruta de directorios
- [/] Fuzzing de parámetros en /api/v2
- [!] SQL injection en /login
- [k] Credenciales en .git/config
- [?] ¿El filtro de subida es solo de cliente?
- [-] Kerberoasting (sin Active Directory en el alcance)
En total hay 22 estados: [>] para dejarlo para más tarde, [l] para un host, [S] para el bounty… La lista completa está en el README del repositorio.
🎨 Cuatro paletas
La paleta por defecto es la del blog, en modo oscuro y claro. Con el plugin Style Settings se pueden elegir otras tres:
- Pastel: colores suaves sobre fondo gris azulado, con tres fondos oscuros y 14 colores de acento. Salió de la sugerencia de un lector en LinkedIn.
- Phosphor green y Phosphor amber: verde o ámbar sobre negro, como una terminal de fósforo de los 80.
Si además activas las CRT scanlines y los bloques de código como ventanas de terminal, el resultado es bastante difícil de distinguir de una sesión de los ochenta:
⚠️ Las paletas y el resto de opciones necesitan Style Settings (Settings → Community plugins → Browse). Los callouts, las etiquetas, las casillas y los diagramas funcionan sin ningún plugin.
🧪 Una bóveda de ejemplo: Kraken, de recon a informe
Un tema se entiende mejor con notas reales, así que junto al tema he publicado obsidian-hackpuntes-vault
, una bóveda lista para abrir con el tema ya instalado. Está organizada por fases (01_recon, 02_enum, 03_exploit, 04_privesc, 05_report), trae plantillas para máquinas, hallazgos y un diario de la auditoría, y una máquina ficticia, Kraken, resuelta de principio a fin:
- Un escaneo inicial con un share SMB anónimo que menciona al usuario
svc_backup. - Una SQL injection en el login que podría permitir a un usuario malintencionado entrar como
admin. - Una subida de ficheros que solo valida la extensión en el navegador y acaba en una shell como
www-data. - La contraseña de la base de datos reutilizada por
svc_backupen SSH. - Un script de backup que root ejecuta con
tar *en una carpeta escribible: wildcard injection y root.
Cada paso usa los callouts, las etiquetas y las casillas como se usarían en una auditoría, y la nota final reúne los hallazgos con su severidad y un diagrama con el camino de ataque.
Con Color numbered folders activado, cada carpeta numerada toma su color en el explorador. Es una tontería, pero con veinte máquinas abiertas se agradece.
⚙️ Instalación
Desde Obsidian: Settings → Appearance → Themes → Manage, busca Hackpuntes y pulsa Install and use.
Para la bóveda de ejemplo, descarga el ZIP del repositorio (o usa Use this template en GitHub), descomprímelo y ábrelo con Open folder as vault. Empieza por la nota Start here y luego Theme tour, que reúne todos los elementos del tema en una sola página.
🛠️ Bajo el capó
Algunas decisiones que no se ven pero se notan:
- Sin ligaduras. En un tema de notas de pentest,
!=,->o--tienen que verse tal cual se escriben. Un comando copiado de una nota con ligaduras puede acabar con el carácter equivocado, y eso cuesta tiempo en el peor momento. - La fuente va dentro del tema. JetBrains Mono está incrustada en
theme.css, recortada a los caracteres que se usan (latín, puntuación, flechas y los caracteres de dibujo de cajas de la salida detree), para que el tema se vea igual en el móvil sin instalar nada. - Menos de 100 KB y ninguna petición de red. La revisión de temas de Obsidian avisa de los ficheros grandes, y en un portátil de auditoría tampoco interesa que un tema cargue nada de fuera.
⭐ Y ahora qué
El tema y la bóveda son open source:
- Tema: github.com/JavierOlmedo/obsidian-hackpuntes-theme
- Bóveda de ejemplo: github.com/JavierOlmedo/obsidian-hackpuntes-vault
Si os resulta útil, una ⭐ en GitHub ayuda a que llegue a más gente, y las ideas y fallos son bienvenidos en los issues. La paleta pastel salió de un comentario, así que la próxima función puede salir del vuestro.






