Aftermath 是一个基于 Swift 的开源事件响应框架。
防御者可以利用 Aftermath 来收集并随后分析来自受感染主机的数据。 Aftermath 可以从 MDM 部署(理想情况下),但它也可以独立于受感染用户的命令行运行。
Aftermath 首先运行一系列收集模块。其输出将通过-o
或--output
选项写入您选择的位置,或者默认情况下写入/tmp
目录。
收集完成后,可以从最终用户的磁盘中提取最终的 zip/存档文件。然后可以使用指向存档文件的--analyze
参数来分析该文件。其结果将被写入/tmp
目录。然后,管理员可以解压缩该分析目录,并查看本地收集的数据库的解析视图、包含文件创建、上次访问和上次修改日期(如果可用)的文件时间线,以及包含该文件的故事情节元数据、数据库更改和浏览器信息,以潜在地追踪感染媒介。
要在本地构建 Aftermath,请从存储库克隆它
git clone https://github.com/jamf/aftermath.git
cd
进入 Aftermath 目录
cd < path_to_aftermath_directory >
使用 Xcode 构建
xcodebuild -scheme " aftermath "
cd
进入 Release 文件夹
cd build/Release
善后奔跑
sudo ./aftermath
Aftermath 需要 root 权限,并且具有完整磁盘访问权限 (FDA)才能运行。 FDA 可以被授予运行它的终端应用程序。
Aftermath 运行的默认用法
sudo ./aftermath
指定某些选项
sudo ./aftermath [option1] [option2]
示例
sudo ./aftermath -o /Users/user/Desktop --deep
sudo ./aftermath --analyze < path_to_collection_zip >
用户可以使用--logs
或-l
参数向 Aftermath 传递统一日志谓词的文本文件。传递给 Aftermath 的文件必须是文本文件,并且每个谓词需要以换行符分隔。此外,每个行项目将是一个字典对象。字典中的键将是用户想要调用该谓词的任何内容。例如,如果您想查看所有登录事件,我们将创建一个谓词并将其命名为login_events
。
login_events: processImagePath contains "loginwindow" and eventMessage contains "com.apple.sessionDidLogin
tcc: process == "tccd"
由于eslogger
和tcpdump
在附加线程上运行,并且目标是从它们收集尽可能多的数据,因此它们会在 aftermath 退出时退出。因此,eslogger json 文件或 tcpdump 生成的 pcap 文件的最后一行可能会被截断。
版本下有一个 Aftermath.pkg 可用。该包装已签名并经过公证。它将在/usr/local/bin/
安装后续二进制文件。这将是通过 MDM 进行部署的理想方式。由于它安装在bin
中,因此您可以像这样运行后续操作
sudo aftermath [option1] [option2]
要卸载 aftermath 二进制文件,请运行发行版中的AftermathUninstaller.pkg
。这将卸载二进制文件并运行aftermath --cleanup
以删除 aftermath 目录。如果任何后果目录驻留在其他地方,则通过使用--output
命令,用户/管理员有责任删除所述目录。
--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/)
该项目利用开源 TrueTree 项目,由 Jaron Bradley 编写并获得许可。