Aftermath es un marco de respuesta a incidentes de código abierto y basado en Swift.
Los defensores pueden aprovechar Aftermath para recopilar y posteriormente analizar los datos del host comprometido. Aftermath se puede implementar desde un MDM (idealmente), pero también puede ejecutarse independientemente de la línea de comando del usuario infectado.
Aftermath ejecuta primero una serie de módulos de recopilación. La salida de esto se escribirá en la ubicación que elija, mediante la opción -o
o --output
, o de forma predeterminada, se escribirá en el directorio /tmp
.
Una vez que se completa la recopilación, el archivo zip/archivo final se puede extraer del disco del usuario final. Luego, este archivo se puede analizar utilizando el argumento --analyze
apuntado al archivo comprimido. Los resultados de esto se escribirán en el directorio /tmp
. Luego, el administrador puede descomprimir ese directorio de análisis y ver una vista analizada de las bases de datos recopiladas localmente, una línea de tiempo de los archivos con la creación del archivo, las fechas de último acceso y de última modificación (si están disponibles) y una historia que incluye el archivo. metadatos, cambios en la base de datos e información del navegador para rastrear potencialmente el vector de infección.
Para compilar Aftermath localmente, clónelo desde el repositorio
git clone https://github.com/jamf/aftermath.git
cd
en el directorio Aftermath
cd < path_to_aftermath_directory >
Construir usando Xcode
xcodebuild -scheme " aftermath "
cd
en la carpeta de lanzamiento
cd build/Release
Ejecutar después
sudo ./aftermath
Aftermath debe ser root y tener acceso completo al disco (FDA) para poder ejecutarse. Se puede otorgar FDA a la aplicación Terminal en la que se está ejecutando.
El uso predeterminado de Aftermath se ejecuta
sudo ./aftermath
Para especificar ciertas opciones
sudo ./aftermath [option1] [option2]
Ejemplos
sudo ./aftermath -o /Users/user/Desktop --deep
sudo ./aftermath --analyze < path_to_collection_zip >
Los usuarios tienen la posibilidad de pasar a Aftermath un archivo de texto de predicados de registro unificados utilizando los argumentos --logs
o -l
. Se requiere que el archivo que se pasa a Aftermath sea un archivo de texto y cada predicado debe estar separado por una nueva línea. Además, cada elemento de línea será un objeto de diccionario. La clave en el diccionario será como 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 subprocesos adicionales y el objetivo es recopilar la mayor cantidad de datos posible de ellos, se cierran cuando sale aftermath. Debido a esto, la última línea del archivo json de eslogger o del archivo pcap generado a partir de tcpdump puede estar truncada.
Hay un Aftermath.pkg disponible en Lanzamientos. Este paquete está firmado y certificado ante notario. Instalará el binario posterior en /usr/local/bin/
. Esta sería la forma ideal de implementar a través de MDM. Dado que esto está instalado en bin
, puede ejecutar aftermath como
sudo aftermath [option1] [option2]
Para desinstalar el binario posterior, ejecute AftermathUninstaller.pkg
desde las Versiones. Esto desinstalará el binario y también ejecutará aftermath --cleanup
para eliminar los directorios posteriores. Si algún directorio resultante reside en otro lugar, después del 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 aprovecha el proyecto de código abierto TrueTree, escrito y con licencia de Jaron Bradley.