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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
macnoise — 拡張可能なMacOSシステムテレメトリジェネレータ。 | Kitploit
ツール/GitHubGitHub/0xv1n/macnoise
防御ツールネットワークセキュリティペネトレーションテスト脅威インテリジェンス学習と教育レッドチーミングインシデントレスポンス
GitHub0xv1n/macnoise

macnoise

拡張可能なMacOSシステムテレメトリジェネレータ。

リポジトリを見る
62351ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
<div style="text-align: center;">
  <img src="https://assets.kitploit.com/production/public/readmes/12216/015e563e6db740a8025fff16e60052d282eafc29855ed07fd23f58cd1a3fc0e5.png" alt="Description of image" style="max-width: 100%; height: auto; display: block; margin: 0 auto;">
</div>

---

[![CI](https://github.com/0xv1n/macnoise/actions/workflows/ci.yaml/badge.svg)](https://github.com/0xv1n/macnoise/actions/workflows/ci.yaml)
[![Release](https://img.shields.io/github/v/release/0xv1n/macnoise)](https://github.com/0xv1n/macnoise/releases/latest)

# MacNoise

MacNoise は実際の macOS テレメトリを生成します。ネットワーク接続、ファイル書き込み、プロセス生成、plist の変更、TCC プローブなどです。EDR、SIEM、またはファイアウォールスタックを実行しているマシンに対して実行し、実際に何が発火するかを確認できます。ベンダーのデータシートが発火すると主張するものではなく、実際に発火するものです。

動機と設計の背景については、[リリースブログ記事](https://0xv1n.github.io/posts/macnoise/)を参照してください。

## クイックスタート

```bash
# Build (add build-amd64 / build-arm64 to cross-compile for Darwin, or release for both)
make build

# List available modules
./macnoise list

# Run a single module
./macnoise run net_connect --param target=127.0.0.1 --param port=8080

# Preview without executing
./macnoise run svc_launch_agent --dry-run

# Run all network modules
./macnoise run --category network

# Run a scenario
./macnoise scenario configs/scenarios/edr_validation.yaml

# Emit structured JSONL output
./macnoise scenario configs/scenarios/file_flow.yaml --format jsonl --output /tmp/events.jsonl
```

## テレメトリカテゴリ

| カテゴリ | 説明 |
|----------|-------------|
| `network` | TCP 接続、HTTP、リスナー、リバースシェル、DNS、および TLS |
| `process` | 正確な実行、シグナル送信、dylib インジェクション、Gatekeeper バイパス、および osascript |
| `file` | 範囲を限定した探索、リテラル読み取り/コピー、作成、変更、アーカイブ、隠蔽、およびデコイ暗号化 |
| `tcc` | 正確なフルディスクアクセス、連絡先、アクセシビリティ、または画面収録の要件を伴う TCC 権限プローブ |
| `credential` | ネイティブのクレデンシャルストアアクセス |
| `volume` | ディスクイメージの作成とマウントされたボリュームのライフサイクル |
| `service` | Launchd 列挙、LaunchAgent/Daemon 永続化、cron、シェルプロファイル、およびログイン項目 |
| `plist` | Plist の作成と変更 |
| `evasion` | ログ消去、タイムスタンプ改ざん、履歴削除、およびなりすまし |

すべてのモジュール、パラメータ、出力、イベントタイプ、権限、および ATT&CK マッピングについては、生成された[モジュールカタログ](https://github.com/0xv1n/macnoise/blob/main/docs/module-catalog.md)を参照してください。

## コマンド

```
macnoise run <module> [--param key=val ...]   Run a specific module
macnoise run --category <cat>                 Run all modules in a category
macnoise run --all                            Run all modules
macnoise list [--category <cat>]              List modules
macnoise info <module>                        Show module details, params, MITRE
macnoise scenario <file.yaml> [--input key=val] [--report report.json]
                                                Run a YAML scenario
macnoise categories                           List categories with counts
macnoise version                              Print version
```

### グローバルフラグ

| フラグ | デフォルト | 説明 |
|------|---------|-------------|
| `--format` | `human` | 出力形式: `human` または `jsonl` |
| `--output` | (なし) | 出力をファイルに書き込む (stdout に加えて) |
| `--verbose` | false | クリーンアップエラーを含む詳細出力 |
| `--dry-run` | false | 実行せずにアクションをプレビュー |
| `--no-cleanup` | false | モジュールのアーティファクトをそのまま残す (以下を参照) |
| `--timeout` | `30` | モジュールごとのタイムアウト (秒) |
| `--audit-log` | (なし) | OCSF 1.7.0 監査レコードを JSONL ファイルに書き込む |
| `--config` | (なし) | YAML 設定ファイルからデフォルトを読み込む |
| `--run-id` | 生成される | この実行の相関識別子を設定 |

### シナリオのデータフロー

シナリオファイルは `version: 1` を使用します。入力とモジュール出力は型付けされており、
後続のステップは文字列補間ではなく明示的なマッピングでそれらを参照します:

```yaml
version: 1
name: Archive one generated artifact
on_error: stop
inputs:
  content:
    type: string
    required: true
steps:
  # Custom modules declare these outputs through OutputSpecs.
  - id: create
    module: custom_create
    params:
      content:
        input: content
  - id: archive
    module: custom_archive
    params:
      source:
        output: create.path
outputs:
  archive:
    output: archive.path
```

参照できるのは、モジュールによって宣言された出力のみです。ローカルシナリオは
`include` ステップで再利用できます。インクルードは相対パスで、ルートシナリオディレクトリより上に
遡ることはできず、循環チェックが行われ、8 レベルに制限されています。
MacNoise は実行前に完全なグラフを検証し、実行に 1 つの
プライベートワークスペースを与え、呼び出されたモジュールを逆順でクリーンアップします。
`--input content=value` で入力を供給し、`--report report.json` で
バージョン付き実行レポートを取得できます。

## アーティファクトをそのまま残す

デフォルトでは、すべてのモジュールは終了時に自身を元に戻します。これは通常望ましい動作ですが、
検知が *インストール* イベントしか見られないことを意味します。永続化自体をスタックが検知することを
検証するには - `~/Library/LaunchAgents` に存在する LaunchAgent、cron エントリ、変更されたシェルプロファイル -
スキャンが実行される時点でアーティファクトがまだそこに存在している必要があります:

```bash
./macnoise run svc_launch_agent --no-cleanup
```

クリーンアップをスキップする各モジュールは自身の名前を出力し、監査ログは `ok` ではなく
`cleanup_result: skipped` を記録するため、永続化を残した実行がクリーンアップした実行と
誤認されることはありません。特定のモジュールが何を作成するかを確認するには
`macnoise info <module>` を使用してください。

**これらの削除はあなた自身の責任です。** フラグなしで同じモジュールを再実行すると、
その実行が作成したものだけがクリーンアップされ、以前の `--no-cleanup` 実行が残したものは
クリーンアップされません。

## 監査ログ

MacNoise は 2 つの別々のストリームを書き込みます。テレメトリイベント - EDR/SIEM が実際に見るもの -
は stdout または `--output` に送られます。2 つ目のオプションのストリームは、MacNoise 自体が
何を行ったかを記録します: どのモジュールが実行されたか、前提条件/クリーンアップの結果、および
MITRE マッピングを、[OCSF 1.7.0](https://schema.ocsf.io/) JSONL で記録します。

```bash
./macnoise scenario configs/scenarios/amos_atomic_stealer.yaml --audit-log /tmp/audit.jsonl
```

すべてのテレメトリイベントは、1 つの権威ある `outcome` と 1 つの型付き `subject` を持ちます
(スキーマ 2.0)。outcome は MacNoise が試みたアクションに何が起こったかを示し、
subject は関与するファイル、プロセス、ネットワークエンドポイント、サービス、またはリソースを
識別します:

| `outcome` | 意味 | 人間向けマーカー |
|---|---|---|
| `executed` | アクションが実行され、モジュールが主張する通りのことを行った | `[+]` |
| `denied` | アクションが実行され、環境がそれを拒否した | `[-]` |
| `indeterminate` | アクションが実行されたが、何も結論付けられない | `[?]` |
| `error` | MacNoise 自体がアクションを実行できなかった | `[!]` |

拒否された TCC プローブや死んだ C2 へのビーコンは、このツールが生成するために存在する
テレメトリであるため、MacNoise 自体が失敗したことを意味する `error` とは区別されます。
監査ログは同じ値を `unmapped.outcome` に記録します。機密として宣言されたパラメータは、
管理された監査レコードおよびコマンドライン識別情報において `[REDACTED]` に置き換えられます。

監査ログは追記モードで開かれるため、複数の実行からのレコードがバッチ分析用に 1 つのファイルに
蓄積されます。モジュールを追加していて、新しいイベントタイプがどのように OCSF に分類されるかを
知りたい場合は、[CONTRIBUTING.md](https://github.com/0xv1n/macnoise/blob/main/CONTRIBUTING.md#primitive-modules) を参照してください。

## モジュールリファレンス

生成された[モジュールカタログ](https://github.com/0xv1n/macnoise/blob/main/docs/module-catalog.md)は、名前、パラメータ、出力、イベントタイプ、
権限、および ATT&CK マッピングの権威あるリファレンスです。カテゴリノートはプラットフォームの
動作と運用上の境界を説明します:

| カテゴリ | README |
|----------|--------|
| `network` | [modules/network/README.md](https://github.com/0xv1n/macnoise/blob/main/modules/network/README.md) |
| `process` | [modules/process/README.md](https://github.com/0xv1n/macnoise/blob/main/modules/process/README.md) |
| `file` | [modules/file/README.md](https://github.com/0xv1n/macnoise/blob/main/modules/file/README.md) |
| `tcc` | [modules/tcc/README.md](https://github.com/0xv1n/macnoise/blob/main/modules/tcc/README.md) |
| `credential` | [modules/credential/README.md](https://github.com/0xv1n/macnoise/blob/main/modules/credential/README.md) |
| `volume` | [modules/volume/README.md](https://github.com/0xv1n/macnoise/blob/main/modules/volume/README.md) |
| `service` | [modules/service/README.md](https://github.com/0xv1n/macnoise/blob/main/modules/service/README.md) |
| `plist` | [modules/plist/README.md](https://github.com/0xv1n/macnoise/blob/main/modules/plist/README.md) |
| `evasion` | [modules/evasion/README.md](https://github.com/0xv1n/macnoise/blob/main/modules/evasion/README.md) |

## シナリオ

シナリオはモジュールを順序付けられたシーケンスに連鎖させます - 単一の YAML ファイルで、
多段階の侵入パターンをあなたの検知に対して再生します。

| ファイル | 説明 |
|------|-------------|
| `network_only.yaml` | 合成された TCP、リスナー、DNS、HTTP ビーコン、および HTTP 外部送信操作 |
| `edr_validation.yaml` | 包括的な EDR 検知カバレッジ |
| `full_sweep.yaml` | すべてのカテゴリ |
| `lazarus_group.yaml` | Lazarus Group: dylib インジェクション、サービス探索、リバースシェル、LaunchAgent 永続化 |
| `amos_atomic_stealer.yaml` | AMOS / Atomic Stealer: MaaS インフォスティーラー、Gatekeeper バイパス、キーチェーンダンプ、ZIP 外部送信、バックドア永続化 |
| `clickfix.yaml` | ClickFix: Terminal に貼り付けられる難読化されたワンライナー、base64 デコード、第二段階の取得、LaunchAgent 永続化 |
| `ransomware.yaml` | ランサムウェアの影響: 平文のデコイを配置し、それらを暗号化し、身代金要求ノートをドロップ |
| `discovery.yaml` | 合成された argv ベースのシステム、アカウント、ネットワーク、およびセキュリティソフトウェア探索レシピ |
| `process_chain.yaml` | 明示的な引数ベクトルから構築された 3 プロセスのシェルチェーン |
| `file_flow.yaml` | 接続された作成、変更、範囲限定探索、読み取り、コピー、およびアーカイブのフロー |
| `mounted_execution.yaml` | 観測されたディスクイメージのマウントポイントからペイロードを作成して実行 |

2 つの APT シナリオは、実際に文書化された侵入シーケンスをテクニックごとに追跡します -
各 YAML ファイルはそれが構築された実際の脅威インテリジェンスを引用し、すべてのステップに
それが行使する MITRE テクニックを注記しているため、ここでの再話ではなく、完全な内訳については
そこから始めてください。

**まずドライラン:**
```bash
./macnoise scenario configs/scenarios/<scenario>.yaml --dry-run
```

**SIEM/EDR と相互参照:** 各ステップのコメントは、それがトリガーすべきテクニックを明示しています。
実際の実行後に一致するアラートがない場合は、カバレッジのギャップです。

**独自のシナリオを書く:**
```yaml
version: 1
name: My Custom Scenario
on_error: stop
steps:
  - module: net_connect
    params:
      target: "192.168.1.1"
      port: 443
  - module: file_create
    params:
      base_dir: "/tmp/test"
```

パラメータは、プレビューまたは実行前に、各モジュールが宣言した string、integer、boolean、
path、または list 型に対してチェックされます。不明な名前と無効な値は
拒否されます。`on_error` のデフォルトは `stop` です。カバレッジスイープが失敗後に
後続のモジュール呼び出しを試みるべき場合にのみ `continue` に設定してください。

型付き入力、出力、および接続されたデータフローについては、
[シナリオテンプレート](https://github.com/0xv1n/macnoise/blob/main/docs/templates/scenario.yaml)から始めてください。

## バージョン 1 の互換性

バージョン 1.0 は、サポートされる CLI コマンドとフラグ、モジュール名とコントラクト、
シナリオスキーマ 1、テレメトリスキーマ 2.0、およびシナリオレポートスキーマ 1.0 を定義します。
これらのインターフェースへの将来の非互換な変更には、新しいメジャーリリースが必要です。

既存のユーザーは [v0.6.0 から v1.0.0 への移行](https://github.com/0xv1n/macnoise/blob/main/docs/migration-v1.md)を読むべきです。
削除されたすべてのモジュールをマッピングし、シナリオ、JSONL、および Go API の変更を説明しています。

## コントリビューション

プリミティブ、シナリオ、およびコア変更のパスについては
[CONTRIBUTING.md](https://github.com/0xv1n/macnoise/blob/main/CONTRIBUTING.md)を参照してください。

リリースは自動化されています - [release-please](https://github.com/googleapis/release-please) が
あなたの [Conventional Commit](https://www.conventionalcommits.org/) PR タイトルから直接
新しいバージョンを切り出すため、`feat: add net_tls module` や `fix: correct beacon jitter` が
PR タイトルと変更履歴エントリの両方になります。

## 免責事項

MacNoise は、あなたが所有する、またはテストする明示的な書面による許可を持つシステム上での
**許可された**セキュリティテスト、EDR 検証、および検知エンジニアリングを目的としています。
作者は誤用に対して一切の責任を負いません。

## AI コードポリシー

AI コードのコントリビューションは問題ありませんが、コードレビューは現在人間主導のプロセスで
あるため、レビューできるコードの量には限りがあることに留意してください。PR は特定の修正、
または新しいテレメトリモジュールに限定してください。広範な変更を含む PR は
クローズされる可能性が高いです。
ツールをダウンロード