Cuando nos encontramos ante un incidente, una de las primeras necesidades es recoger información del sistema que nos permita empezar a investigar: qué procesos se están ejecutando, qué conexiones mantiene, qué mecanismos de persistencia existen o qué actividad podemos recuperar de sus registros.
En Windows, PowerTriage nació precisamente para facilitar esa primera adquisición mediante PowerShell. Con el tiempo, el proyecto ha ido incorporando otras plataformas, cada una con sus particularidades.
Hoy quería presentar PowerTriage macOS CE, un colector de live response y triage forense escrito en Bash y desarrollado específicamente para macOS, como parte de mi proyecto técnico, personal e independiente PowerForensics®.
Un script para empezar a investigar
La idea es facilitar una primera recogida de evidencias utilizando comandos nativos de macOS, con un único script transportable y sin descargar dependencias de ejecución.
Podemos seleccionar un perfil de adquisición o indicar los módulos que necesitamos. Esto permite ajustar la recogida al escenario: una primera revisión del equipo, una adquisición más amplia o una recopilación centrada en procesos, red y persistencia.
Entre las áreas contempladas están:
- Contexto del sistema, versión de macOS, discos, montajes y estado de FileVault y SIP.
- Procesos, jerarquía, sesiones y archivos abiertos.
- Interfaces, conexiones, rutas, DNS, proxy y configuración de red.
- Persistencia mediante LaunchAgents, LaunchDaemons, tareas y otros mecanismos.
- Unified Logs, registros de instalación e informes de diagnóstico.
- Artefactos de usuarios y navegadores, cuando los permisos permiten acceder a ellos.
La disponibilidad de cada artefacto depende del sistema, de las aplicaciones instaladas y de los permisos efectivos durante la ejecución.
En macOS, sudo no lo resuelve todo
Este es uno de los puntos más importantes al adquirir evidencias en macOS: los privilegios de root y el Acceso total al disco son controles distintos.
Ejecutar el script con sudo permite acceder a más información del sistema, pero no concede automáticamente acceso a todos los datos protegidos de los usuarios. También influye la aplicación desde la que se lanza: Terminal, una herramienta de gestión remota u otro proceso.
PowerTriage realiza comprobaciones sobre rutas representativas y registra si el acceso parece disponible, limitado o no se puede determinar. Esa comprobación es orientativa; el manifiesto y los estados de recogida permiten revisar qué se adquirió realmente y qué quedó bloqueado.
Esto importa al interpretar los resultados: que un artefacto no se haya podido recoger no significa que no exista.
Una primera adquisición
Después de descargar PowerTriage_macOS.sh desde el repositorio del proyecto, podemos consultar la ayuda:
bash ./PowerTriage_macOS.sh --helpPara realizar una primera recogida, dando por hecho que /Volumes/Evidence es nuestro destino de evidencias:
sudo bash ./PowerTriage_macOS.sh \--minimal \--output-dir=/Volumes/Evidence
El perfil --minimal incluye contexto, sistema, live response, red, persistencia, logs y seguridad. No incorpora la adquisición de bases de datos de actividad de usuarios ni perfiles de navegadores.
Para una recogida más amplia:
sudo bash ./PowerTriage_macOS.sh \--full \--since=48h \--output-dir=/Volumes/Evidence
El perfil --full añade módulos de usuarios, navegadores y sistema de archivos. El parámetro --since=48h establece la ventana retrospectiva de Unified Logs; no es un filtro temporal global para todos los artefactos.
También podemos seleccionar módulos concretos:
sudo bash ./PowerTriage_macOS.sh \--live \--network \--persistence \--output-dir=/Volumes/Evidence
Una recogida amplia también necesita límites
Algunos almacenes de macOS pueden contener grandes cantidades de información. Por eso, PowerTriage diferencia entre el perfil seleccionado y la profundidad de la adquisición.
El alcance predeterminado, --fast, mantiene una recogida acotada. La opción --deep amplía determinadas adquisiciones, incluyendo intentos de recogida limitada de FSEvents, Spotlight y DocumentRevisions, además de un .logarchive.
--full no activa automáticamente --deep ni la recogida sensible.
Determinados artefactos de Messages, índices de Mail y bases de datos del llavero requieren la opción explícita --include-sensitive. Conviene decidir su uso según el alcance autorizado de la investigación.
Qué obtenemos al terminar
Además de los artefactos adquiridos, PowerTriage genera archivos para revisar la ejecución y comprobar sus resultados:
| Archivo | Utilidad |
|---|---|
artifact_manifest.csv | Relaciona origen, destino, estado y datos de los artefactos. |
collection_status.csv | Registra operaciones completadas, parciales, omitidas o bloqueadas. |
hashes.sha256 | Permite comprobar la integridad de los archivos de salida. |
SUMMARY.md | Resume la adquisición y sus límites. |
powertriage_macos.log y errors.log | Documentan la ejecución y los errores. |
Por defecto se conservan el directorio de salida y el ZIP. El archivo comprimido dispone también de un fichero separado con su hash SHA-256.
La salida incluye una timeline compatible con Chronos basada en los tiempos de modificación de los artefactos de origen. Hay que interpretarla con ese alcance: una fecha de modificación, por sí sola, no demuestra ejecución ni una acción concreta del usuario.
Qué debemos tener presente
PowerTriage macOS realiza una adquisición sobre un sistema en funcionamiento. La propia ejecución puede modificar su estado y los archivos pueden cambiar mientras se copian.
Los permisos, las protecciones de macOS y las bases de datos abiertas también pueden limitar la recogida. Por eso es importante revisar los resultados parciales y los errores junto con los archivos obtenidos.
La línea inicial 0.1.x se presenta como una versión preliminar en desarrollo. Antes de incorporarla a un procedimiento operativo, es necesario validarla en equipos representativos del entorno donde se vaya a utilizar.
Código y documentación
PowerTriage macOS forma parte de las herramientas de adquisición de PowerForensics®. El código y la documentación están disponibles en el repositorio público:
Seguiré compartiendo ejemplos de uso y la evolución de las distintas versiones. Si lo pruebas en un laboratorio, el feedback sobre compatibilidad, artefactos y problemas de adquisición será especialmente útil para continuar mejorándolo.

0 Comentarios