Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
machscope — macOS IPC、launchd、Mach-O、および信頼関係の調査 — 依存関係ゼロのターミナルネイティブフォレンジックツール | Kitploit
ツール/GitHubGitHub/m10ust/machscope
偵察脆弱性分析リバースエンジニアリングフォレンジック情報収集マルウェア分析デジタルフォレンジックバイナリ解析脅威インテリジェンスインシデントレスポンス
GitHubm10ust/machscope

machscope

1491ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

macOS IPC、launchd、Mach-O、および信頼関係の調査 — 依存関係ゼロのターミナルネイティブフォレンジックツール

リポジトリを見る

machscope

machscope は、macOS のプロセス、launchd ジョブ、Mach サービス、バンドル、署名、エンタイトルメント、Mach-O のリンケージをすべてひとつの探索可能なグラフにまとめる、ターミナルネイティブの macOS 探索ツールです。

あるシンプルな問いに、残酷なまでに正確に答えるために存在します。

このプロセス、サービス、バイナリ、バンドルは、実際に何に接続されているのか?

プロセス、実行ファイル、launchd ジョブ、Mach サービス、バンドル、組み込み XPC サービス、コード署名、エンタイトルメント、Mach-O リンケージ、信頼性/異常性の発見 をひとつのビューで関連付けます。

Activity Monitor、ps、lsof、launchctl、codesign、otool が、偏執的でありながら操作者に優しい子を持ったら、それがこれです。

なぜこれが必要か

macOS の内部は洗練されていますが、真実は分散しています。

ひとつの怪しいプロセスを理解するために、次のツールを行ったり来たりすることがよくあります:

  • ps
  • lsof
  • launchctl
  • codesign
  • otool
  • バンドルの Info.plist
  • launchd の plist
  • 自分自身のメモや推測

machscope はそのワークフローをひとつのターミナルツールに凝縮します。

以下のために設計されています:

  • セキュリティトリアージ
  • マルウェアハンティング
  • 持続性調査
  • launchd と Mach サービスの探査
  • macOS の奇妙な動作のデバッグ
  • アプリが実際にどのように構成されているかの理解

できること

PID、パス、launchd ラベル、または Mach サービス名 を指定すると、machscope は以下を関連付けることができます:

  • ps からのプロセスメタデータ
  • lsof からの実行ファイルパスとオープンファイルのコンテキスト
  • launchctl からの launchd の状態とラベルのヒント
  • launchd の plist メタデータと宣言された MachServices
  • バンドル ID と組み込みの .xpc サービス
  • codesign からのコード署名識別子、チーム ID、認証チェーン、ランタイムヒント
  • codesign からのエンタイトルメントデータ
  • otool からの Mach-O ヘッダー、リンクされている dylib、ロードコマンド、rpath
  • 外部出力用のグラフノード/エッジ
  • 証拠付きの信頼性/異常性の発見

すべてのリアルタイムの XPC 関係を観察できるとは主張しません。一部の関係は 宣言されたもの であり、観測されたもの ではありません。その正直さは意図的です。

raw の macOS ツールより machscope を使う理由

  • ps はプロセスを示すが、所有権チェーンは示さない
  • launchctl はジョブを示すが、完全なバイナリ/バンドル/信頼性のコンテキストは示さない
  • codesign は ID を示すが、ランタイムの関係は示さない
  • otool はリンケージを示すが、 launchd や Mach サービスの公開状況は示さない
  • machscope はそれらすべてを一度のパスで関連付ける

機能

  • 依存関係のない Python
    • Python 標準ライブラリのみを使用
  • ターミナルネイティブ
    • まず人間が読める出力、必要に応じて JSON
  • 柔軟なターゲット解決
    • PID、実行ファイル、アプリバンドル、launchd ラベル、Mach サービスを調査可能
  • --follow リゾルバのピボット
    • バンドルターゲットはその実行ファイルに解決される
    • Mach サービスはそれを宣言した launchd ジョブと実行ファイルに解決される
    • launchd ラベルは存在する場合、ライブ PID にピボットする
  • 信頼性/異常性スコアリング
    • すべての異常をマルウェアと決めつけずに、奇妙さを浮き彫りにする
  • シンプルなグラフモデル
    • graph.nodes と graph.edges は将来の TUI、レンダラー、差分ワークフロー向けに設計されている

コマンド

root@kitploit:~
./machscope.py inspect <pid|path|launchd-label|mach-service>
./machscope.py inspect <target> --follow
./machscope.py inspect <target> --json
./machscope.py scan --limit 40 --min-score 1
./machscope.py services [filter]

例

ライブプロセスを調査

root@kitploit:~
./machscope.py inspect 1
./machscope.py inspect 57382

アプリまたはバイナリを調査

root@kitploit:~
./machscope.py inspect /System/Applications/Calculator.app --follow
./machscope.py inspect /usr/libexec/remoted

launchd ジョブを調査

root@kitploit:~
./machscope.py inspect com.apple.WindowServer --follow
./machscope.py inspect ai.openclaw.gateway --follow

Mach サービスを調査

root@kitploit:~
./machscope.py inspect com.apple.dnssd.service --follow

異常をスキャン

root@kitploit:~
./machscope.py scan --limit 40 --min-score 1
./machscope.py scan --limit 10 --min-score 6

宣言されたサービスを閲覧

root@kitploit:~
./machscope.py services
./machscope.py services mDNS
./machscope.py services com.apple

出力例

root@kitploit:~
Target: com.apple.dnssd.service [mach-service follow]
Resolved via: mach-service-launchd
Executable: /usr/sbin/mDNSResponder
Launchd: com.apple.mDNSResponder.reloaded
Plist: /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
Signature: apple-platform team=not set id=com.apple.mDNSResponder
Mach services: com.apple.dnssd.service, com.apple.mDNSResponder.control, com.apple.mDNSResponder.log_utility
Entitlements: 0
Linked dylibs: 25  RPATHs: 0
Trust: score=1 verdict=ordinary
Findings:
- [LOW] T012 Odd launchd label suffix

JSON 出力

inspect --json は、スクリプトや将来の UI 作業向けに設計された構造化オブジェクトを返します。

トップレベルの構造:

  • target
  • target_resolution
  • process
  • binary
  • bundle
  • launchd
  • trust
  • graph.nodes
  • graph.edges

グラフは意図的にシンプルであり、以下の入力として機能します:

  • 将来の TUI
  • レンダラー
  • 差分モード
  • その他のツール

--follow の仕組み

--follow は、machscope を単なるメタデータダンパーではなく、探索ツールのように感じさせる機能です。

以下のようなリゾルバのピボットを追加します:

  • バンドルターゲット → 実行ファイル
  • Mach サービス → それを宣言した launchd ジョブ → 実行ファイル
  • launchd ラベル → launchctl print の状態 → 利用可能な場合はライブ PID

これが重要な理由は、macOS で最も興味深いアーティファクトは、多くの場合、あなたが入力した文字通りのものではなく、その背後にあるものだからです。

信頼性/異常性の発見

machscope にはシンプルな信頼性/異常性レイヤーが含まれています。

表面化できるものの例:

  • 持続性エントリの背後にある欠落したバイナリ
  • ユーザー書き込み可能な実行ターゲット
  • Apple 以外のコードに対する機密性の高いエンタイトルメント
  • launchd ラベルとバンドル ID の不一致
  • .reloaded のような奇妙な launchd サフィックス
  • 期待通りに検証されないシステムに見えるパス

これは マルウェア判定エンジンではありません。 リードを表面化し、死角を減らし、怪しいチェーンを調査しやすくするための方法です。

設計上の選択

依存関係ゼロの設計

最初のバージョンは意図的に以下を使用しています:

  • Python 標準ライブラリ
  • ネイティブの macOS ツールのみ

ラップされたツール:

  • ps
  • lsof
  • launchctl
  • codesign
  • otool
  • file

これにより、ツールを簡単にクローン、検査、そしてストックシステム上で実行できるようになります。

可視性について正直であること

一部の関係は宣言されたものであり、観測されたものではありません。

例えば:

  • launchd の plist は Mach サービスを宣言できる
  • バンドルは組み込みの XPC サービスを明らかにできる
  • しかし、公開ツールは常にリアルタイムの XPC クライアント/サーバー関係をきれいに公開するわけではない

machscope は、不確実性を偽装するよりも、明示的であることを選びます。

要件

  • macOS
  • Python 3
  • ps、lsof、launchctl、codesign、otool、file などのネイティブツールへのアクセス

権限

最初は一般ユーザーとして実行してください。

それだけで十分な答えが得られることがよくあります。

一部の詳細は、昇格権限がないと不完全になることがあります。特に以下の場合:

  • lsof
  • launchctl
  • 一部のターゲットのコード署名の詳細

昇格する場合は、意図的に行ってください。

適切なユースケース

  • 「この Mach サービスを正確に所有しているのは何か?」
  • 「この launchd ジョブは正常か、古くなっているか、壊れているか?」
  • 「なぜこのプロセスは launchd に親子付けされているが、予想した場所にないのか?」
  • 「このヘルパーは実際にどのエンタイトルメントを持っているのか?」
  • 「このアプリバンドルは組み込み XPC サービスを隠しているか?」
  • 「なぜこのプロセスは怪しく感じられるのか?」

非目標

machscope は以下のものになろうとしているわけではありません:

  • 完全な EDR
  • ライブカーネルテレメトリシステム
  • 完璧な XPC オブザーバー
  • GUI アプリ
  • 巨大なフレームワーク

macOS の内部を読みやすくするための、シャープなローカルツールです。

ステータス

初期段階ですが、すでに有用です。

現在の出力とグラフモデルは、将来のバージョンで以下の機能を追加できるように意図的に形作られています:

  • TUI 探索
  • 差分モード
  • エクスポート/レンダリング統合
  • より豊富な信頼性ルール
  • より優れたクロスターゲットグラフウォーキング
ツールをダウンロード