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
