Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
osxcollector — OS X向けのフォレンジック証拠収集・分析ツールキット | Kitploit
ツール/GitHubGitHub/yelparchive/osxcollector
ディスクフォレンジックOSINT (オープンソースインテリジェンス)メモリフォレンジックフォレンジックデジタルフォレンジックインシデントレスポンスArchived
GitHubyelparchive/osxcollector

osxcollector

OS X向けのフォレンジック証拠収集・分析ツールキット

リポジトリを見る
1.9k23987年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

osxcollector

Build Status PyPI

OSXCollector マニュアル

OSXCollector は、OSX 向けのフォレンジック証拠収集・分析ツールキットです。

フォレンジック収集

収集スクリプトは感染の可能性があるマシン上で実行され、対象マシンを記述した JSON ファイルを出力します。OSXCollector は、plist、SQLite データベース、ローカルファイルシステムから情報を収集します。

フォレンジック分析

フォレンジック収集を手に入れたアナリストは、次のような質問に答えることができます:

  • 「このマシンは感染しているか?」
  • 「マルウェアはどうやってそこに侵入したのか?」
  • 「さらなる感染を防ぎ検出するにはどうすればよいか?」

Yelp は、ほとんどの OSXCollector 実行の分析を自動化し、その出力を「怪しいものだけ」の読みやすく実用的なサマリーに変換しています。自動化された OSXCollector 出力分析を最大限に活用する方法については、OSXCollector Output Filters プロジェクト を参照してください。

収集の実行

osxcollector.py は、標準の OSX マシン上で依存関係なしに実行できる単一の Python ファイルです。そのため、brew、pip、設定ファイル、環境変数を気にすることなく、任意のマシンで簡単に収集を実行できます。単一のファイルをマシンにコピーして実行するだけです。

sudo osxcollector.py だけです。

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

GitHub リポジトリをクローンしたばかりの場合、osxcollector.py は osxcollector/ ディレクトリ内にあるため、次のように実行する必要があります:

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

重要: Mac OS X マシン上の python コマンドが、システムに付属のデフォルトの Python インタプリタを使用しており、brew でインストールされた Python バージョンなどで上書きされていないことを確認してください。OSXCollector は OS X ライブラリのネイティブ Python バインディングに依存しています。これらは、システムに元々インストールされている Python 以外のバージョンでは利用できない可能性があります。 または、使用する Python バージョンを明示的に指定して osxcollector.py を実行することもできます:

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

コレクタの JSON 出力は、システムログなどの便利なファイルとともに、.tar.gz ファイルにまとめられ、アナリストへの引き渡し用にされます。

osxcollector.py には、収集の動作を変更するための便利なオプションが多数あります:

  • -i INCIDENT_PREFIX/--id=INCIDENT_PREFIX: 出力ファイルのプレフィックスとして使用される識別子を設定します。デフォルト値は osxcollect です。

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

    インシデント名は創造的に付けましょう。苦しみを笑い飛ばしやすくなります。

  • -p ROOTPATH/--path=ROOTPATH: 収集を実行するファイルシステムのルートへのパスを設定します。デフォルト値は / です。これはディスクイメージ上で収集を実行するのに最適です。

    root@kitploit:~
    $ sudo osxcollector.py -p '/mnt/powned'
    
  • -s SECTION/--section=SECTION: 完全な収集の一部のみを実行します。複数回指定できます。セクションとサブセクションの完全なリストは次のとおりです:

    • version
    • system_info

収集の詳細

コレクタは、収集されたすべてのアーティファクトを含む .tar.gz を出力します。アーカイブには、ほとんどの情報を含む JSON ファイルが含まれています。さらに、対象システムのログから有用なログのセットも含まれています。

共通キー

すべてのレコード

JSON ファイルの各行は 1 つの「情報」を記録します。すべての JSON レコードに現れる共通のキーがいくつかあります:

  • osxcollector_incident_id: すべてのレコードで共有される一意の ID。
  • osxcollector_section: このレコードが保持するデータの「セクション」または種類。
  • osxcollector_subsection: このレコードが保持するデータの種類の「サブセクション」またはより詳細な記述子。
ファイルレコード

ファイルを表すレコードには、いくつかの便利なキーがあります:

  • atime: ファイルアクセス時刻。
  • ctime: ファイル作成時刻。
  • mtime: ファイル変更時刻。
  • file_path: ファイルの絶対パス。
  • md5: ファイル内容の MD5 ハッシュ。
  • sha1: ファイル内容の SHA1 ハッシュ。
  • sha2: ファイル内容の SHA2 ハッシュ。

ダウンロードされたファイルを表すレコードの場合:

  • xattr-wherefrom: ダウンロードされたファイルの送信元 URL と参照元 URL を含むリスト。
  • xattr-quarantines: どのアプリケーションがファイルをダウンロードしたかを示す文字列。
SQLite レコード

SQLite データベースの行を表すレコードの場合:

  • osxcollector_table_name: 行の由来となるテーブル名。
  • osxcollector_db_path: SQLite ファイルの絶対パス。

特定のユーザーに関連付けられたデータを表すレコードの場合:

  • osxcollector_username: ユーザー名

タイムスタンプ

OSXCollector は、タイムスタンプを YYYY-mm-dd hh:MM:ss 形式の人間が読みやすい日時文字列に変換しようとします。ヒューリスティックを使用して、さまざまなタイムスタンプを自動的に識別します:

  • エポックからの秒数
  • エポックからのミリ秒数
  • 2001-01-01 からの秒数
  • 1601-01-01 からの秒数

セクション

version セクション

OSXCollector の現在のバージョン。

system_info セクション

システムに関する基本情報を収集します:

  • システム名
  • ノード名
  • リリース
  • バージョン
  • マシン
kext セクション

カーネル拡張機能を以下から収集します:

  • /System/Library/Extensions
  • /Library/Extensions
startup セクション

LaunchAgents、LaunchDaemons、ScriptingAdditions、StartupItems およびその他のログイン項目に関する情報を以下の場所から収集します:

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

Mac OS X の起動に関する詳細はこちらを参照してください: http://www.malicious-streams.com/article/Mac_OSX_Startup.pdf

applications セクション

インストールされたアプリケーションのハッシュを取得し、インストール履歴を以下から収集します:

  • /Applications
  • ~/Applications
  • /Library/Receipts/InstallHistory.plist
quarantines セクション

検疫とは、ユーザーがインターネットからダウンロードしたファイルを開こうとしたときに、「本当にこれを実行しますか?」と表示するために必要な情報です。詳細については、Apple Support の検疫に関する説明を参照してください: http://support.apple.com/kb/HT3662

このセクションでは、検疫ファイルに対する XProtect のハッシュベースのマルウェアチェックからの情報も収集します。plist の場所: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/XProtect.plist

XProtect はインターネットプラグインの最小バージョンも追加します。その plist の場所: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/XProtect.meta.plist

downloads セクション

すべてのユーザーのダウンロードファイルのハッシュを以下から取得します:

  • ~/Downloads
  • ~/Library/Mail Downloads
  • ~/Library/Containers/com.apple.mail/Data/Library/Mail Downloads
chrome セクション

Google Chrome ウェブブラウザから以下の情報を収集します:

  • 履歴
  • アーカイブされた履歴
  • クッキー
  • 拡張機能
  • ログインデータ
  • トップサイト
  • Web データ

このデータは ~/Library/Application Support/Google/Chrome/Default から抽出されます。

firefox セクション

Firefox プロファイル内のさまざまな SQLite データベースから情報を収集します:

  • クッキー
  • ダウンロード
  • フォーム履歴
  • 履歴
  • サインオン
  • 権限
  • アドオン
  • 拡張機能
  • コンテンツ設定
  • ヘルスレポート
  • Web Apps ストア

この情報は ~/Library/Application Support/Firefox/Profiles から抽出されます。

Firefox プロファイルフォルダの詳細については、以下を参照してください: http://kb.mozillazine.org/Profile_folder_-_Firefox

safari セクション

Safari プロファイル内のさまざまな plist および SQLite データベースから情報を収集します:

  • ダウンロード
  • 履歴
  • 拡張機能
  • データベース
  • ローカルストレージ
accounts セクション

ユーザーアカウントに関する情報を収集します:

  • システム管理者: /private/var/db/dslocal/nodes/Default/groups/admin.plist
  • システムユーザー: /private/var/db/dslocal/nodes/Default/users
  • ソーシャルアカウント: ~/Library/Accounts/Accounts3.sqlite
  • ユーザーの最近使った項目: ~/Library/Preferences/com.apple.recentitems.plist
mail セクション

メールアプリのディレクトリ内のファイルのハッシュを取得します:

  • ~/Library/Mail
  • ~/Library/Mail Downloads
full_hash セクション

ディスク上のすべてのファイルのハッシュを取得します。すべてのファイルです。これはデフォルトでは実行されません。次のようにトリガーする必要があります:

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

基本的な手動分析

フォレンジック分析は、芸術と科学の両方の側面があります。OSXCollector の出力を読むとき、アナリストごとに少し異なるストーリーが見えます。それが分析を楽しくする要素の一つです。

通常、収集は何かが怪しいためにターゲットマシンで実行されます。アンチウイルスが好ましくないファイルを発見した、ディープパケットインスペクションがコールアウトを観測した、エンドポイントモニタリングが新しい起動項目を検出した、などです。この最初のアラートの詳細(ファイルパス、タイムスタンプ、ハッシュ、ドメイン、IP など)があれば、調査を開始するのに十分です。

タイムスタンプ

単にタイムスタンプの前後数分を grep するだけで十分です:

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

ブラウザ履歴

履歴はそこに含まれています。jq のようなツールを使うと、高度な出力に非常に役立ちます:

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

単一ユーザー

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

自動分析

OSXCollector Output Filters プロジェクト には、OSXCollector の出力を処理および変換するフィルタが含まれています。フィルタの目的は、OSXCollector の出力分析を容易にすることです。

開発のヒント

OSXCollector の機能は単一のファイル osxcollector.py に格納されています。コレクタは、追加のパッケージや依存関係なしに、OS X の素のインストール上で動作する必要があります。

ソースコードを編集する前に、すべての OSXCollector テストが合格することを確認してください。テストは make test で実行できます。

ソースコードに変更を加えた後、再び make test を実行して、変更によってテストが壊れていないことを確認してください。

ライセンス

この作品は GNU General Public License の下でライセンスされており、https://github.com/jipegit/OSXAuditor の派生作品です。

ブログ記事

  • OSXCollector:OS X 向けフォレンジック収集と自動分析 by Ivan Leichtling

プレゼンテーション

  • OSXCollector:OS X 向け自動フォレンジック証拠収集と分析 by Kuba Sendor @ BruCON 0x07
  • 腐ったリンゴを潰す:OSXCollector による Mac OS X 向け自動フォレンジックと分析 by Kuba Sendor @ BSides Manchester 2015
  • OSXCollector by Ivan Leichtling @ Macbrained's August Meet-Up
  • OSXCollector - OS X 向け自動フォレンジック証拠収集と分析 by Ivan Leichtling @ OpenNSM
  • OSXCollector - OS X 向け自動フォレンジック証拠収集と分析 by Ivan Leichtling @ Duo Tech Talk (ブログ記事)

外部プレゼンテーション

  • OSX 考古学:OSXCollector と Strata でインディ・ジョーンズになる by Chris Henderson & Justin Larson @ SAINTCon 2015

リソース

OS X フォレンジックについてもっと学びたいですか?

  • Sarah Edward's mac4n6.com - マックフォレンジックに関する最高のプレゼンテーション。

その他の興味深いツール:

  • KnockKnock - KnockKnock は、起動時に自動実行されるように設定された永続的な OS X バイナリを表示するコマンドライン Python スクリプトです。
  • Grr - Google Rapid Response:インシデント対応のためのリモートライブフォレンジック
  • osquery - SQL を利用したオペレーティングシステムのインストルメンテーション、監視、分析
ツールをダウンロード
  • 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: クッキーの値を収集します。デフォルトでは、OSXCollector はクッキーの値をダンプしません。これは機密情報(例:セッション ID)を含む可能性があるためです。

  • -l/--collect-local-storage: Web ブラウザのローカルストレージに保存された値を収集します。デフォルトでは、OSXCollector は値をダンプしません。機密情報を含む可能性があるためです。

  • -d/--debug: 詳細出力と Python ブレークポイントを有効にします。OSXCollector に問題がある場合は、これを試してください。

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