
Framework de respuesta a incidentes para macOS basado en Swift, diseñado para recopilar y analizar artefactos del sistema, incluyendo marcas de tiempo del sistema de archivos, datos del navegador, registros unificados, mecanismos de persistencia y árboles de procesos, con análisis integrado y generación de líneas de tiempo.

Aftermath es un framework de respuesta a incidentes de código abierto basado en Swift.
Aftermath puede ser utilizado por defensores para recolectar y posteriormente analizar los datos del host comprometido. Aftermath puede ser desplegado desde un MDM (idealmente), pero también puede ejecutarse de forma independiente desde la línea de comandos del usuario infectado.
Aftermath primero ejecuta una serie de módulos para la recolección. El resultado se escribirá en la ubicación que elijas, mediante la opción -o o --output, o por defecto, se escribe en el directorio /tmp.
Una vez completada la recolección, el archivo zip/archivo final se puede extraer del disco del usuario final. Este archivo se puede analizar usando el argumento --analyze apuntando al archivo comprimido. Los resultados se escribirán en el directorio /tmp. El administrador puede descomprimir ese directorio de análisis y ver una vista analizada de las bases de datos recolectadas localmente, una línea de tiempo de archivos con las fechas de creación, último acceso y última modificación (si están disponibles), y una historia que incluye metadatos de archivos, cambios en la base de datos e información del navegador para rastrear potencialmente el vector de infección.
Para compilar Aftermath localmente, clónalo desde el repositorio
git clone https://github.com/jamf/aftermath.git
cd al directorio de Aftermath
cd <ruta_al_directorio_de_aftermath>
Compila usando Xcode
xcodebuild -scheme "aftermath"
cd a la carpeta Release
cd build/Release
Ejecuta aftermath
sudo ./aftermath
Aftermath necesita ejecutarse como root, así como tener acceso completo al disco (FDA) para funcionar. FDA se puede otorgar a la aplicación Terminal en la que se está ejecutando.
El uso predeterminado de Aftermath ejecuta
sudo ./aftermath
Para especificar ciertas opciones
sudo ./aftermath [opcion1] [opcion2]
Ejemplos
sudo ./aftermath -o /Users/usuario/Desktop --deep
sudo ./aftermath --analyze <ruta_al_zip_de_recoleccion>
Los usuarios tienen la capacidad de pasar a Aftermath un archivo de texto con predicados de registro unificado usando los argumentos --logs o -l. El archivo que se pasa a Aftermath debe ser un archivo de texto y cada predicado debe estar separado por nueva línea. Además, cada elemento de línea será un objeto de diccionario. La clave en el diccionario será lo que el usuario desee llamar a este predicado. Por ejemplo, si desea ver todos los eventos de inicio de sesión, crearemos un predicado y lo titularemos login_events.
login_events: processImagePath contains "loginwindow" and eventMessage contains "com.apple.sessionDidLogin
tcc: process == "tccd"
Debido a que eslogger y tcpdump se ejecutan en hilos adicionales y el objetivo es recopilar la mayor cantidad de datos posible, salen cuando aftermath sale. Debido a esto, la última línea del archivo json de eslogger o el archivo pcap generado por tcpdump puede estar truncada.
Hay un Aftermath.pkg disponible en Releases. Este paquete está firmado y notariado. Instalará el binario aftermath en /usr/local/bin/. Esta sería la forma ideal de implementar via MDM. Dado que se instala en bin, puedes ejecutar aftermath así
sudo aftermath [opcion1] [opcion2]
Para desinstalar el binario aftermath, ejecuta el AftermathUninstaller.pkg desde Releases. Esto desinstalará el binario y también ejecutará aftermath --cleanup para eliminar los directorios aftermath. Si algún directorio aftermath reside en otro lugar, debido al uso del comando --output, es responsabilidad del usuario/administrador eliminar dichos directorios.
--analyze -> analyze the results of the Aftermath results
usage: --analyze <path_to_aftermath_collection_file>
--collect-dirs -> specify locations of (space-separated) directories to dump those raw files
usage: --collect-dirs <path_to_dir> <path_to_another_dir>
--deep or -d -> perform a deep scan of the file system for modified and accessed timestamped metadata
WARNING: This will be a time-intensive, memory-consuming scan.
--disable -> disable a set of aftermath features that may collect personal user data
Available features to disable: browsers -> collecting browser information | browser-killswitch -> force-closes browers | -> databases -> tcc & lsquarantine databases | filesystem -> walking the filesystem for timestamps | proc-info -> collecting process information via TrueTree and eslogger | slack -> slack data | ul -> unified logging modules | all -> all aforementioned options
usage: --disable browsers browser-killswitch databases filesystem proc-info slack
--disable all
--es-logs -> specify which Endpoint Security events (space-separated) to collect (defaults are: create exec mmap). To disable, see --disable es-logs
usage: --es-logs setuid unmount write
--logs -> specify an external text file with unified log predicates (as dictionary objects) to parse
usage: --logs /Users/<USER>/Desktop/myPredicates.txt
-o or --output -> specify an output location for Aftermath collection results (defaults to /tmp)
usage: -o Users/user/Desktop
--pretty -> colorize Terminal output
--cleanup -> remove Aftermath folders from default locations ("/tmp", "/var/folders/zz/)
Este proyecto utiliza el proyecto de código abierto TrueTree, escrito y licenciado por Jaron Bradley.