Aftermath ist ein Swift-basiertes Open-Source-Framework für die Reaktion auf Vorfälle.
Verteidiger können Aftermath nutzen, um die Daten des kompromittierten Hosts zu sammeln und anschließend zu analysieren. Aftermath kann (idealerweise) über ein MDM bereitgestellt werden, kann aber auch unabhängig von der Befehlszeile des infizierten Benutzers ausgeführt werden.
Aftermath führt zunächst eine Reihe von Modulen zur Sammlung aus. Die Ausgabe wird entweder über die Option -o
oder --output
an den Speicherort Ihrer Wahl geschrieben oder standardmäßig in das Verzeichnis /tmp
.
Sobald die Sammlung abgeschlossen ist, kann die endgültige ZIP-/Archivdatei von der Festplatte des Endbenutzers abgerufen werden. Diese Datei kann dann mithilfe des Arguments --analyze
analysiert werden, das auf die Archivdatei verweist. Die Ergebnisse werden in das Verzeichnis /tmp
geschrieben. Der Administrator kann dann dieses Analyseverzeichnis entpacken und eine analysierte Ansicht der lokal gesammelten Datenbanken, eine Zeitleiste der Dateien mit der Dateierstellung, dem letzten Zugriff und den letzten Änderungsdaten (falls verfügbar) sowie eine Storyline sehen, die die Datei enthält Metadaten, Datenbankänderungen und Browserinformationen, um möglicherweise den Infektionsvektor aufzuspüren.
Um Aftermath lokal zu erstellen, klonen Sie es aus dem Repository
git clone https://github.com/jamf/aftermath.git
cd
in das Aftermath-Verzeichnis
cd < path_to_aftermath_directory >
Erstellen Sie mit Xcode
xcodebuild -scheme " aftermath "
cd
in den Release-Ordner
cd build/Release
Führen Sie Nachwirkungen aus
sudo ./aftermath
Um Aftermath ausführen zu können, müssen Sie Root sein und über vollen Festplattenzugriff (FDA) verfügen. Die FDA kann für die Terminalanwendung, in der sie ausgeführt wird, gewährt werden.
Die Standardverwendung von Aftermath wird ausgeführt
sudo ./aftermath
Um bestimmte Optionen festzulegen
sudo ./aftermath [option1] [option2]
Beispiele
sudo ./aftermath -o /Users/user/Desktop --deep
sudo ./aftermath --analyze < path_to_collection_zip >
Benutzer haben die Möglichkeit, Aftermath eine Textdatei mit einheitlichen Protokollprädikaten zu übergeben, indem sie die Argumente --logs
oder -l
verwenden. Die an Aftermath übergebene Datei muss eine Textdatei sein und jedes Prädikat muss durch Zeilenumbrüche getrennt sein. Darüber hinaus ist jede Position ein Wörterbuchobjekt. Der Schlüssel im Wörterbuch gibt an, wie der Benutzer dieses Prädikat nennen möchte. Wenn Sie beispielsweise alle Anmeldeereignisse sehen möchten, erstellen wir ein Prädikat und nennen es login_events
.
login_events: processImagePath contains "loginwindow" and eventMessage contains "com.apple.sessionDidLogin
tcc: process == "tccd"
Da eslogger
und tcpdump
in zusätzlichen Threads ausgeführt werden und das Ziel darin besteht, so viele Daten wie möglich von ihnen zu sammeln, werden sie beendet, wenn Aftermath beendet wird. Aus diesem Grund wird die letzte Zeile der Eslogger-JSON-Datei oder der von TCPDump generierten PCAP-Datei möglicherweise abgeschnitten.
Unter „Releases“ ist ein Aftermath.pkg verfügbar. Dieses Paket ist unterzeichnet und notariell beglaubigt. Die Aftermath-Binärdatei wird unter /usr/local/bin/
installiert. Dies wäre die ideale Möglichkeit für die Bereitstellung über MDM. Da dies in bin
installiert ist, können Sie Aftermath dann wie folgt ausführen
sudo aftermath [option1] [option2]
Um die Aftermath-Binärdatei zu deinstallieren, führen Sie AftermathUninstaller.pkg
aus den Releases aus. Dadurch wird die Binärdatei deinstalliert und auch aftermath --cleanup
ausgeführt, um Aftermath-Verzeichnisse zu entfernen. Wenn sich nach der Verwendung des Befehls --output
Verzeichnisse an anderer Stelle befinden, liegt es in der Verantwortung des Benutzers/Administrators, diese Verzeichnisse zu entfernen.
--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/)
Dieses Projekt nutzt das Open-Source-Projekt TrueTree, das von Jaron Bradley geschrieben und lizenziert wurde.