Glosario
LaunchAgent / LaunchDaemon (inicio automático)
Listas de propiedades que indican a launchd que inicie un programa automáticamente, por usuario o en todo el sistema; clásico de persistencia.
Un LaunchAgent es una lista de propiedades (.plist) que indica a launchd que inicie automáticamente un programa en nombre de un usuario, normalmente al iniciar sesión (RunAtLoad), según una programación o manteniéndolo en ejecución (KeepAlive). Los agentes de un usuario están en ~/Library/LaunchAgents y los de todos los usuarios, en /Library/LaunchAgents. Un LaunchDaemon es su equivalente para todo el sistema, en /Library/LaunchDaemons: se ejecuta como root durante el arranque, sin que nadie inicie sesión. Los agentes y daemons de Apple están en /System/Library, en el volumen de sistema de solo lectura.
Por qué importa en una investigación
Estas carpetas figuran entre los lugares de persistencia más habituales en macOS. Los actualizadores y utilidades legítimos las usan a diario, y el malware también, porque un plist es fácil de colocar y sobrevive a los reinicios. El plist indica en ProgramArguments el programa que se ejecuta, así que el propio archivo es la mejor evidencia, si todavía existe.
FSEvents suele conservar la historia cuando el archivo ya no está. Un registro en Users/<nombre>/Library/LaunchAgents/ o Library/LaunchDaemons/ muestra que el plist se creó, renombró, modificó o eliminó, y el node ID enlaza un nombre temporal con el definitivo. FSEvents Parser genera un hallazgo ante escrituras directamente en estas carpetas. FSEvents no dice qué contenía el plist ni si launchd lo cargó: combínelo con el contenido del plist, los Unified Logs y los rastros del propio programa.
Ejemplo
En la muestra sintética, com.example.updater.plist llega a la carpeta de agentes del usuario mediante un renombrado:
Users/dana.whitlock/Library/LaunchAgents/com.example.updater.plist.tmp:Created;Modified;File- el nombre
.tmpy luegocom.example.updater.plist:Renamed;File, mismo node ID com.example.updater.plist:InodeMetaMod;File
Los tres están en la ventana del log de 10:09:55 a 10:23:18 UTC, poco después de una escritura en TCC.db: una secuencia que merece explicación.
Términos relacionados
Filtre por LaunchAgents en FSEvents Parser y vea este paso de persistencia en contexto en el análisis paso a paso de una exfiltración.