OS X Auditor

OS X Auditor è uno strumento gratuito di computer forensics per Mac OS X.
OS X Auditor analizza e calcola l'hash dei seguenti artefatti sul sistema in esecuzione o su una copia di un sistema che si desidera analizzare:
- le estensioni del kernel
- gli agenti e i demoni di sistema
- gli agenti e i demoni di terze parti
- gli elementi di avvio obsoleti e deprecati di sistema e di terze parti
- gli agenti degli utenti
- i file scaricati dagli utenti
- le applicazioni installate
Estrae:
- i file in quarantena degli utenti
- la cronologia, i download, i TopSites, l'Ultima Sessione, i database HTML5 e l'archivio locale di Safari degli utenti
- i cookie, i download, la cronologia dei moduli, i permessi, i segnalibri e le credenziali di Firefox degli utenti
- la cronologia di Chrome (e la cronologia archiviata), i cookie, i dati di accesso, i siti top, i dati web, i database HTML5 e l'archivio locale di Chrome degli utenti
- gli account social e email degli utenti
- i punti di accesso WiFi a cui il sistema controllato è stato connesso (e tenta di geolocalizzarli)
Cerca anche parole chiave sospette nei file .plist stessi.
Può verificare la reputazione di ogni file su:
- Team Cymru's MHR
- VirusTotal
- il proprio database locale
Può aggregare tutti i log dalle seguenti directory in un archivio zip:
- /var/log (-> /private/var/log)
- /Library/logs
- ~/Library/logs dell'utente
Infine, i risultati possono essere:
- visualizzati come un semplice file di log in formato txt (così puoi cat-pipe-grep… o solo grep)
- visualizzati come un file di log in HTML
- inviati a un server Syslog
Autore
Jean-Philippe Teissier - @Jipe_ & al.
Stato dello sviluppo
OS X Auditor NON È PIÙ MANTENUTO - NON DOVRESTI USARLO
Supporto
OS X Auditor è nato come progetto del fine settimana e non è più mantenuto. È stato forkato dai grandi ragazzi di Yelp, che hanno creato osxcollector.
Ti consiglio di usare osxcollector (https://github.com/Yelp/osxcollector)
Come installare
Basta copiare tutti i file da GitHub.
Dipendenze
Se prevedi di eseguire OS X Auditor su un Mac, otterrai il pieno supporto per l'analisi dei plist tramite OS X Foundation attraverso pyobjc:
Se non puoi installare pyobjc o se prevedi di eseguire OS X Auditor su un sistema operativo diverso da Mac OS X, potresti avere alcuni problemi con l'analisi dei plist:
pip install biplist
pip install plist
Queste dipendenze verranno rimosse quando sarà disponibile un modulo nativo funzionante per i plist in Python.
Come eseguire
- OS X Auditor funziona bene con python >= 2.7.2 (2.7.9 va bene). Non funziona ancora con una versione diversa di python (a causa dell'incubo dei plist).
- OS X Auditor è mantenuto per funzionare sull'ultima versione di OS X. Farà del suo meglio sulle versioni precedenti.
- Devi eseguirlo come root (o tramite sudo) se vuoi usarlo su un sistema in esecuzione, altrimenti non sarà in grado di accedere ad alcuni file di sistema e di altri utenti.
- Se stai usando chiavi API da variabili d'ambiente (vedi sotto), devi usare
sudo -E per utilizzare le variabili d'ambiente dell'utente.
Digita osxauditor.py -h per ottenere tutte le opzioni disponibili, poi eseguilo con le opzioni selezionate.
es. [sudo -E] python osxauditor.py -a -m -l localhashes.db -H log.html
Impostazione delle variabili d'ambiente
VirusTotal API:
export VT_API_KEY=aaaabbbbccccddddeeee
Registro delle modifiche
0.4.3
0.4.2
- MODIFICA: chiavi API spostate dal codice alle variabili d'ambiente
0.4.1
- MODIFICA: ricerca di backdoor generiche in LaunchAgentPlist
0.4
- NUOVO: estrae eventi (avvio/spegnimento, ibernazione in/out, comandi sudo, dispositivi USB, tty aperti/chiusi, dai log di sistema e crea una timeline (non ancora leggibile) (-e/eventlogs)
- NUOVO: estrae i LoginItems degli utenti
- NUOVO: estrae i RecentItems degli utenti
- NUOVO: estrae l'Ultima Sessione dagli artefatti di Safari
- NUOVO: estrae i dettagli di gruppi e utenti di sistema
- CORREZIONE: chiamate errate a os.path.join()
- CORREZIONE: bug nella funzione ricorsiva ParsePackagesDir()
0.3.1
- NUOVO: fornisce nome, versione e build del sistema controllato
- NUOVO: possibilità di analizzare le applicazioni installate (-i/--installedapps)
- NUOVO: estrae la cronologia archiviata dagli artefatti di Google Chrome
- NUOVO: un report HTML leggibile :)
- CORREZIONE: HTMLLog() e SYSLOGLog() ora gestiscono le eccezioni
- CORREZIONE: ParsePackagesDir() ora è ricorsiva e tenta di analizzare solo app o estensioni del kernel. Aggiunto anche un po' di output DEBUG
- CORREZIONE: GRANDE miglioramento UTF-8/UNICODE
- CORREZIONE: i file .DS_Store e .localized vengono ignorati in ParsePackagesDir()
0.3
- NUOVO: possibilità di analizzare gli artefatti di Google Chrome (Cronologia e cronologia archiviata, Cookie, Dati di accesso, Top Sites, Dati web, database HTML5 e archivi locali) con -b/--browsers
- NUOVO: possibilità di estrarre i punti di accesso Wi-Fi a cui il sistema controllato è stato connesso dalle preferenze Airport e tentare di geolocalizzarli usando Geomena (-A/--airportprefs). Devi usare -g/--wifiapgeolocate per abilitare la geolocalizzazione (o impostare GEOLOCATE_WIFI_AP su True nel codice).
- NUOVO: possibilità di estrarre gli account social ed email degli utenti (-U/--usersaccounts)
- CORREZIONE: possibilità di gestire database sqlite bloccati, specialmente durante l'analisi di un sistema live
- CORREZIONE: rimossi i duplicati degli hash
- CORREZIONE: migliore identificazione degli md5 nell'output HTML
- MODIFICA: indica se una sezione (Startup items, Directory pacchetti, Tabelle Db, ecc.) è vuota per chiarire l'output
- MODIFICA: gli artefatti dei download (-d/--downloads) includono le directory di download predefinite vecchie e nuove di Mail.app
0.2.1
- MODIFICA/CORREZIONE: implementata una funzione BigFileMd5() per calcolare l'hash di file molto grandi, evitando eccezioni MemoryError e riducendo l'ingombro di memoria
- CORREZIONE: voci UTF-8 da LSQuarantineEvent in ParseQuarantines()
0.2
- NUOVO: possibilità di inviare i risultati a un server syslogd remoto (-S)
- NUOVO: possibilità di creare un archivio zip di tutti i file di log trovati sul sistema controllato (-z)
- MODIFICA: l'analisi degli artefatti di avvio include gli StartupItems vecchi e deprecati
- MODIFICA: l'analisi degli artefatti di avvio include le ScriptingAdditions
- MODIFICA: l'analisi degli artefatti in quarantena include i vecchi QuarantineEvents per i sistemi Mac OS X <= 10.6
- MODIFICA: grande miglioramento nella gestione dei plist usando il ponte Python ⟷ Objective-C (PyObjC) e OS X Foundation
- MODIFICA: alcune modifiche nei parametri delle opzioni (-t, -l)
- MODIFICA: licenza cambiata da CC a GPL
- MODIFICA: i livelli di debug sono ora più coerenti nei log di output
- MODIFICA: una piccola modifica al CSS di Bootstrap
- MODIFICA: la ricerca su VirusTotal è ora eseguita in modalità bulk
- CORREZIONE: un bug in ParseLaunchAgents() su file plist contenenti sia le chiavi Program che ProgramArguments
0.1
Progettazione e capacità

Artefatti
Utenti
-
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
Sistema
- /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
DA FARE
- estrarre informazioni utente da /private/var/db/dslocal/nodes/Default/users
Lavori correlati
Disk Arbitrator
Disk Arbitrator è un'utilità forense per Mac OS X progettata per aiutare l'utente a garantire che le procedure forensi corrette vengano seguite durante l'acquisizione di un dispositivo disco. Disk Arbitrator è essenzialmente un'interfaccia utente per il framework Disk Arbitration, che consente a un programma di partecipare alla gestione dei dispositivi di archiviazione a blocchi, inclusa la montatura automatica dei file system. Quando è abilitato, Disk Arbitrator blocca la montatura dei file system per evitare la montatura in lettura/scrittura e la violazione dell'integrità delle prove.
https://github.com/aburgh/Disk-Arbitrator
Volafox
volafox, noto anche come 'Mac OS X Memory Analysis Toolkit', è sviluppato su python 2.x.
https://code.google.com/p/volafox/
Mandiant Memoryze(tm) for the Mac
Memoryze for the Mac è un software gratuito di analisi della memoria forense che aiuta i soccorritori informatici a trovare il male nella memoria… sui Mac.
Memoryze for the Mac può acquisire e/o analizzare immagini di memoria. L'analisi può essere eseguita su immagini di memoria offline o su sistemi live.
http://www.mandiant.com/resources/download/mac-memoryze
Volatility MacMemoryForensics
https://code.google.com/p/volatility/wiki/MacMemoryForensics
Licenza
OS X Auditor
Copyright (C) 2013-2015 Jean-Philippe Teissier
Questo programma è software libero: puoi ridistribuirlo e/o modificarlo secondo i termini della GNU General Public License come pubblicata dalla Free Software Foundation, versione 3 della licenza, o (a tua scelta) qualsiasi versione successiva.
Questo programma è distribuito nella speranza che sia utile, ma SENZA ALCUNA GARANZIA; senza nemmeno la garanzia implicita di COMMERCIABILITÀ o IDONEITÀ PER UN PARTICOLARE SCOPO. Vedi la GNU General Public License per maggiori dettagli.
Dovresti aver ricevuto una copia della GNU General Public License insieme a questo programma. In caso contrario, visita http://www.gnu.org/licenses/.
Bootstrap e JQuery hanno le proprie licenze compatibili con GPL.