Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
osxcollector — Un toolkit per la raccolta e l'analisi di prove forensi per OS X | Kitploit
Strumenti/GitHubGitHub/yelparchive/osxcollector
Disk ForensicsOSINT (Open Source Intelligence)Memory ForensicsInformatica ForenseDigital ForensicsRisposta agli IncidentiArchived
GitHubyelparchive/osxcollector

osxcollector

Un toolkit per la raccolta e l'analisi di prove forensi per OS X

Vedi Repository
1.9k2397 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

osxcollector

Build Status PyPI

Manuale di OSXCollector

OSXCollector è un toolkit di raccolta e analisi di prove forensi per OSX.

Raccolta Forense

Lo script di raccolta viene eseguito su una macchina potenzialmente infetta e produce un file JSON che descrive la macchina bersaglio. OSXCollector raccoglie informazioni da plist, database SQLite e dal filesystem locale.

Analisi Forense

Grazie alla raccolta forense, un analista può rispondere a domande come:

  • Questa macchina è infetta?
  • Come è arrivato quel malware lì?
  • Come posso prevenire e rilevare future infezioni?

Yelp automatizza l'analisi della maggior parte delle esecuzioni di OSXCollector, convertendo il suo output in un riepilogo facilmente leggibile e utilizzabile di solo le cose sospette. Dai un'occhiata al progetto OSXCollector Output Filters per sapere come sfruttare al meglio l'analisi automatizzata dell'output di OSXCollector.

Esecuzione della Raccolta

osxcollector.py è un singolo file Python che funziona senza dipendenze su una normale macchina OSX. Questo rende molto semplice eseguire la raccolta su qualsiasi macchina - niente seccature con brew, pip, file di configurazione o variabili d'ambiente. Basta copiare il singolo file sulla macchina ed eseguirlo:

sudo osxcollector.py è tutto ciò che serve.

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

Se hai appena clonato il repository GitHub, osxcollector.py si trova all'interno della directory osxcollector/, quindi devi eseguirlo come:

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

IMPORTANTE: assicurati che il comando python sulla tua macchina Mac OS X utilizzi l'interprete Python predefinito fornito con il sistema e non sia stato sovrascritto, ad esempio dalla versione di Python installata tramite brew. OSXCollector si basa su un paio di binding Python nativi per le librerie OS X, che potrebbero non essere disponibili in versioni di Python diverse da quella installata originariamente sul sistema. In alternativa, puoi eseguire osxcollector.py specificando esplicitamente la versione di Python che desideri utilizzare:

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

L'output JSON del collettore, insieme ad alcuni file utili come i log di sistema, è stato impacchettato in un archivio .tar.gz per essere consegnato a un analista.

osxcollector.py ha anche molte opzioni utili per modificare il funzionamento della raccolta:

  • -i INCIDENT_PREFIX/--id=INCIDENT_PREFIX: Imposta un identificatore utilizzato come prefisso del file di output. Il valore predefinito è osxcollect.

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

    Sii creativo con i nomi degli incidenti, rende più facile ridere attraverso il dolore.

  • -p ROOTPATH/--path=ROOTPATH: Imposta il percorso della radice del filesystem su cui eseguire la raccolta. Il valore predefinito è /. È ottimo per eseguire la raccolta sull'immagine di un disco.

    root@kitploit:~
    $ sudo osxcollector.py -p '/mnt/pwned'
    
  • -s SECTION/--section=SECTION: Esegue solo una parte della raccolta completa. Può essere specificato più di una volta. L'elenco completo delle sezioni e sottosezioni è:

    • version

Dettagli della Raccolta

Il collettore produce un .tar.gz contenente tutti gli artefatti raccolti. L'archivio contiene un file JSON con la maggior parte delle informazioni. Inoltre, sono inclusi una serie di log utili dal sistema bersaglio.

Chiavi Comuni

Ogni Record

Ogni riga del file JSON registra 1 informazione. Ci sono alcune chiavi comuni che appaiono in ogni record JSON:

  • osxcollector_incident_id: Un ID univoco condiviso da ogni record.
  • osxcollector_section: La sezione o tipo di dati che questo record contiene.
  • osxcollector_subsection: La sottosezione o descrittore più dettagliato del tipo di dati che questo record contiene.
Record di File

Per i record che rappresentano file ci sono alcune chiavi utili:

  • atime: L'ora di accesso al file.
  • ctime: L'ora di creazione del file.
  • mtime: L'ora di modifica del file.
  • file_path: Il percorso assoluto del file.
  • md5: Hash MD5 del contenuto del file.
  • sha1: Hash SHA1 del contenuto del file.
  • sha2: Hash SHA2 del contenuto del file.

Per i record che rappresentano file scaricati:

  • xattr-wherefrom: Una lista contenente gli URL di origine e di riferimento per il file scaricato.
  • xattr-quarantines: Una stringa che descrive quale applicazione ha scaricato il file.
Record SQLite

Per i record che rappresentano una riga di un database SQLite:

  • osxcollector_table_name: Il nome della tabella da cui proviene la riga.
  • osxcollector_db_path: Il percorso assoluto del file SQLite.

Per i record che rappresentano dati associati a un utente specifico:

  • osxcollector_username: Il nome dell'utente

Timestamp

OSXCollector tenta di convertire i timestamp in stringhe di data/ora leggibili dall'uomo nel formato YYYY-mm-dd hh:MM:ss. Utilizza euristiche per identificare automaticamente vari timestamp:

  • secondi dall'epoca
  • millisecondi dall'epoca
  • secondi dal 2001-01-01
  • secondi dal 1601-01-01

Sezioni

Sezione version

La versione corrente di OSXCollector.

Sezione system_info

Raccoglie informazioni di base sul sistema:

  • nome del sistema
  • nome del nodo
  • release
  • versione
  • macchina
Sezione kext

Raccoglie le estensioni del kernel da:

  • /System/Library/Extensions
  • /Library/Extensions
Sezione startup

Raccoglie informazioni sui LaunchAgents, LaunchDaemons, ScriptingAdditions, StartupItems e altri elementi di login da:

  • /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

Maggiori informazioni sull'avvio di Mac OS X si trovano qui: http://www.malicious-streams.com/article/Mac_OSX_Startup.pdf

Sezione applications

Calcola gli hash delle applicazioni installate e raccoglie la cronologia delle installazioni da:

  • /Applications
  • ~/Applications
  • /Library/Receipts/InstallHistory.plist
Sezione quarantines

Le quarantene sono sostanzialmente le informazioni necessarie per mostrare 'Sei sicuro di voler eseguire questo?' quando un utente tenta di aprire un file scaricato da Internet. Per ulteriori dettagli, consulta la spiegazione del Supporto Apple sulle quarantene: http://support.apple.com/kb/HT3662

Questa sezione raccoglie anche informazioni dal controllo malware basato su hash di XProtect per i file in quarantena. Il plist si trova in: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/XProtect.plist

XProtect aggiunge anche versioni minime per i Plugin Internet. Quel plist si trova in: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/XProtect.meta.plist

Sezione downloads

Calcola l'hash dei file scaricati di tutti gli utenti da:

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

Raccoglie le seguenti informazioni dal browser web Google Chrome:

  • Cronologia
  • Cronologia archiviata
  • Cookie
  • Estensioni
  • Dati di accesso
  • Siti principali
  • Dati web

Questi dati vengono estratti da ~/Library/Application Support/Google/Chrome/Default

Sezione firefox

Raccoglie informazioni dai diversi database SQLite in un profilo Firefox:

  • Cookie
  • Download
  • Cronologia moduli
  • Cronologia
  • Signons
  • Permessi
  • Componenti aggiuntivi
  • Estensioni
  • Preferenze dei contenuti
  • Rapporto sulla salute
  • Negozio Webapp

Queste informazioni vengono estratte da ~/Library/Application Support/Firefox/Profiles

Per maggiori dettagli sulla cartella del profilo Firefox, vedi http://kb.mozillazine.org/Profile_folder_-_Firefox

Sezione safari

Raccoglie informazioni dai diversi plist e database SQLite in un profilo Safari:

  • Download
  • Cronologia
  • Estensioni
  • Database
  • Archiviazione locale
Sezione accounts

Raccoglie informazioni sugli account utente:

  • amministratori di sistema: /private/var/db/dslocal/nodes/Default/groups/admin.plist
  • utenti di sistema: /private/var/db/dslocal/nodes/Default/users
  • account social: ~/Library/Accounts/Accounts3.sqlite
  • elementi recenti degli utenti: ~/Library/Preferences/com.apple.recentitems.plist
Sezione mail

Calcola l'hash dei file nelle directory dell'app Mail:

  • ~/Library/Mail
  • ~/Library/Mail Downloads
Sezione full_hash

Calcola l'hash di tutti i file sul disco. Tutti quanti. Non viene eseguita per impostazione predefinita. Deve essere attivata con:

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

Analisi Manuale di Base

L'analisi forense è un po' arte e un po' scienza. Ogni analista vedrà una storia leggermente diversa leggendo l'output di OSXCollector. Questo è ciò che rende l'analisi divertente.

Generalmente, la raccolta viene eseguita su una macchina bersaglio perché qualcosa è sospetto: l'antivirus ha trovato un file che non gli piace, l'ispezione approfondita dei pacchetti ha osservato una chiamata esterna, il monitoraggio degli endpoint ha notato un nuovo elemento di avvio. I dettagli di questo avviso iniziale - un percorso file, un timestamp, un hash, un dominio, un IP, ecc. - sono sufficienti per iniziare.

Timestamp

Semplicemente cercare con grep qualche minuto prima e dopo un timestamp funziona bene:

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

Cronologia del Browser

È lì dentro. Uno strumento come jq può essere molto utile per ottenere output elaborati:

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

Un Singolo Utente

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

Analisi Automatizzata

Il progetto OSXCollector Output Filters contiene filtri che elaborano e trasformano l'output di OSXCollector. L'obiettivo dei filtri è rendere semplice l'analisi dell'output di OSXCollector.

Suggerimenti per lo Sviluppo

La funzionalità di OSXCollector è memorizzata in un singolo file: osxcollector.py. Il collettore dovrebbe funzionare su un'installazione pulita di OS X senza pacchetti o dipendenze aggiuntive.

Assicurati che tutti i test di OSXCollector siano superati prima di modificare il codice sorgente. Puoi eseguire i test usando: make test

Dopo aver apportato modifiche al codice sorgente, esegui make test di nuovo per verificare che le tue modifiche non abbiano rotto alcun test.

Licenza

Questo lavoro è concesso in licenza sotto la GNU General Public License ed è una derivazione di https://github.com/jipegit/OSXAuditor

Post sul blog

  • OSXCollector: Raccolta Forense e Analisi Automatizzata per OS X di Ivan Leichtling

Presentazioni

  • OSXCollector: Raccolta e analisi automatizzata di prove forensi per OS X di Kuba Sendor @ BruCON 0x07
  • Spazzare le mele marce: Forense automatizzata e analisi per Mac OS X con OSXCollector di Kuba Sendor @ BSides Manchester 2015
  • OSXCollector di Ivan Leichtling @ Macbrained's August Meet-Up
  • OSXCollector - Raccolta e analisi automatizzata di prove forensi per OS X di Ivan Leichtling @ OpenNSM
  • OSXCollector - Raccolta e analisi automatizzata di prove forensi per OS X di Ivan Leichtling @ Duo Tech Talk (post sul blog)

Presentazioni Esterne

  • Archeologia OS X: Diventare Indiana Jones con OSXCollector e Strata di Chris Henderson e Justin Larson @ SAINTCon 2015

Risorse

Vuoi saperne di più sulla forense di OS X?

  • mac4n6.com di Sarah Edward - Le migliori presentazioni sulla forense Mac.

Un paio di altri strumenti interessanti:

  • KnockKnock - KnockKnock è uno script Python da riga di comando che mostra i binari persistenti di OS X impostati per essere eseguiti automaticamente a ogni avvio.
  • Grr - Google Rapid Response: forense remota in tempo reale per la risposta agli incidenti
  • osquery - Strumentazione, monitoraggio e analisi del sistema operativo basati su SQL
Scarica lo strumento
  • 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: Raccogli il valore dei cookie. Per impostazione predefinita, OSXCollector non scarica il valore di un cookie, poiché potrebbe contenere informazioni sensibili (es. ID di sessione).

  • -l/--collect-local-storage: Raccogli i valori memorizzati nell'archiviazione locale dei browser web. Per impostazione predefinita, OSXCollector non scarica i valori poiché potrebbero contenere informazioni sensibili.

  • -d/--debug: Abilita output verboso e breakpoint Python. Se qualcosa non va con OSXCollector, prova questo.

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