
ブルーチームが一般的なmacOSのポストエクスプロイテーション手法に対する検知を構築するのを支援するためのユニットテスト。
ブルーチーム向けのユニットテストで、macOSにおける一般的な攻撃後の手法に関する検知構築を支援します。コマンドライン履歴とAPI呼び出しの両方を使用したいくつかの攻撃後の例を含めています。ここに含まれる攻撃後の例は網羅的ではありません。これらは、ユニットテストを実施するのに有用だと考えたいくつかの一般的な例に過ぎません。今後もユニットテストを追加して、このプロジェクトを拡張していく予定です。
これらのテストはすべてローカルで実行され、結果は標準出力に返されます(つまり、Swift-Attackはサーバーに接続しません)。
git clone https://github.com/cedowens/Swift-Attack && cd Swift-Attack
Swiftとデベロッパツールがインストールされていることを確認してください(Mac App Storeからインストールできます)
dylibインジェクションテスト用にcalc.cをビルドします:
gcc -dynamiclib -o calc.dylib calc.c
swiftc -o Swift-Attack swift-attack.swift
./Swift-Attack -h

注: その他のTTPの依存関係は以下の通りです:
Swift-Attackは単一のオプションまたは複数のオプションで実行できます。
./Swift-Attack [オプション1] [オプション2]...
macOS上でのOfficeマクロ実行に関する親子関係テスト用に、シンプルなmacro.txtファイル(難読化なし)も含めています。難読化していないのは、親子関係の可視性/検知に焦点を当てているためです。難読化されたマクロでテストしたい場合は、github.com/cedowens/MacC2に難読化マクロを含むリポジトリがあります。
永続化テストは2つだけ(Launch AgentとLogin Item)含めています。より包括的な永続化の例については、Leo Pitt氏のPersistent JXAリポジトリ(https://github.com/D00MFist/PersistentJXA)を参照してください。
osascriptバイナリを使用したプロンプト
API呼び出しによるプロンプト
osascriptバイナリを使用したクリップボードダンプ
API呼び出しによるクリップボードダンプ
screencaptureバイナリを使用したスクリーンショット
API呼び出しによるスクリーンショット
zsh履歴のダンプ
セキュリティツールの列挙
osascriptバイナリを使用したシステム情報の取得
API呼び出しによるシステム情報の取得
ディスク上のSSH、AWS、GCP、Azureキーのダンプ
ブラウザ履歴のダンプ(Chrome、Safari、Firefox)
隔離履歴のダンプ
Officeマクロ: ローカルホストに接続するシンプルなOfficeマクロを含めています。注: このマクロは、「マクロを有効にする」ボタンをクリックして実行されると、pythonを使用してhttp://127.0.0.1/testingにcurlでGETリクエストを送信します。これにより、マクロ実行時の親子関係の検知をテストできます。注: このテストは主に親子関係を対象としているため、難読化は含まれていません。難読化マクロでテストする場合は、私の別のリポジトリ(https://github.com/cedowens/MacC2)を使用できます。使用するには、単に「macro.txt」の内容をOffice文書に貼り付け、マクロ有効文書または97-2004文書形式(例:.doc、.xlsなど)として保存し、文書を開くときに「マクロを有効にする」をクリックして実行します。
インストーラパッケージ: 基本的なインストーラパッケージの検知をテストするために、TestInstaller.pkgファイルを含めています。このインストーラパッケージには、bashで実行され、com.simple.agent.plistを/Library/LaunchDaemons/に配置し、test.js(シンプルなポップアッププロンプト)を/Library/Application Support/に配置するpreinstallスクリプトが含まれています。com.simple.agent.plistファイルは、/Library/Application Support/test.jsに対してosascriptを実行するだけです。また、bashで実行され、launchctl loadを使用してcom.simple.agent.plistをロードするpostinstallスクリプトも含まれています。TestInstaller.pkgを実行するには、Controlキーを押しながら「開く」をクリックします。TestInstaller.pkgは、前述のファイルをrootとして配置します。
CVE-2021-30657 バイパスペイロード: CVE-2021-30657を悪用する2種類のペイロード(どちらも起動時にlocalhostにcurlリクエストを送信します)をテストするためのサンプルペイロード2つ。詳細はこちら: https://cedowens.medium.com/macos-gatekeeper-bypass-2021-edition-5256a2955508
Launch Agent 永続化
Login Item 永続化
ユーザーキーチェーンDBへのアクセス/コピー
Dylibインジェクション
Chromeクッキーのダンプ