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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Chimera — EDR回避機能を備えた自動DLLサイドローディングツール | Kitploit
ツール/GitHubGitHub/georgesotiriadis/chimera
ペイロード生成エクスプロイトシェルコードレッドチーミング
GitHubgeorgesotiriadis/chimera

Chimera

EDR回避機能を備えた自動DLLサイドローディングツール

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Chimera Unlea$ed 

ツールの背景


DLLサイドローディングは、プログラムの動作に必要なライブラリをロードするなど、正当な目的で使用されることもありますが、悪意のある目的にも使用される可能性があります。攻撃者は、DLLサイドローディングを使用して、多くの場合、DLLをロードするために使用される正当なアプリケーションの脆弱性を悪用し、対象システム上で任意のコードを実行する可能性があります。

DLLサイドローディングプロセスを自動化し、より効果的にするために、EDR/AV製品を回避するための回避手法を含むツール、Chimeraが作成されました。このツールは、ランダムキーによるXORでシェルコードを自動的に暗号化し、Visual Studioにインポートして悪意のあるDLLを作成するためのテンプレートイメージを作成できます。

また、SysWhispers3の動的Syscallと、EDRが検索するパターンを回避するために修正されたアセンブリバージョンが使用され、ランダムなNOPスレッドが追加され、レジスタが移動されます。さらに、Early Bird Injectionも使用され、ユーザーが指定できる別のプロセスにシェルコードを注入します。これには、ハードディスクチェックやプロセスがデバッグ中かどうかの確認などのサンドボックス回避メカニズムも含まれます。最後に、ローダーにはタイミング攻撃が仕込まれており、待機可能タイマーを使用してシェルコードの実行を遅延させます。

このツールはテスト済みであり、EDR/AV製品をバイパスし、対象システム上で任意のコードを実行するのに効果的であることが示されています。

Chimera Unleashedの更新バージョンは、静的解析と動的解析の両方を回避する点で顕著な進歩を示しており、特にMicrosoft 365のEndpoint Detection and Response (EDR)システムのコンテキストにおいて顕著です。このツールのサイドローディング技術は、OneDriveのようなよく知られたバイナリに適用された場合でも、検出を免れました。ただし、サイドローディングの側面は検出されなかったものの、ツールで採用されているEarly Bird InjectionプロセスはEDRシステムによって識別されたことに注意が必要です。これは、ツールの全体的なステルス機能をさらに強化するための改良の余地があることを示しています。

ツールの使い方


主な更新内容と機能:

  • 再フォーマットされた構造: プログラム全体が再構成され、開発の容易さと将来の保守性が向上しました。
  • ポリモーフィックコードの統合: ポリモーフィックコードが組み込まれ、回避機能が大幅に強化され、静的解析に対する耐性が向上しました。
  • SysWhispers 3の統合: SysWhispers 2から修正版のSysWhispers 3に移行しました。このアップデートにより、動的syscallと修正されたアセンブリ技術を使用して、EDRシステムが採用するパターン認識メカニズムを回避するツールの能力が向上しました。
  • AES暗号化: シェルコードを保護するためにAES暗号化を実装し、セキュリティと難読化の層を追加しました。
  • Early Bird Injection: このツールはEarly Bird Injection技術を採用しており、ターゲットプロセス内でのよりステルスなコード実行を可能にします。
  • モジュールスタンピング: 将来的に追加される予定で、独自のコードインジェクション技術をツールに実装することも可能です。

ChimeraはPython3で記述されており、追加の依存関係をインストールする必要はありません。

Chimeraは現在、Microsoft TeamsまたはMicrosoft OneDriveの2つのDLLオプションをサポートしています。

userenv.dllを作成できます。これはMicrosoft Teamsに存在しないDLLであり、以下の特定のフォルダに挿入されます。

%USERPROFILE%/Appdata/local/Microsoft/Teams/current

Microsoft OneDriveの場合、スクリプトはバージョンDLLを使用します。これは、onedriveupdater.exeのようなバイナリに存在しないことが一般的であるためです。

コマンドライン引数

Chimera Unleashedは、コマンドライン引数の解析にargparserを使用します。以下の引数が利用可能です:

  • --raw または -r: シェルコードを含むファイルへのパス。必須。
  • --path または -p: Cテンプレートファイルの出力先パス。必須。
  • --pname または -n: シェルコードを注入するプロセスの名前。必須。
  • --dexports または -d: 使用するDLLエクスポートを指定します('teams' または 'onedrive')。必須。
  • --enc または -e: 優先する暗号化方式を指定します(XOR / AES)。必須。
  • --inj または -i: 優先するインジェクション手法を指定します(EB / MS)。必須。
  • --rshell または -s: [オプション] シェルコード変数名を一意の名前に置き換えます。デフォルトは 'encoded_shell' です。
  • または : [オプション] xor暗号化名を一意の名前に置き換えます。デフォルトは 'do_xor' です。

使用例: python Chimera.py --raw <path_to_shellcode> --path <output_path> --pname <process_name> --dexports <exports_file> --enc AES --inj EB --rshell my_shellcode

便利な注意事項

コンパイルプロセスが完了すると、DLLが生成されます。このDLLは、OneDriveの場合は "version.dll"、Microsoft Teamsの場合は "userenv.dll" のいずれかを含む必要があります。次に、元のDLLの名前を変更する必要があります。

たとえば、元の "userenv.dll" は "tmpB0F7.dll" に、元の "version.dll" は "tmp44BC.dll" に名前を変更する必要があります。さらに、デフォルトのスクリプト名を使用する代わりに、DLLエクスポートのソースコードを変更することで、プロキシDLLの名前を必要に応じて変更することもできます。

code.hファイルにはシェルコードが含まれています。

Visual Studioプロジェクトのセットアップ


ステップ1: DLLテンプレートを使用した新しいVisual Studioプロジェクトの作成

  1. Visual Studioを起動し、"新しいプロジェクトの作成"をクリックするか、"ファイル" -> "新規作成" -> "プロジェクト"に進みます。
  2. プロジェクトテンプレートウィンドウで、左側の "Visual C++" を選択します。
  3. 利用可能なテンプレートから "空のプロジェクト" を選択します。
  4. プロジェクトに適切な名前と場所を指定し、"OK" をクリックします。
  5. プロジェクトのプロパティウィンドウで、"構成プロパティ" -> "全般" に移動し、"構成の種類" を "ダイナミック ライブラリ (.dll)" に設定します。
  6. 必要に応じて他のプロジェクト設定を構成し、プロジェクトを保存します。

ステップ2: Visual Studioプロジェクトへのファイルのインポート

  1. 必要なイメージが含まれている "chimera_automation" フォルダを見つけます。
  2. フォルダを開き、次のファイルを特定します: main.c, syscalls.c, syscallsstubs.std.x64.asm
  3. Visual Studioで、"ソリューションエクスプローラー" パネルのプロジェクトを右クリックし、"追加" -> "既存の項目" を選択します。
  4. 各ファイル (main.c, syscalls.c, syscallsstubs.std.x64.asm) の場所を参照し、1つずつ選択します。"追加" をクリックしてプロジェクトにインポートします。
  5. プロジェクトディレクトリ内に "header_files" という名前のフォルダを作成します(まだ存在しない場合)。
  6. "chimera_automation" ディレクトリの "header_files" フォルダにある "syscalls_mem.h" ヘッダーファイルを見つけます。
  7. Visual Studioの "ソリューションエクスプローラー" パネルで "header_files" フォルダを右クリックし、"追加" -> "既存の項目" を選択します。
  8. "syscalls_mem.h" の場所を参照し、選択します。"追加" をクリックしてプロジェクトにインポートします。

ステップ3: ビルドのカスタマイズ

  1. プロジェクトのプロパティウィンドウで、"構成プロパティ" -> "ビルドのカスタマイズ" に移動します。
  2. "ビルドのカスタマイズ" ボタンをクリックして、ビルドカスタマイズダイアログを開きます。

ステップ4: MASMの有効化

  1. ビルドカスタマイズダイアログで、"masm" の横のチェックボックスをオンにして有効にします。
  2. "OK" をクリックしてビルドカスタマイズダイアログを閉じます。

ステップ5:

  1. アセンブリファイルを右クリック -> プロパティ を選択し、以下を設定します。
  2. ビルドから除外 -> いいえ
  3. コンテンツ -> はい
  4. 項目の種類 -> Microsoft Macro Assembler

最終的なプロジェクト設定

コンパイラの最適化


ステップ1: 最適化の変更

  1. Visual Studioで、プロジェクト -> プロパティ を選択します。
  2. C/C++ -> 最適化 に移動し、以下のように変更します。

ステップ2: デバッグ情報の削除

  1. Visual Studioで、プロジェクト -> プロパティ を選択します。
  2. リンカー -> デバッグ -> デバッグ情報の生成 -> いいえ

コントリビューター

オリジナルコントリビューター:

  • George Sotiriadis
    • 初回リリースとコンセプト
    • 更新バージョンでのコードリファクタリング
    • 更新バージョンでの修正版SysWhispers3

コントリビューター:

  • Efstratios Chatzoglou
    • 更新バージョンでのポリモーフィックコード、難読化ツール、AES暗号化の追加
    • コードリファクタリングとさらなる開発の支援

責任の否認


適用される法律で認められる最大限の範囲において、私(George Sotiriadis)および/または私のリポジトリにコンテンツを提出した関連会社は、間接的、偶発的、特別、結果的または懲罰的損害、または逸失利益または収入、直接的または間接的に発生するかどうかを問わず、データ、使用、のれん、またはその他の無形の損失の損失について、以下に起因する場合に責任を負わないものとします。(i) お客様の本リソースへのアクセスおよび/またはアクセス不能 (ii) 本リソースによって参照される第三者の行為またはコンテンツ(これには、他のユーザーまたは第三者の名誉毀損、攻撃的、または違法な行為またはコンテンツが含まれますが、これに限定されません) (iii) 本リソースから取得したコンテンツ

参考文献


https://www.ired.team/offensive-security/code-injection-process-injection/early-bird-apc-queue-code-injection

https://evasions.checkpoint.com/

https://github.com/Flangvik/SharpDllProxy

https://github.com/jthuraisamy/SysWhispers2

https://systemweakness.com/on-disk-detection-bypass-avs-edr-s-using-syscalls-with-legacy-instruction-series-of-instructions-5c1f31d1af7d

https://github.com/Mr-Un1k0d3r

ツールをダウンロード
--rxor
-x
  • --rkey または -k: [オプション] キー変数名を一意の名前に置き換えます。デフォルトは 'key' です。
  • --rsleep または -z: [オプション] 実行中に含める合計スリープ時間(秒)。デフォルトは4000です。
  • --size または -f: [オプション] ジャンクデータのファイルサイズ(KB)。ゼロ(0)は無効、1はランダムなファイルサイズ。デフォルトは0です。