OS X Auditor

OS X Auditor ist ein kostenloses Computer-Forensik-Tool für Mac OS X.
OS X Auditor analysiert und hasht die folgenden Artefakte auf dem laufenden System oder einer Kopie eines Systems, das Sie analysieren möchten:
- die Kernel-Erweiterungen
- die System-Agents und -Daemons
- die Agents und Daemons von Drittanbietern
- die alten und veralteten System- und Drittanbieter-Startup-Elemente
- die Benutzer-Agents
- die heruntergeladenen Dateien der Benutzer
- die installierten Anwendungen
Es extrahiert:
- die unter Quarantäne gestellten Dateien der Benutzer
- den Safari-Verlauf, Downloads, TopSites, LastSession, HTML5-Datenbanken und LocalStorage der Benutzer
- die Firefox-Cookies, Downloads, FormHistory, Berechtigungen, Places und Signons der Benutzer
- den Chrome-Verlauf und den archivierten Verlauf, Cookies, Anmeldedaten, TopSites, Webdaten, HTML5-Datenbanken und LocalStorage der Benutzer
- die sozialen Netzwerke und E-Mail-Konten der Benutzer
- die WLAN-Zugangspunkte, mit denen das geprüfte System verbunden war (und versucht, diese zu geolokalisieren)
Es sucht auch nach verdächtigen Schlüsselwörtern in den .plist-Dateien selbst.
Es kann den Ruf jeder Datei überprüfen auf:
- Team Cymru's MHR
- VirusTotal
- Ihrer eigenen lokalen Datenbank
Es kann alle Protokolle aus den folgenden Verzeichnissen in einem Zipball zusammenfassen:
- /var/log (-> /private/var/log)
- /Library/logs
- das Benutzerverzeichnis ~/Library/logs
Schließlich können die Ergebnisse:
- als einfache Text-Protokolldatei ausgegeben werden (sodass Sie cat-pipe-grep verwenden können… oder einfach grep)
- als HTML-Protokolldatei ausgegeben werden
- an einen Syslog-Server gesendet werden
Autor
Jean-Philippe Teissier - @Jipe_ & al.
Entwicklungsstatus
OS X Auditor WIRD NICHT MEHR GEWARTET - SIE SOLLTEN ES NICHT VERWENDEN
Unterstützung
OS X Auditor begann als Wochenendprojekt und wird nicht mehr gewartet. Es wurde von den großartigen Leuten @ Yelp gegabelt, die osxcollector erstellt haben.
Ich empfehle Ihnen, osxcollector zu verwenden (https://github.com/Yelp/osxcollector)
Installation
Kopieren Sie einfach alle Dateien von GitHub.
Abhängigkeiten
Wenn Sie vorhaben, OS X Auditor auf einem Mac auszuführen, erhalten Sie volle Unterstützung für das Parsen von Plist-Dateien mit der OS X Foundation über pyobjc:
Wenn Sie pyobjc nicht installieren können oder OS X Auditor auf einem anderen Betriebssystem als Mac OS X ausführen möchten, könnten Sie Probleme beim Parsen von Plist-Dateien haben:
pip install biplist
pip install plist
Diese Abhängigkeiten werden entfernt, sobald ein funktionierendes natives Plist-Modul in Python verfügbar ist.
Ausführung
- OS X Auditor läuft gut mit Python >= 2.7.2 (2.7.9 ist in Ordnung). Es läuft noch nicht mit einer anderen Python-Version (aufgrund des Plist-Albtraums).
- OS X Auditor wird gewartet, um mit der neuesten OS X-Version zu funktionieren. Es wird sein Bestes auf älteren OS X-Versionen geben.
- Sie müssen es als root (oder über sudo) ausführen, wenn Sie es auf einem laufenden System verwenden möchten, da es sonst nicht auf einige System- und andere Benutzerdateien zugreifen kann.
- Wenn Sie API-Schlüssel aus Umgebungsvariablen verwenden (siehe unten), müssen Sie
sudo -E verwenden, um die Umgebungsvariablen des Benutzers zu verwenden.
Geben Sie osxauditor.py -h ein, um alle verfügbaren Optionen zu erhalten, und führen Sie es dann mit den ausgewählten Optionen aus.
z.B. [sudo -E] python osxauditor.py -a -m -l localhashes.db -H log.html
Umgebungsvariablen setzen
VirusTotal API:
export VT_API_KEY=aaaabbbbccccddddeeee
Änderungsprotokoll
0.4.3
0.4.2
- ÄNDERUNG: API-Schlüssel aus dem Code in Umgebungsvariablen verschoben
0.4.1
- ÄNDERUNG: Suche nach generischen Hintertüren in LaunchAgentPlist
0.4
- NEU: Extrahiert Ereignisse (Boot/Shutdown, Ein-/Auslagern, sudo-Befehle, USB-Geräte, geöffnete/geschlossene ttys) aus den Systemprotokollen und erstellt eine (noch nicht lesbare) Zeitleiste (-e/eventlogs)
- NEU: Extrahiert die LoginItems der Benutzer
- NEU: Extrahiert die RecentItems der Benutzer
- NEU: Extrahiert die LastSession aus Safari-Artefakten
- NEU: Extrahiert Systemgruppen und Benutzerdetails
- FIX: Falsche os.path.join()-Aufrufe
- FIX: Fehler in der rekursiven ParsePackagesDir()
0.3.1
- NEU: Liefert den Systemnamen, die Version und den Build des geprüften Systems
- NEU: Fähigkeit, installierte Anwendungen zu analysieren (-i/--installedapps)
- NEU: Extrahiert den archivierten Verlauf aus Google Chrome-Artefakten
- NEU: Ein menschenlesbarer HTML-Protokollbericht :)
- FIX: HTMLLog() und SYSLOGLog() behandeln jetzt Ausnahmen
- FIX: ParsePackagesDir() ist jetzt rekursiv und versucht nur, Apps oder Kernel-Erweiterungen zu parsen. Einige DEBUG-Ausgaben hinzugefügt
- FIX: GROSSE UTF-8/UNICODE-Verbesserung
- FIX: .DS_Store- und .localized-Dateien werden in ParsePackagesDir() ignoriert
0.3
- NEU: Fähigkeit, Google Chrome-Artefakte zu parsen (History und archivierte History, Cookies, Login Data, Top Sites, Web Data, HTML5-Datenbanken und lokaler Speicher) mit -b/--browsers
- NEU: Fähigkeit, die WLAN-APs zu extrahieren, mit denen das geprüfte System verbunden war, aus den Airport-Einstellungen, und versucht, diese mit Geomena zu geolokalisieren (-A/--airportprefs). Sie müssen -g/--wifiapgeolocate verwenden, um die Geolokalisierung zu aktivieren (oder GEOLOCATE_WIFI_AP im Code auf True setzen).
- NEU: Fähigkeit, die sozialen Netzwerke und E-Mail-Konten der Benutzer zu extrahieren (-U/--usersaccounts)
- FIX: Fähigkeit, gesperrte SQLite-Datenbanken zu handhaben, insbesondere bei der Überprüfung eines Live-Systems
- FIX: Doppelte Hashes entfernt
- FIX: Bessere Identifizierung von MD5 in der HTML-Ausgabe
- ÄNDERUNG: Zeigt an, ob ein Abschnitt (Startup-Elemente, Paketverzeichnis, DB-Tabellen usw.) leer ist, um die Ausgabe zu klären
- ÄNDERUNG: Die Download-Artefakte (-d/--downloads) enthalten die alten und neuen Standard-Download-Verzeichnisse von Mail.app
0.2.1
- ÄNDERUNG/FIX: Implementierung einer BigFileMd5()-Funktion, um sehr große Dateien zu hashen, MemoryError-Ausnahmen zu vermeiden und den Speicherfußabdruck zu reduzieren
- FIX: UTF-8-Einträge von LSQuarantineEvent in ParseQuarantines()
0.2
- NEU: Fähigkeit, die Ergebnisse an einen entfernten Syslogd-Server zu senden (-S)
- NEU: Fähigkeit, einen Zipball aller auf dem geprüften System gefundenen Protokolldateien zu erstellen (-z)
- ÄNDERUNG: Die Analyse der Startup-Artefakte umfasst die alten und veralteten StartupItems
- ÄNDERUNG: Die Analyse der Startup-Artefakte umfasst die ScriptingAdditions
- ÄNDERUNG: Die Analyse der Quarantäne-Artefakte umfasst die alten QuarantineEvents für Mac OS X-Systeme <= 10.6
- ÄNDERUNG: Große Verbesserung der Plist-Handhabung mit der Python ⟷ Objective-C-Brücke (PyObjC) und OS X Foundation
- ÄNDERUNG: Einige Änderungen an den Optionsparametern (-t, -l)
- ÄNDERUNG: Lizenz von CC zu GPL geändert
- ÄNDERUNG: Debug-Level sind jetzt konsistenter in den Ausgabeprotokollen
- ÄNDERUNG: Eine kleine Änderung am Bootstrap-CSS
- ÄNDERUNG: Die VirusTotal-Suche erfolgt jetzt im Bulkmode
- FIX: Ein Fehler in ParseLaunchAgents() bei Plist-Dateien, die sowohl Program- als auch ProgramArguments-Schlüssel enthalten
0.1
Design & Fähigkeiten

Artefakte
Benutzer
-
Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2
-
Library/Preferences/com.apple.LaunchServices.QuarantineEvents
-
Library/Preferences/com.apple.loginitems.plist
-
Library/Mail Downloads/
-
Library/Containers/com.apple.mail/Data/Library/Mail Downloads
-
Library/Accounts/Accounts3.sqlite
-
Library/Containers/com.apple.mail/Data/Library/Mail/V2/MailData/Accounts.plist
-
Library/Preferences/com.apple.recentitems.plist
-
Firefox
- Library/Application Support/Firefox/Profiles/
- cookies.sqlite
- downloads.sqlite
- formhistory.sqlite
- places.sqlite
- signons.sqlite
- permissions.sqlite
- addons.sqlite
- extensions.sqlite
- content-prefs.sqlite
- healthreport.sqlite
- webappsstore.sqlite
- Library/Safari/
- Downloads.plist
- History.plist
- TopSites.plist
- LastSession.plist
- Databases
- LocalStorage
- Library/Application Support/Google/Chrome/Default/
- History
- Archived History
- Cookies
- Login Data
- Top Sites
- Web Data
- databases
- Local Storage
System
- /System/Library/LaunchAgents/
- /System/Library/LaunchDaemons/
- /System/Library/ScriptingAdditions/
- /System/Library/StartupItems/Library/ScriptingAdditions/
- /System/Library/Extensions/
- /System/Library/CoreServices/SystemVersion.plist
- /Library/LaunchAgents/
- /Library/LaunchDaemons/
- /Library/StartupItems/
- /Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist
- /Library/logs
- /var/log
- /etc/localtime
- StartupParameters.plist
- /private/var/db/dslocal/nodes/Default/groups/admin.plist
- /private/var/db/dslocal/nodes/Default/users
TODO
- Benutzerinformationen aus /private/var/db/dslocal/nodes/Default/users extrahieren
Verwandte Arbeiten
Disk Arbitrator
Disk Arbitrator ist ein Mac OS X-Forensik-Dienstprogramm, das entwickelt wurde, um dem Benutzer zu helfen, korrekte forensische Verfahren während der Abbildung eines Datenträger-Geräts sicherzustellen. Disk Arbitrator ist im Wesentlichen eine Benutzeroberfläche für das Disk Arbitration-Framework, das es einem Programm ermöglicht, an der Verwaltung von Block-Speichergeräten teilzunehmen, einschließlich des automatischen Einhängens von Dateisystemen. Wenn aktiviert, blockiert Disk Arbitrator das Einhängen von Dateisystemen, um ein Lesen-Schreiben-Einhängen und die Verletzung der Integrität der Beweise zu vermeiden.
https://github.com/aburgh/Disk-Arbitrator
Volafox
volafox auch bekannt als 'Mac OS X Memory Analysis Toolkit' wird in Python 2.x entwickelt
https://code.google.com/p/volafox/
Mandiant Memoryze(tm) for the Mac
Memoryze for the Mac ist eine kostenlose Speicherforensik-Software, die Incident-Respondern hilft, Böses im Speicher zu finden… auf Macs.
Memoryze for the Mac kann Speicherabbilder erfassen und/oder analysieren. Die Analyse kann an Offline-Speicherabbildern oder auf Live-Systemen durchgeführt werden.
http://www.mandiant.com/resources/download/mac-memoryze
Volatility MacMemoryForensics
https://code.google.com/p/volatility/wiki/MacMemoryForensics
Lizenz
OS X Auditor
Copyright (C) 2013-2015 Jean-Philippe Teissier
Dieses Programm ist freie Software: Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, entweder Version 3 der Lizenz oder (nach Ihrer Wahl) jeder späteren Version weitergeben und/oder modifizieren.
Dieses Programm wird in der Hoffnung verbreitet, dass es nützlich sein wird, aber OHNE JEDE GEWÄHRLEISTUNG; sogar ohne die stillschweigende Gewährleistung der MARKTGÄNGIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Siehe die GNU General Public License für weitere Details.
Sie sollten eine Kopie der GNU General Public License zusammen mit diesem Programm erhalten haben. Wenn nicht, siehe http://www.gnu.org/licenses/.
Bootstrap und JQuery haben ihre eigenen GPL-kompatiblen Lizenzen.