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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/cobalt-strike/eden
ペネトレーションテストフレームワークエクスプロイトフレームワークシェルコードポストエクスプロイト学習と教育レッドチーミングペイロード開発
GitHubcobalt-strike/eden

eden

Raphael Mudgeのページストリーミング技術とモジュラーコールゲート(Draugr)を組み合わせた、Crystal Palaceで構築されたCobalt Strike用のPoC UDRL

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Eden

drawing

Eden loaderは、Crystal Palaceを使用して構築されたCobalt Strike用のPoC UDRLであり、Raphael Mudgeのページストリーミング技術とモジュラコールゲート(現在はSleepmask-VS DraugrコールゲートBOFのPICバージョン)を組み合わせています。

Eden loaderの目的は次のとおりです:

  • Crystal Palaceを使用して「機能」を組み合わせ(および再利用)してカスタムローダー/ツールを迅速に開発する力を示すこと
  • 他の人が構築するためのサンプルリソースとして機能すること
  • セキュリティ実践者がUDRLの仕組みを理解するのを助けること(完全にデバッグ可能です)
  • セキュリティ会話に情報提供/刺激を与えること

Eden loaderの詳細については、付属のブログをご覧ください。

注記: Edenの目的は、Crystal Palaceを使用して異なる「実行単位」(すなわち機能)を組み合わせてカスタムローダーを作成するアイデアを示すことです。完全に「回避型」のローダーを意図しておらず、そのため設計上、基本的なOPSEC機能がいくつか欠けています。例えば、RWXメモリを使用し、Beaconのヒープメモリを追跡/マスクしないため、このようなYARAシグネチャに対して脆弱です。

クイックスタートガイド

注記: このクイックスタートガイドは、Crystal Palaceをダウンロード/ビルドし、以下の手順を完了して開発環境を設定していることを前提としています。

  1. まず、以下のMalleable C2設定を行う必要があります:
root@kitploit:~
stage {
    set sleep_mask "false";
}
  1. リポジトリルートでWSLターミナルを開き、Eden loaderをビルドします:make clean; make。
  2. crystalpalace.jarをCobalt Strikeクライアントディレクトリにコピーします。
  3. eden.cnaをCobalt Strikeクライアントにロードします。
  4. 次にペイロードをエクスポートすると、Edenが自動的に適用されます。スクリプトコンソールの出力を確認することで検証できます:
root@kitploit:~
[14:55:55] [*] Generating Payload: HTTP -- Type: HTTP -- Arch: x64 -- Exit Function: Thread -- System Call: None -- HTTP Library: wininet
[14:55:56] [EDEN] Parsing C:\Users\wb\Desktop\eden\eden.spec...
[14:55:56] [EDEN] Applying eden ldr spec...
[14:55:56] [EDEN] Payload Size: 387060 bytes
[14:55:56] [*] Using user modified reflective DLL! DLLName=resources/beacon.x64.rl0k.dll Arch=x64

注記: EdenはHTTP(S)、DNS、およびPivot Beaconsをサポートしています。

デバッグガイド

リリース時点のCrystal Palaceの制限の一つは、mingwでビルドされたオブジェクトファイルのみをサポートしていることです。MSVCやClangでビルドされたCOFFを使用しようとすると、通常は再配置エラーが発生します。mingwはpdbファイルを直接サポートしていないため、複雑なWindowsトレードクラフトを作成する際のデバッグが難しい場合があり、これは不便です。ただし、Makefileに-gオプションを追加することで、実行可能ビルドにデバッグ情報を埋め込むことができます。これにより、WinDbgでコードをステップ実行できるようになります。このプロセスの詳細については、Rastamouseによる次のブログを読むことをお勧めします。

このリポジトリは上記のアプローチを使用して、Draugr(draugr.x64.exe)とページストリーミングコード(guardexec.x64.exe)のデバッグビルドをデフォルトでビルドします。Draugrデバッグビルドには依存関係がないため、そのままビルドできますが、ページストリーミング/IATフックコードをステップ実行/デバッグする場合は、以下の手順に従う必要があります:

1. ローダーなしでBeaconをエクスポート:

  • debug/export_beacon_with_no_ldr.cnaをCSクライアントにロードし、ステージレスなraw x64 (HTTP) Beaconを/eden/debug/ディレクトリにエクスポートします。これにより、リフレクティブローダーなしのBeacon DLLがエクスポートされ、guardexecエントリポイントをモックするために使用できます。
  • (WSLで) $ xxd -i ./beacon_x64.bin > debug_beacon.h

2. Crystal PalaceからDraugr PICスタブをエクスポート:

  • これを行うには、WSLから$ ./piclink /<path>/eden/debug/draugr.spec x64 /<path>/eden/debug/draugr.binを実行してCrystal Palaceを実行する必要があります。これにより、Crystal Palaceを使用してDraugr PICスタブのみが出力され、guardexecエントリポイントのモックに使用できます。
  • (WSLで) $ xxd -i ./draugr.bin > debug_druagr.h

3. WinDbgでデバッグを開始

  • 上記の手順を実行した後、Edenをリビルドします:make clean;make
  • WinDbgを開き、実行可能ファイル(/eden/bin/draugr.exeまたは/eden/bin/guardexec.exe)を起動するを選択します。
  • ソースファイルを開くを選択し、該当する.cファイル(例:ページストリーミングコードをデバッグする場合はguardexec.c)を選択します。
  • スタンドアロンのコールスタックスプーフィングDraugrバイナリ、またはIATフックを持つライブBeaconのいずれかをステップ実行/ブレークポイントを設定できるようになりました。警告として、デバッグモードではマスキングは正しく機能しません。これは、ペイロード生成中にCrystal Palaceがキーをパッチする必要があるためです。

注記: ローダー用のデバッグ実行可能ファイルはありません。なぜなら、暗号化DLLとそのキーのようなものに対してCrystal Palaceにデバッグペイロードをエクスポートさせる明白な方法がないからです。そのため、モックの「暗号化」PICバッファを渡すことは非自明になります。

設計上の考慮事項

  1. Eden loaderは主に、異なる**「機能」**を組み合わせて新しいローダーを作成することでCrystal Palaceの力を示すことを目的としています。このアイデアは、このリポジトリで実現されているよりもはるかに進めることができます(例:COFFモジュール(ガードレール、コールゲート、スリープ難読化など)を介して完全にカスタマイズ可能な「静的」PICローダー)。

  2. Eden loaderは明示的にDraugrのPICバージョンを使用しており、Beaconのライフサイクルのすべての呼び出しを偽装できる(すなわち、リフレクティブロードプロセスで使用されるVirtualAlloc/LoadLibrary呼び出し)。場合によっては、これは過剰である可能性があります(例:EDRがLoadLibraryへのバックなし呼び出しを気にしない場合など)。その場合、はるかにシンプルなDraugrのPICO(=='BOF')相当に変更することができます。

  3. Eden loaderは意図的に「コールゲート」をローダーから切り離すよう努めています。これはモジュール性のための設計であり、BeaconGate/コールゲートBOFを交換できるという考えです。したがって、Draugrコールゲートコードはすべて独自のオブジェクトファイルに自己完結しています。これを別の「機能」に置き換えることで、EdenのTTPを大幅に変更できます。

  4. Eden loaderは意図的にCrystal Palaceのより最近の機能を使用していません。例として、mergelibはCrystal Palaceの共有ライブラリLibTCGで使用できます。ただし、これはコードをデバッグする機能を失うことを意味します。

トラブルシューティング

ページストリーム技術は、特定のコマンドでBeaconのパフォーマンスに影響を与える可能性があります(例:デフォルトでは、4つの可視ページが構成されている場合、プロセスインジェクションに**約1分(!)**かかります)。guardexec.hの#define MAXVISIBLEを増やすことで、ほとんどの問題を解決できます(Edenのデフォルト値は6です)。一般的な参考情報として、ページストリーミングはプロセスインジェクション技術に問題を引き起こす可能性があります(特にタイミングに依存する場合)。

なぜこれをリリースするのか?

https://aff-wg.org/2025/03/13/the-security-conversation/

関連作品/クレジット

Eden loaderはCrystal Palace(https://tradecraftgarden.org/crystalpalace.html)を使用して構築されており、以下のプロジェクトを活用しています:

  • Raphael Mudgeのページストリーミング技術:https://tradecraftgarden.org/pagestream.html。
  • NtDallasのDraugrコールスタックスプーフィング技術:https://github.com/NtDallas/Draugr。
  • サンプルBOFコールゲートを含むS​​leepmask-VS。これらの「機能」は、Crystal Palaceで使用するためにPICにコンパイルするために転用および修正されました。
  • RastamouseのCrystal-Kitは、同じくDraugr BeaconGate BOFを利用しているが、実装が異なる類似プロジェクトです。

最後に、開発中に役立ったCrystal Palaceに関するブログを執筆してくれた@rastamouseに感謝します。

ツールをダウンロード