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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CnaEmulator — Cobalt Strike Aggressor Scripts(.cna)向けのスタンドアロンなエミュレーションおよびテストハーネス。teamserver なしで構文を検証し、Beacon API をモックし、COFFLoader 経由で BOF を実行します。 | Kitploit
ツール/GitHubGitHub/iterat0r/cnaemulator
動的分析 (サンドボックス)エクスプロイトスクリプトと自動化ポストエクスプロイトペネトレーションテストコマンド&コントロールユーティリティとフレームワーク学習と教育レッドチーミングペイロード開発
GitHubiterat0r/cnaemulator
213137日前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CnaEmulator

Cobalt Strike Aggressor Scripts(.cna)向けのスタンドアロンなエミュレーションおよびテストハーネス。teamserver なしで構文を検証し、Beacon API をモックし、COFFLoader 経由で BOF を実行します。

リポジトリを見る

CnaEmulator - Cobalt Strike Aggressor Script エミュレータ & モックハーネス

CnaEmulator は、Cobalt Strike Aggressor Scripts (.cna) 向けのスタンドアロンで汎用的な開発・エミュレーション・テストハーネスです。セキュリティ研究者、ツール開発者、BOF 作者が、teamserver や GUI クライアントを起動することなく、スクリプト構文の検証、Beacon コンソールエイリアスコマンドのシミュレーション、および COFFLoader64.exe を介したインメモリ Beacon Object Files (BOFs) の直接実行を行えるようにします。


[!WARNING] 免責事項: このコードは Antigravity によって完全に生成されたものであり、まだレビューされていません。

機能

  1. 構文検証 (check):
    • 基盤となる Sleep 2.1 エンジンを使用して .cna スクリプトをコンパイルします。
    • 暴走文字列、エスケープされていない文字、パーサー構文エラー、および欠落した区切り文字を、正確なファイル行番号とともに検出します。
  2. Aggressor 関数エミュレーション:
    • HelpSystems/Fortra Aggressor Script Documentation の公式 Cobalt Strike Beacon 関数をエミュレートします。
    • プロセスインジェクション、トークン操作、ファイルシステム、ネットワーク、および GUI コールバック API に対して、現実的なモック値またはエラーではない正の戻り値を提供します。
  3. 実際の BOF バイナリパッキング (bof_pack):
    • Cobalt Strike の datap バイナリ形式に一致するネイティブのリトルエンディアンシリアライゼーションを実装します:
      • 'i': 4 バイト整数
      • 's': 2 バイト short
      • 'z': 長さプレフィックス付きヌル終端文字列 (strlen + 1 プレフィックス)
      • 'Z': 長さプレフィックス付きワイド UTF-16LE 文字列
      • 'b': 長さプレフィックス付きバイナリバッファ
  4. COFFLoader 実行ブリッジ (beacon_inline_execute):
    • beacon_inline_execute($bid, $bof_data, "go", $packed_args) を自動的にインターセプトします。
    • パックされた引数を 16 進数形式に変換します。
    • COFFLoader64.exe go <bof_path> <hex_args> を子サブプロセスとして実行します。
    • BOF コンソール出力をリアルタイムで stdout に直接ストリーミングします。
  5. ユニバーサルコンパニオンテストスイート & 自動検証 (test):
    • コンパニオンの <script>.cna.tests または <script>.tests シナリオスイートを自動検出して実行します。
    • 対象を絞った CLI シナリオテストと、自動エイリアスガード句検証をサポートします。
  6. インタラクティブ Beacon コンソール (console):
    • 登録されたエイリアス、引数、ヘルプドキュメント、およびライブ実行をサポートするインタラクティブコマンドプロンプト (beacon> )。

ディレクトリレイアウト

root@kitploit:~
.
├── .gitignore                # コンパイル済みバイナリとバイトコード用の Git 無視ルール
├── COFFLoader64.exe          # 64 ビットスタンドアロンインメモリ COFF リロケータおよびローダー
├── cna_emulator.bat          # 便利な CLI ランチャースクリプト
├── README.md                 # 包括的なドキュメントと使用ガイド
├── TESTING.md                # コンポーネント検証レポート & 品質ゲート
├── TEST_SPEC.md              # 48 シナリオ 7 カテゴリのテスト仕様
└── CnaEmulator/              # Java CNA エミュレータコンポーネント
    ├── .gitignore            # CnaEmulator サブフォルダ用の Git 無視ルール
    ├── CnaEmulator.java      # エミュレータソースコードと Sleep エンジンブリッジ
    ├── CnaEmulator.class     # コンパイル済みバイトコード
    ├── CnaEmulator.jar       # パッケージ化されたバイトコード JAR
    ├── build.bat             # CnaEmulator をコンパイルおよびパッケージ化するビルドスクリプト
    ├── test.bat              # スタンドアロンテストランナースクリプト (48 シナリオ)
    └── tests/                # テストスイートとフィクスチャ
        ├── TestCnaEmulator.java  # 48 シナリオテストハーネス
        └── fixtures/             # ユニバーサルテストフィクスチャ
            ├── sample_bof.cna        # スタンドアロンサンプル Aggressor Script
            ├── sample_bof.cna.tests  # コンパニオンテストスイート
            ├── multi_alias.cna       # マルチエイリアスサンプルスクリプト
            └── multi_alias.cna.tests # マルチエイリアスコンパニオンテストスイート

要件 & 前提条件

クイック環境セットアップ (cmd.exe):

root@kitploit:~
set "JAVA_HOME=C:\path\to\jdk-17"
set "PATH=%JAVA_HOME%\bin;%PATH%"
set "SLEEP_JAR=C:\path\to\sleep.jar"

使用ガイド

1. ソースからのコンパイル

コンパイル済みクラスまたは JAR を実行する前に、CnaEmulator.java をコンパイルします:

ビルドスクリプトの使用:

root@kitploit:~
CnaEmulator\build.bat

または手動でのコンパイル & パッケージング:

root@kitploit:~
:: Compile source to bytecode
javac -cp "%SLEEP_JAR%" -d CnaEmulator CnaEmulator\CnaEmulator.java

:: Package into executable bytecode JAR
cd CnaEmulator
jar cfe CnaEmulator.jar CnaEmulator *.class
cd ..

2. 実行方法

プロジェクトルートディレクトリから、以下のいずれかの方法で CnaEmulator を呼び出すことができます:

方法 A: バッチスクリプトランチャー (推奨)

ランチャースクリプトは、JDK の検出、クラスパスの設定、およびパス解決を自動的に処理します:

root@kitploit:~
cna_emulator.bat <action> [arguments...]

方法 B: コンパイル済み実行可能 JAR

root@kitploit:~
java -cp "CnaEmulator\CnaEmulator.jar;%SLEEP_JAR%" CnaEmulator <action> [arguments...]

方法 C: 直接クラスバイトコード

root@kitploit:~
java -cp "CnaEmulator;%SLEEP_JAR%" CnaEmulator <action> [arguments...]

3. コアアクション & 使用例

A. スクリプト構文の検証 (check)

コードを実行せずに、Sleep 2.1 を介して Aggressor Script の構文を検証し、AST ツリーをコンパイルします:

root@kitploit:~
cna_emulator.bat check <path\to\script.cna>

バンドルされたフィクスチャを使用した例:

root@kitploit:~
cna_emulator.bat check CnaEmulator\tests\fixtures\sample_bof.cna

出力例:

root@kitploit:~
[*] Checking syntax of: CnaEmulator\tests\fixtures\sample_bof.cna
[+] sample_bof.cna syntax OK

B. ライブ BOF ディスパッチによるコマンド実行 (run)

宣言された Aggressor エイリアスを実行し、引数をバイナリ形式 (bof_pack) にパックし、オブジェクトファイル (script_resource) を解決し、COFFLoader64.exe を呼び出して呼び出し元のメモリ内で BOF を実行します:

root@kitploit:~
cna_emulator.bat run <path\to\script.cna> <alias_name> [arguments...]

バンドルされたフィクスチャを使用した例:

root@kitploit:~
cna_emulator.bat run CnaEmulator\tests\fixtures\sample_bof.cna sample_bof run test_target

出力例:

root@kitploit:~
[*] Invoking: sample_bof 1 run test_target
[*] Tasked beacon: Executing sample_bof with action: run

[+] [COFFLoader Bridge] Executing: COFFLoader64.exe go sample_bof.o
    | Got contents of COFF file
    | Running/Parsing the COFF file
    | Ran/parsed the coff
    | Outdata Below:
    | ...
[+] [COFFLoader Bridge] Completed with exit code: 0

C. 自動テストバッテリー & 回帰テスト (test)

CnaEmulator test は自動テスト実行を提供します:

root@kitploit:~
cna_emulator.bat test <path\to\script.cna> [alias] [arguments...]

実行モード:

  1. 対象を絞ったシナリオ実行: コマンドラインで <alias> と [arguments...] が指定されている場合、その特定のシナリオのみが実行されます。
  2. コンパニオンテストファイルの検出: 引数が指定されていない場合、CnaEmulator はスクリプトに隣接するコンパニオンテストファイルを探します:
    • <script_dir>\<script_name>.cna.tests
    • <script_dir>\<script_name>.tests 見つかった場合、コンパニオンファイル内のすべてのシナリオ行が順番に実行されます。
  3. 動的エイリアス検査 & ガードテスト: コンパニオンテストファイルが存在しない場合、CnaEmulator は登録されたすべてのコマンドエイリアスを検査し、無効な引数数が未処理の例外をスローすることなく使用法エラーを出力することを確認するガード句テストを実行します。

例:

root@kitploit:~
:: Run automated tests on the bundled sample script (executes sample_bof.cna.tests)
cna_emulator.bat test CnaEmulator\tests\fixtures\sample_bof.cna

:: Run automated tests on the bundled multi-alias script (executes multi_alias.cna.tests)
cna_emulator.bat test CnaEmulator\tests\fixtures\multi_alias.cna

:: Run a targeted scenario directly via CLI
cna_emulator.bat test CnaEmulator\tests\fixtures\sample_bof.cna sample_bof query

コンパニオンテストファイルの作成 (<script>.cna.tests): .cna スクリプトに隣接してプレーンテキストファイルを作成します。空でない、コメントでない各行は、エイリアスとそのパラメータを指定します:

root@kitploit:~
# Sample BOF Companion Test Suite
# Format: <alias> [arguments...]
sample_bof run test_target
sample_bof query

D. インタラクティブシミュレーテッド Beacon コンソール (console)

登録されたエイリアス、コマンド履歴、およびシミュレートされた実行をサポートするインタラクティブな beacon> プロンプトを起動します:

root@kitploit:~
cna_emulator.bat console <path\to\script.cna>

インタラクティブセッションの例:

root@kitploit:~
====================================================================
  CnaEmulator Interactive Beacon Console
  Loaded Script: sample_bof.cna
====================================================================
Type 'help' to see registered commands, or 'exit' to quit.

beacon> help
Registered Beacon Commands:
  - sample_bof : Sample BOF execution command

beacon> sample_bof run local_target
[*] Tasked beacon: Executing sample_bof with action: run
[+] [COFFLoader Bridge] Executing: COFFLoader64.exe go sample_bof.o
...
beacon> exit

4. 外部 BOF プロジェクトのテスト

CnaEmulator は完全に汎用的であり、ファイルシステム上の任意のディレクトリまたは外部リポジトリにある Aggressor Scripts および BOF バイナリをテストできます:

root@kitploit:~
:: Validate any external script syntax
cna_emulator.bat check C:\Projects\CustomBof\my_bof.cna

:: Execute external BOF alias commands with live arguments
cna_emulator.bat run C:\Projects\CustomBof\my_bof.cna my_command target_argument

:: Run companion test suites for external scripts
cna_emulator.bat test C:\Projects\CustomBof\my_bof.cna

:: Open interactive console with external script
cna_emulator.bat console C:\Projects\CustomBof\my_bof.cna

5. CnaEmulator セルフテストスイートの実行

CnaEmulator の完全な 48 シナリオ仕様準拠テストスイートを実行するには:

root@kitploit:~
CnaEmulator\test.bat

期待される結果:

root@kitploit:~
====================================================================
  Execution Summary
====================================================================
  Total Scenarios : 48
  Passed          : 48
  Failed          : 0
  Assertions      : 172
  Elapsed Time    : ~2800 ms
====================================================================
[+] ALL 48 TEST SCENARIOS PASSED CLEANLY (100% SPECIFICATION CONFORMANCE)

エミュレートされた関数カタログ

実際の実装 (機能エンジン & サブプロセスブリッジ)

[!NOTE] ダミー / スタブ実装: その他すべての Cobalt Strike API — プロセス実行/インジェクション (bshell, bpowershell, bexecute, bspawn, binject)、トークン操作 (bsteal_token, brev2self, bgetuid)、ファイルシステムナビゲーション (bpwd, bls, bupload, bdownload)、ピボット (socks, rportfwd)、UI プロンプト (prompt_text, )、および GUI フック (, , , ) を含む — は、エラーではない正の値 (, , , ) または no-op ブロックを返すダミースタブとして実装されており、スクリプトが失敗することなくオフラインで実行されます。

ツールをダウンロード
要件説明 & セットアップ
Java JDK (17+)java および javac バイナリ。JAVA_HOME を JDK パスに設定し、%JAVA_HOME%\bin が PATH に含まれていることを確認してください。
Sleep 2.1 (sleep.jar)Aggressor Scripts 用のスクリプティングエンジン。Sleep 2.1 からダウンロードするか、Cobalt Strike からコピーしてください。SLEEP_JAR を設定するか (例: set "SLEEP_JAR=C:\path\to\sleep.jar")、ルートフォルダまたは CnaEmulator\ に sleep.jar を配置してください。
インメモリローダー (COFFLoader64.exe)スタンドアロンローダーバイナリ (trustedsec/COFFLoader からコンパイルするなど)。ルートディレクトリに配置するか、COFFLOADER_PATH で上書きしてください。
関数 / キーワード説明
bof_pack4 バイトのバッファ長プレフィックス付きでリトルエンディアンバイナリ引数 (i, s, z, Z, b) をパックします。
beacon_inline_executeCOFFLoader64.exe go <bof.o> <hex_args> サブプロセスを起動し、ライブ stdout をストリーミングします。
script_resourceスクリプトディレクトリ、bin/、../bin/、および相対パスにわたって相対リソースパスを解決します。
openf, readb, closefローカルの .o BOF ファイルをバイトバッファに読み込むためのネイティブファイルシステム I/O。
btask, berror, blog, blog2タスキング、ステータス、およびエラーメッセージをフォーマットして stdout/stderr に出力します。
beacon_command_registerエイリアス、サマリー、およびヘルプ詳細をライブコマンドカタログに登録します。
beacon_commands, beacon_command_detailインタラクティブ/コンソール使用のために、登録されたコマンドリストとヘルプテキストを照会します。
barch"x64" を返します。
bdata, beacon_infoモック Beacon メタデータハッシュ (id: 1, pid: 13020, user: SYSTEM, arch: x64) を返します。
beacons, beacon_idsアクティブなシミュレートされた beacon 配列 (["1"]) を返します。
alias, commandコマンドブロックを、インタラクティブまたは CLI ディスパッチ用の実行可能クロージャとしてバインドします。
prompt_confirm
popup
menu
item
on
1
"NT AUTHORITY\SYSTEM"
"C:\Windows\System32"
true