
_____ ______ _____ _____
/ ____| (_) | ____| __ \| __ \
| | _ __ _ _ __ ___ ___ ___ _ __ | |__ | | | | |__) |
| | | '__| | '_ ` _ \/ __|/ _ \| '_ \| __| | | | | _ /
| |____| | | | | | | | \__ \ (_) | | | | |____| |__| | | \ \
\_____|_| |_|_| |_| |_|___/\___/|_| |_|______|_____/|_| \_\
開発者 : Matthias Ossard
https://github.com/Helixo32
CrimsonEDR は、特定のマルウェアパターンを特定するように設計されたオープンソースプロジェクトであり、エンドポイント検出および応答(EDR)を回避するスキルを磨くためのツールを提供します。多様な検出方法を活用することで、セキュリティ回避戦術への理解を深めることができます。
| 検出 | 説明 |
|---|---|
| Direct Syscall | マルウェアが従来のAPIフックをバイパスするためによく使用する、直接システムコールの使用を検出します。 |
| NTDLL Unhooking | NTDLLライブラリ内の関数をアンフックする試みを識別します。これは一般的な回避手法です。 |
| AMSI Patch | バイトレベルの分析を通じて、Anti-Malware Scan Interface(AMSI)への変更を検出します。 |
| ETW Patch | マルウェアが検出を回避するために頻繁に操作する Event Tracing for Windows(ETW)のバイトレベルの変更を検出します。 |
| PE Stomping | PE(Portable Executable)ストンピングのインスタンスを識別します。 |
| Reflective PE Loading | マルウェアが静的解析を回避するために使用する手法である、PEファイルのリフレクティブローディングを検出します。 |
| Unbacked Thread Origin | バックされていないメモリ領域から発生するスレッドを識別します。これは悪意のある活動を示すことがよくあります。 |
| Unbacked Thread Start Address | バックされていないメモリを指す開始アドレスを持つスレッドを検出します。これはコードインジェクションの可能性のある兆候です。 |
| API hooking | NtWriteVirtualMemory 関数にフックを設定し、メモリ変更を監視します。 |
| Custom Pattern Search | ユーザーが JSON ファイルで指定された特定のパターンを検索できるようにし、既知のマルウェアシグネチャの識別を容易にします。 |
CrimsonEDR を使い始めるには、次の手順に従ってください。
sudo apt-get install gcc-mingw-w64-x86-64
git clone https://github.com/Helixo32/CrimsonEDR
cd CrimsonEDR;
chmod +x compile.sh;
./compile.sh
Windows Defender やその他のウイルス対策プログラムは、AMSI がパッチされているかどうかを確認するために使用されるバイトが含まれているため、DLL を悪意のあるものとしてフラグする可能性があります。CrimsonEDR を使用する際は、中断を避けるために DLL をホワイトリストに登録するか、ウイルス対策を一時的に無効にしてください。
CrimsonEDR を使用するには、次の手順に従ってください。
ioc.json ファイルが、監視対象の実行可能ファイルが起動されるカレントディレクトリに配置されていることを確認してください。たとえば、監視対象の実行可能ファイルを C:\Users\admin\ から起動する場合、DLL は C:\Users\admin\ioc.json にある ioc.json を探します。現在、ioc.json には msfvenom に関連するパターンが含まれています。独自のパターンを次の形式で簡単に追加できます。{
"IOC": [
["0x03", "0x4c", "0x24", "0x08", "0x45", "0x39", "0xd1", "0x75"],
["0xf1", "0x4c", "0x03", "0x4c", "0x24", "0x08", "0x45", "0x39"],
["0x58", "0x44", "0x8b", "0x40", "0x24", "0x49", "0x01", "0xd0"],
["0x66", "0x41", "0x8b", "0x0c", "0x48", "0x44", "0x8b", "0x40"],
["0x8b", "0x0c", "0x48", "0x44", "0x8b", "0x40", "0x1c", "0x49"],
["0x01", "0xc1", "0x38", "0xe0", "0x75", "0xf1", "0x4c", "0x03"],
["0x24", "0x49", "0x01", "0xd0", "0x66", "0x41", "0x8b", "0x0c"],
["0xe8", "0xcc", "0x00", "0x00", "0x00", "0x41", "0x51", "0x41"]
]
}
以下の引数を指定して CrimsonEDRPanel.exe を実行します:
-d <path_to_dll>: CrimsonEDR.dll ファイルへのパスを指定します。
-p <process_id>: DLL をインジェクションする対象プロセスのプロセス ID (PID) を指定します。
例:
.\CrimsonEDRPanel.exe -d C:\Temp\CrimsonEDR.dll -p 1234
このプロジェクトの開発に役立った便利なリソースをいくつか紹介します。
ご質問、フィードバック、サポートについては、以下の方法でご連絡ください。