Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
osxcollector — Ein forensisches Toolkit zur Sammlung und Analyse von Beweisen für OS X | Kitploit
Tools/GitHubGitHub/yelparchive/osxcollector
FestplattenforensikOSINT (Open-Source-Intelligence)SpeicherforensikForensikDigitale ForensikIncident ResponseArchived
GitHubyelparchive/osxcollector

osxcollector

Ein forensisches Toolkit zur Sammlung und Analyse von Beweisen für OS X

Repository anzeigen
1.9k239vor 7 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

osxcollector

Build Status PyPI

OSXCollector Handbuch

OSXCollector ist ein Toolkit für die forensische Beweissammlung und -analyse für OSX.

Forensische Sammlung

Das Sammlungsskript läuft auf einer potenziell infizierten Maschine und gibt eine JSON-Datei aus, die die Zielmaschine beschreibt. OSXCollector sammelt Informationen aus Plists, SQLite-Datenbanken und dem lokalen Dateisystem.

Forensische Analyse

Mit der forensischen Sammlung ausgestattet, kann ein Analyst Fragen beantworten wie:

  • Ist diese Maschine infiziert?
  • Wie ist diese Malware dorthin gelangt?
  • Wie kann ich eine weitere Infektion verhindern und erkennen?

Yelp automatisiert die Analyse der meisten OSXCollector-Läufe und wandelt seine Ausgabe in eine leicht lesbare und umsetzbare Zusammenfassung nur der verdächtigen Dinge um. Schauen Sie sich das OSXCollector Output Filters-Projekt an, um zu erfahren, wie Sie die automatisierte OSXCollector-Ausgabeanalyse optimal nutzen können.

Durchführen der Sammlung

osxcollector.py ist eine einzelne Python-Datei, die ohne Abhängigkeiten auf einer Standard-OSX-Maschine läuft. Das macht es sehr einfach, die Sammlung auf jeder Maschine durchzuführen – kein Ärger mit brew, pip, Konfigurationsdateien oder Umgebungsvariablen. Kopieren Sie einfach die einzelne Datei auf die Maschine und führen Sie sie aus:

sudo osxcollector.py ist alles, was es braucht.

root@kitploit:~
$ sudo osxcollector.py
Wrote 35394 lines.
Output in osxcollect-2014_12_21-08_49_39.tar.gz

Wenn Sie gerade das GitHub-Repository geklont haben, befindet sich osxcollector.py im Verzeichnis osxcollector/, also müssen Sie es wie folgt ausführen:

root@kitploit:~
$ sudo osxcollector/osxcollector.py

WICHTIG: Stellen Sie bitte sicher, dass der Befehl python auf Ihrem Mac OS X den standardmäßig mitgelieferten Python-Interpreter verwendet und nicht durch z.B. die über brew installierte Python-Version überschrieben wird. OSXCollector ist auf einige native Python-Bindungen für OS X-Bibliotheken angewiesen, die in anderen Python-Versionen als der ursprünglich auf Ihrem System installierten möglicherweise nicht verfügbar sind. Alternativ können Sie osxcollector.py ausführen und dabei explizit die gewünschte Python-Version angeben:

root@kitploit:~
$ sudo /usr/bin/python2.7 osxcollector/osxcollector.py

Die JSON-Ausgabe des Sammlers wurde zusammen mit einigen hilfreichen Dateien wie Systemprotokollen in eine .tar.gz-Datei gebündelt, um sie an einen Analysten zu übergeben.

osxcollector.py hat auch viele nützliche Optionen, um die Funktionsweise der Sammlung zu ändern:

  • -i INCIDENT_PREFIX/--id=INCIDENT_PREFIX: Legt eine Kennung fest, die als Präfix der Ausgabedatei verwendet wird. Der Standardwert ist osxcollect.

    root@kitploit:~
    $ sudo osxcollector.py -i IncontinentSealord
    Wrote 35394 lines.
    Output in IncontinentSealord-2014_12_21-08_49_39.tar.gz
    

    Seien Sie kreativ bei den Vorfallnamen, es macht es einfacher, über den Schmerz zu lachen.

  • -p ROOTPATH/--path=ROOTPATH: Legt den Pfad zum Wurzelverzeichnis des Dateisystems fest, auf dem die Sammlung ausgeführt werden soll. Der Standardwert ist /. Dies ist ideal, um die Sammlung auf einem Datenträgerabbild durchzuführen.

    root@kitploit:~
    $ sudo osxcollector.py -p '/mnt/powned'
    
  • -s SECTION/--section=SECTION: Führt nur einen Teil der vollständigen Sammlung aus. Kann mehrmals angegeben werden. Die vollständige Liste der Abschnitte und Unterabschnitte ist:

Details der Sammlung

Der Sammler gibt eine .tar.gz-Datei aus, die alle gesammelten Artefakte enthält. Das Archiv enthält eine JSON-Datei mit dem Großteil der Informationen. Zusätzlich sind nützliche Protokolle aus den Systemlogs des Zielsystems enthalten.

Häufige Schlüssel

Jeder Datensatz

Jede Zeile der JSON-Datei zeichnet 1 Information auf. Es gibt einige gemeinsame Schlüssel, die in jedem JSON-Datensatz vorkommen:

  • osxcollector_incident_id: Eine eindeutige ID, die von jedem Datensatz geteilt wird.
  • osxcollector_section: Der Abschnitt oder die Art der Daten, die dieser Datensatz enthält.
  • osxcollector_subsection: Der Unterabschnitt oder eine detailliertere Beschreibung der Art der Daten, die dieser Datensatz enthält.
Dateidatensätze

Für Datensätze, die Dateien repräsentieren, gibt es eine Reihe nützlicher Schlüssel:

  • atime: Die Zugriffszeit der Datei.
  • ctime: Die Erstellungszeit der Datei.
  • mtime: Die Änderungszeit der Datei.
  • file_path: Der absolute Pfad zur Datei.
  • md5: MD5-Hash des Dateiinhalts.
  • sha1: SHA1-Hash des Dateiinhalts.
  • sha2: SHA2-Hash des Dateiinhalts.

Für Datensätze, die heruntergeladene Dateien repräsentieren:

  • xattr-wherefrom: Eine Liste mit den Quell- und Referrer-URLs für die heruntergeladene Datei.
  • xattr-quarantines: Eine Zeichenkette, die beschreibt, welche Anwendung die Datei heruntergeladen hat.
SQLite-Datensätze

Für Datensätze, die eine Zeile einer SQLite-Datenbank repräsentieren:

  • osxcollector_table_name: Der Tabellenname, aus dem die Zeile stammt.
  • osxcollector_db_path: Der absolute Pfad zur SQLite-Datei.

Für Datensätze, die Daten darstellen, die einem bestimmten Benutzer zugeordnet sind:

  • osxcollector_username: Der Name des Benutzers

Zeitstempel

OSXCollector versucht, Zeitstempel in menschenlesbare Datums-/Zeitzeichenfolgen im Format YYYY-mm-dd hh:MM:ss umzuwandeln. Es verwendet Heuristiken, um verschiedene Zeitstempel automatisch zu identifizieren:

  • Sekunden seit Epoche
  • Millisekunden seit Epoche
  • Sekunden seit 2001-01-01
  • Sekunden seit 1601-01-01

Abschnitte

version-Abschnitt

Die aktuelle Version von OSXCollector.

system_info-Abschnitt

Sammelt grundlegende Informationen über das System:

  • system name
  • node name
  • release
  • version
  • machine
kext-Abschnitt

Sammelt die Kernel-Erweiterungen von:

  • /System/Library/Extensions
  • /Library/Extensions
startup-Abschnitt

Sammelt Informationen über die LaunchAgents, LaunchDaemons, ScriptingAdditions, StartupItems und andere Anmeldeobjekte von:

  • /System/Library/LaunchAgents
  • /System/Library/LaunchDaemons
  • /Library/LaunchAgents
  • ~/Library/LaunchAgents
  • /Library/LaunchDaemons
  • /System/Library/ScriptingAdditions
  • /Library/ScriptingAdditions
  • /System/Library/StartupItems
  • /Library/StartupItems
  • ~/Library/Preferences/com.apple.loginitems.plist

Weitere Informationen zum Start von Mac OS X finden Sie hier: http://www.malicious-streams.com/article/Mac_OSX_Startup.pdf

applications-Abschnitt

Hasht installierte Anwendungen und sammelt Installationsverlauf von:

  • /Applications
  • ~/Applications
  • /Library/Receipts/InstallHistory.plist
quarantines-Abschnitt

Quarantänen sind im Grunde die Informationen, die notwendig sind, um die Frage 'Sind Sie sicher, dass Sie dies ausführen möchten?' anzuzeigen, wenn ein Benutzer versucht, eine aus dem Internet heruntergeladene Datei zu öffnen. Weitere Details finden Sie in der Apple-Support-Erklärung zu Quarantänen: http://support.apple.com/kb/HT3662

Dieser Abschnitt sammelt auch Informationen von der XProtect-hashbasierten Malware-Prüfung für Quarantänedateien. Das plist befindet sich unter: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/XProtect.plist

XProtect fügt auch Mindestversionen für Internet-Plugins hinzu. Dieses plist befindet sich unter: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/XProtect.meta.plist

downloads-Abschnitt

Hasht alle heruntergeladenen Dateien der Benutzer von:

  • ~/Downloads
  • ~/Library/Mail Downloads
  • ~/Library/Containers/com.apple.mail/Data/Library/Mail Downloads
chrome-Abschnitt

Sammelt die folgenden Informationen aus dem Google Chrome-Webbrowser:

  • Verlauf
  • Archivierter Verlauf
  • Cookies
  • Erweiterungen
  • Anmeldedaten
  • Top-Seiten
  • Webdaten

Diese Daten werden aus ~/Library/Application Support/Google/Chrome/Default extrahiert

firefox-Abschnitt

Sammelt Informationen aus den verschiedenen SQLite-Datenbanken in einem Firefox-Profil:

  • Cookies
  • Downloads
  • Formularverlauf
  • Verlauf
  • Anmeldeinformationen
  • Berechtigungen
  • Add-ons
  • Erweiterungen
  • Inhaltseinstellungen
  • Gesundheitsbericht
  • Webapps Store

Diese Informationen werden aus ~/Library/Application Support/Firefox/Profiles extrahiert

Weitere Details zum Firefox-Profilordner finden Sie unter http://kb.mozillazine.org/Profile_folder_-_Firefox

safari-Abschnitt

Sammelt Informationen aus den verschiedenen Plists und SQLite-Datenbanken in einem Safari-Profil:

  • Downloads
  • Verlauf
  • Erweiterungen
  • Datenbanken
  • Lokaler Speicher
accounts-Abschnitt

Sammelt Informationen über Benutzerkonten:

  • Systemadministratoren: /private/var/db/dslocal/nodes/Default/groups/admin.plist
  • Systembenutzer: /private/var/db/dslocal/nodes/Default/users
  • Soziale Konten: ~/Library/Accounts/Accounts3.sqlite
  • Letzte Elemente der Benutzer: ~/Library/Preferences/com.apple.recentitems.plist
mail-Abschnitt

Hasht Dateien in den Mail-App-Verzeichnissen:

  • ~/Library/Mail
  • ~/Library/Mail Downloads
full_hash-Abschnitt

Hasht alle Dateien auf der Festplatte. Alle. Dies wird standardmäßig nicht ausgeführt. Es muss mit dem Folgenden ausgelöst werden:

root@kitploit:~
$ sudo osxcollector.py -s full_hash

Grundlegende manuelle Analyse

Forensische Analyse ist ein bisschen Kunst und ein bisschen Wissenschaft. Jeder Analyst wird eine etwas andere Geschichte sehen, wenn er die Ausgabe von OSXCollector liest. Das ist ein Teil dessen, was die Analyse unterhaltsam macht.

Im Allgemeinen wird die Sammlung auf einer Zielmaschine durchgeführt, weil etwas faul ist: Antivirus hat eine Datei gefunden, die es nicht mag, Deep Packet Inspection hat einen Aufruf beobachtet, Endpunktüberwachung hat ein neues Startobjekt bemerkt. Die Details dieser ersten Warnung – ein Dateipfad, ein Zeitstempel, ein Hash, eine Domain, eine IP usw. – das reicht aus, um loszulegen.

Zeitstempel

Einfaches Grepen ein paar Minuten vor und nach einem Zeitstempel funktioniert hervorragend:

root@kitploit:~
$ cat INCIDENT32.json | grep '2014-01-01 11:3[2-8]'

Browser-Verlauf

Es ist dort drin. Ein Tool wie jq kann sehr hilfreich sein, um ausgefallene Ausgaben zu erstellen:

root@kitploit:~
$ cat INCIDENT32.json | grep '2014-01-01 11:3[2-8]' | jq 'select(has("url"))|.url'

Ein einzelner Benutzer

root@kitploit:~
$ cat INCIDENT32.json | jq 'select(.osxcollector_username=="ivanlei")|.'

Automatisierte Analyse

Das OSXCollector Output Filters-Projekt enthält Filter, die die Ausgabe von OSXCollector verarbeiten und transformieren. Das Ziel der Filter ist es, die Analyse der OSXCollector-Ausgabe zu vereinfachen.

Entwicklungstipps

Die Funktionalität von OSXCollector ist in einer einzigen Datei gespeichert: osxcollector.py. Der Sammler sollte auf einer nackten Installation von OS X ohne zusätzliche Pakete oder Abhängigkeiten laufen.

Stellen Sie sicher, dass alle OSXCollector-Tests bestanden werden, bevor Sie den Quellcode bearbeiten. Sie können die Tests mit make test ausführen.

Nachdem Sie Änderungen am Quellcode vorgenommen haben, führen Sie make test erneut aus, um zu überprüfen, ob Ihre Änderungen keine Tests beschädigt haben.

Lizenz

Diese Arbeit ist unter der GNU General Public License lizenziert und eine Ableitung von https://github.com/jipegit/OSXAuditor

Blogbeitrag

  • OSXCollector: Forensic Collection and Automated Analysis for OS X von Ivan Leichtling

Präsentationen

  • OSXCollector: Automated forensic evidence collection & analysis for OS X von Kuba Sendor @ BruCON 0x07
  • Squashing Rotten Apples: Automated forensics & analysis for Mac OS X with OSXCollector von Kuba Sendor @ BSides Manchester 2015
  • OSXCollector von Ivan Leichtling @ Macbrained's August Meet-Up
  • OSXCollector - Automated Forensic Evidence Collection & Analysis for OS X von Ivan Leichtling @ OpenNSM
  • OSXCollector - Automated Forensic Evidence Collection & Analysis for OS X von Ivan Leichtling @ Duo Tech Talk (Blogbeitrag)

Externe Präsentationen

  • OSX Archaeology: Becoming Indiana Jones with OSXCollector and Strata von Chris Henderson & Justin Larson @ SAINTCon 2015

Ressourcen

Möchten Sie mehr über OS X-Forensik erfahren?

  • Sarah Edward's mac4n6.com - Die besten Präsentationen zur Mac-Forensik.

Ein paar andere interessante Tools:

  • KnockKnock - KnockKnock ist ein Python-Befehlszeilenskript, das persistente OS X-Binärprogramme anzeigt, die so eingestellt sind, dass sie bei jedem Start automatisch ausgeführt werden.
  • Grr - Google Rapid Response: ferne Live-Forensik für die Incident Response
  • osquery - SQL-betriebene Betriebssysteminstrumentierung, Überwachung und Analyse
Tool herunterladen
version
  • system_info
  • kext
  • startup
    • launch_agents
    • scripting_additions
    • startup_items
    • login_items
  • applications
    • applications
    • install_history
  • quarantines
  • downloads
    • downloads
    • email_downloads
    • old_email_downloads
  • chrome
    • history
    • archived_history
    • cookies
    • login_data
    • top_sites
    • web_data
    • databases
    • local_storage
    • preferences
  • firefox
    • cookies
    • downloads
    • formhistory
    • history
    • signons
    • permissions
    • addons
    • extension
    • content_prefs
    • health_report
    • webapps_store
    • json_files
  • safari
    • downloads
    • history
    • extensions
    • databases
    • localstorage
    • extension_files
  • accounts
    • system_admins
    • system_users
    • social_accounts
    • recent_items
  • mail
  • full_hash
  • root@kitploit:~
    $ sudo osxcollector.py -s 'startup' -s 'downloads'
    
  • -c/--collect-cookies: Sammelt den Wert von Cookies. Standardmäßig gibt OSXCollector den Wert eines Cookies nicht aus, da er sensible Informationen enthalten kann (z.B. Session-ID).

  • -l/--collect-local-storage: Sammelt die in den lokalen Speichern der Webbrowser gespeicherten Werte. Standardmäßig gibt OSXCollector die Werte nicht aus, da sie sensible Informationen enthalten können.

  • -d/--debug: Aktiviert ausführliche Ausgaben und Python-Breakpoints. Wenn etwas mit OSXCollector nicht stimmt, versuchen Sie dies.

    root@kitploit:~
    $ sudo osxcollector.py -d