Aftermath est un cadre de réponse aux incidents open source basé sur Swift.
Les défenseurs peuvent exploiter Aftermath pour collecter puis analyser les données de l’hôte compromis. Aftermath peut être déployé à partir d'un MDM (idéalement), mais il peut également s'exécuter indépendamment de la ligne de commande de l'utilisateur infecté.
Aftermath exécute d'abord une série de modules de collecte. La sortie de ceci sera soit écrite à l'emplacement de votre choix, via l'option -o
ou --output
, soit par défaut, elle est écrite dans le répertoire /tmp
.
Une fois la collecte terminée, le fichier zip/archive final peut être extrait du disque de l'utilisateur final. Ce fichier peut ensuite être analysé à l'aide de l'argument --analyze
pointé sur le fichier d'archive. Les résultats seront écrits dans le répertoire /tmp
. L'administrateur peut ensuite décompresser ce répertoire d'analyse et voir une vue analysée des bases de données collectées localement, une chronologie des fichiers avec la création du fichier, les dates du dernier accès et de la dernière modification (si elles sont disponibles), ainsi qu'un scénario qui inclut le fichier. les métadonnées, les modifications de la base de données et les informations du navigateur pour potentiellement localiser le vecteur d'infection.
Pour créer Aftermath localement, clonez-le depuis le référentiel
git clone https://github.com/jamf/aftermath.git
cd
dans le répertoire Aftermath
cd < path_to_aftermath_directory >
Construire en utilisant Xcode
xcodebuild -scheme " aftermath "
cd
dans le dossier Release
cd build/Release
Courir après
sudo ./aftermath
Aftermath doit être root et disposer d' un accès complet au disque (FDA) pour pouvoir s'exécuter. FDA peut être accordé à l'application Terminal dans laquelle il s'exécute.
L'utilisation par défaut d'Aftermath s'exécute
sudo ./aftermath
Pour spécifier certaines options
sudo ./aftermath [option1] [option2]
Exemples
sudo ./aftermath -o /Users/user/Desktop --deep
sudo ./aftermath --analyze < path_to_collection_zip >
Les utilisateurs ont la possibilité de transmettre à Aftermath un fichier texte de prédicats de journal unifiés à l'aide des arguments --logs
ou -l
. Le fichier transmis à Aftermath doit être un fichier texte et chaque prédicat doit être séparé par une nouvelle ligne. De plus, chaque élément de campagne sera un objet de dictionnaire. La clé dans le dictionnaire sera celle que l'utilisateur souhaite appeler ce prédicat. Par exemple, si vous souhaitez voir tous les événements de connexion, nous allons créer un prédicat et l'intituler login_events
.
login_events: processImagePath contains "loginwindow" and eventMessage contains "com.apple.sessionDidLogin
tcc: process == "tccd"
Étant donné eslogger
et tcpdump
s'exécutent sur des threads supplémentaires et que l'objectif est de collecter autant de données que possible, ils se ferment à la fin des conséquences. De ce fait, la dernière ligne du fichier json eslogger ou du fichier pcap généré à partir de tcpdump peut être tronquée.
Un Aftermath.pkg est disponible sous Releases. Ce paquet est signé et notarié. Il installera le binaire des conséquences sur /usr/local/bin/
. Ce serait le moyen idéal de déployer via MDM. Puisque ceci est installé dans bin
, vous pouvez ensuite exécuter des conséquences comme
sudo aftermath [option1] [option2]
Pour désinstaller le binaire aftermath, exécutez AftermathUninstaller.pkg
à partir des versions. Cela désinstallera le binaire et exécutera également aftermath --cleanup
pour supprimer les répertoires aftermath. Si des répertoires consécutifs résident ailleurs, suite à l'utilisation de la commande --output
, il est de la responsabilité de l'utilisateur/administrateur de supprimer lesdits répertoires.
--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/)
Ce projet s'appuie sur le projet open source TrueTree, écrit et sous licence par Jaron Bradley.