GhostTask: crea tareas programadas de forma sigilosa manipulando el registro

Si bien el uso de tareas programadas como medio de persistencia no es un enfoque novedoso, los atacantes han ido mejorando sus técnicas para ocultar sus tareas maliciosas. Un método notable consiste en eliminar la clave de registro SD, que representa el descriptor de seguridad, ocultando así la tarea programada de las investigaciones forenses. Inspirándose en la investigación de WithSecure sobre la manipulación o tampering de tareas programadas, explicaron la viabilidad de crear una tarea programada únicamente mediante la manipulación de la clave de registro. Este enfoque puede evitar la generación de registros de eventos de creación de tareas programadas, como 4698 y 106, ofreciendo un método más sigiloso para establecer la persistencia.

A raíz de esto Chris Au aka netero1010 ha desarrollado una PoC para demostrar la creación de tareas programadas mediante la manipulación directa del registro. Se trata de la herramienta GhostTask que ofrece las siguientes características:

  • Crea tareas programadas con un descriptor de seguridad restrictivo, haciéndolas invisibles para todos los usuarios.
  • Establece tareas programadas directamente a través del registro, evitando la generación de registros de eventos estándar de Windows.
  • Proporciona soporte para modificar tareas programadas existentes sin generar registros de eventos de Windows.
  • Admite la creación remota de tareas programadas (mediante el uso de Silver Ticket especialmente diseñado).
  • Admite la ejecución en C2 con el módulo de ejecución PE en memoria (por ejemplo, memexec de BruteRatel)

Limitaciones

  • Requiere privilegios elevados: La creación y modificación de tareas programadas con GhostTask requiere privilegios de "NT AUTHORITY/SYSTEM".
  • Reinicio del sistema: Para que las tareas creadas con GhostPack se activen, es necesario reiniciar el sistema o esperar al siguiente reinicio programado.

Compilación

x86_64-w64-mingw32-gcc GhostTask.c -o GhostTask.exe -lrpcrt4
Uso
Usage: GhostTask.exe        

Ejemplos
1. Crea una nueva tarea programada que llamará a notepad.exe todos los lunes y jueves a las 2:12 p.m.:
GhostTask.exe localhost add demo "cmd.exe" "/c notepad.exe" LAB\Administrator weekly 14:12 monday,thursday

2. Modifica una tarea programada existente con un nuevo tipo de programación, usuario y programa:
GhostTask.exe localhost add "Microsoft\Office\Office Automatic Updates 2.0" "cmd.exe" "/c notepad.exe" LAB\employee001 daily 20:37

3. Crea una nueva tarea programada en una computadora remota: 
Como se analiza en el blog WithSecure (Extra: sección Movimiento lateral), se puede utilizar un Silver Ticket especialmente diseñado para modificar claves de registro asociadas a tareas programadas en archivos.
Esto le permite crear una tarea programada de forma remota.
kerberos::golden /domain:LAB.CORP /sid:S-1-5-21-1111111111-1111111111-1111111111 /aes256:[aes256hash] /user:Administrator /service:cifs /target:dc01.lab.corp /sids:S-1-5-18 /endin:600 /renewmax:10080
Crea una nueva tarea programada en el servidor DC01 de forma remota, que iniciará notepad.exe todos los días a las 3:19 p.m.:
GhostTask.exe DC01.lab.corp add demo "cmd.exe" "/c notepad.exe" LAB\Administrator daily 15:19

Comentarios