TaskHound: automatizando la detección de tareas programadas peligrosas en entornos Windows

En seguridad ofensiva y defensiva hay piezas del sistema que, por pura costumbre, terminan olvidadas. Todos hablamos de servicios, privilegios, ACLs, claves de registro o GPOs, pero rara vez alguien levanta la mano y pregunta: “Oye, ¿quién está revisando las tareas programadas?”

Y es curioso, porque si llevas unos años en pentesting o en un Red Team medianamente serio, sabes que las Scheduled Tasks son un filón: persistencia silenciosa, automatización privilegiada, ejecución por SYSTEM, credenciales almacenadas en claro (sí, aún pasa), scripts mal ubicados en rutas modificables por usuarios… todo ello funcionando durante años sin que nadie lo cuestione. Son, en esencia, pequeños cronjobs de Windows con una historia de abuso más larga que la documentación oficial.

Durante mis auditorías siempre me encontré con lo mismo: toca revisar máquina a máquina, recorrer directorios SMB o extraer XML manualmente, y luego ponerse a descifrarlos como si fuera arqueología digital. Una tarea pesada, repetitiva y que, en redes grandes, es directamente inabordable sin automatización seria. Así que cuando apareció TaskHound, una herramienta dedicada exclusivamente a enumerar, parsear, clasificar y correlacionar tareas programadas privilegiadas a escala, fue imposible no prestarle atención. Era el tipo de herramienta que muchos llevábamos años improvisando con scripts sueltos, pero nunca con un enfoque completo y sistemático.

TaskHound funciona con una filosofía muy simple: olerse las tareas potencialmente peligrosas igual que BloodHound huele relaciones peligrosas en Active Directory. Su nombre no es casual. La herramienta recorre hosts Windows —locales o remotos— y extrae sus tareas programadas a través de SMB, procesando directamente los XML que Windows almacena en C:\Windows\System32\Tasks. No usa agentes, no depende de WMI ni de PowerShell (aunque puede convivir con ellos), y puede trabajar también en modo offline si ya tienes los XML recolectados por otros medios. Esto último es especialmente útil cuando estás operando en modo OPSEC y no quieres tocar demasiado una máquina comprometida.

Lo potente de TaskHound no es solo que recopile tareas, sino lo que hace con ellas. Cada XML es analizado en profundidad: qué cuenta las ejecuta, si son elevadas, si tienen credenciales almacenadas, qué rutas utilizan, qué acciones disparan, si son world‑writable, si los binarios están en carpetas sospechosas, si la tarea usa triggers curiosos (como eventos específicos del sistema), o si parecen tareas legítimas de Microsoft “tuneadas” por alguien más con malas intenciones. TaskHound toma todos esos datos y los clasifica según riesgo real, no según heurística básica como “esta tarea se ejecuta cada noche”.

Y sí, en 2025 aún es completamente normal encontrarse tareas con credenciales almacenadas que funcionan porque hace años que nadie cambia la contraseña de la cuenta de servicio. O tareas que ejecutan scripts en C:\temp. O cuentas de backup con privilegios absurdos. O persistencias plantadas en un pentest anterior que nadie detectó. TaskHound no solo las ve: te las ordena, te las colorea y te las deja listas para atacarlas o corregirlas.

Pero lo más inteligente de TaskHound es su integración con BloodHound. No se queda en una lista de tareas peligrosas, sino que permite exportar todos los hallazgos en un formato que BloodHound entiende perfectamente. Con eso puedes ampliar tu grafo de ataque con una dimensión que normalmente no existe: rutas basadas en tareas programadas. Esto puede revelar cosas muy interesantes, como:

  • cuentas de servicio privilegiadas que se usan en decenas de máquinas,
  • hosts desde los que un dominio admin podría ejecutar un script viejo y vulnerable,
  • tareas donde SYSTEM ejecuta binarios que tú puedes modificar,
  • rutas laterales que no salen en los análisis típicos de ACLs.

En una red compleja, esa información puede cambiar completamente tu visión del dominio.

En ejercicios ofensivos, TaskHound encaja como pieza natural del flujo de post‑explotación. Después de comprometer un servidor o una máquina de salto, puedes usarlo para descubrir si hay tareas que te proporcionen persistencia limpia, tareas que te permitan ejecutar como SYSTEM, o cuentas de servicio privilegiadas que podrías robar. Incluso tiene soporte para ejecutarse como BOF desde Cobalt Strike, lo que permite hacer enumeraciones discretas sin necesidad de binaries externos en disco. Si eres operador ofensivo, esto te ahorra tiempo y sobre todo reduce ruido.

En definitiva, TaskHound no solo automatiza una tarea que siempre fue tediosa; redefine cómo deberíamos abordar la seguridad de Scheduled Tasks en Windows. Para un Red Team es una herramienta que abre puertas. Para un Blue Team es una herramienta que las cierra. Y para quienes nos gusta comprender cómo realmente funcionan los entornos Windows más allá de la superficie, es una forma de ver patrones que antes estaban ocultos entre miles de XML.

Si en tu arsenal ya tienes BloodHound, Sharphound, Carp, Spring4Shell scanners, Kerberoasting tools, scripts custom de post-explotación y la clásica colección de PowerShelles oscuros, TaskHound encaja perfectamente en esa filosofía de “mapear lo que otros no ven”. 

Proyectohttps://github.com/1r0BIT/TaskHound

Comentarios