はじめに
Elastic Security Labsは、商用AV/EDR回避フレームワークであるSHELLTERを利用してマルウェアをロードしていると思われる複数のキャンペーンを観測しています。SHELLTERは、制裁対象のセキュリティ評価のために攻撃的なセキュリティ業界に販売されており、レッドチームのオペレーターは、最新のマルウェア対策ソリューションに対してC2フレームワークをより効果的に展開できます。
重要なポイント
- 脅威集団が買収した商業回避フレームワーク「SHELLTER」
- SHELLTERは、ライセンスメタデータに記録されているように、2025年4月以降、複数のインフォスティーラーキャンペーンで使用されています
- SHELLTERは、分析と検出を回避するために独自の機能を採用しています
- Elastic Security LabsがSHELLTERで保護されたバイナリの動的アンパッカーをリリース
Throughout this document we will refer to different terms with “shellter” in them. We will try to
maintain the following style to aid readability:
* “Shellter Project” - the organization that develops and sells the Shellter evasion framework
* “Shellter Pro Plus/Elite” - the commercial names for the tools sold by the Shellter Project
* “SHELLTER” - the loader we have observed in malicious usage and are detailing in this report
* “SHELLTER-protected” - a descriptor of final payloads that the SHELLTER loader delivers
SHELLTER 概要
SHELLTERは、10年以上にわたってレッドチームを支援してきた 商業回避フレームワーク です。これは、攻撃的なセキュリティサービスプロバイダーがウイルス対策ツールや、最近ではEDRツールを回避するのに役立ちます。これにより、レッドチームは、セキュリティベンダーが検出シグネチャを作成する際に通常必要となる絶え間ない開発なしに、C2フレームワークを活用できます。
While the Shellter Project does offer a free version of the software, it has a limited feature-set,
only 32-bit .exe support, and is generally better understood and detected by anti-malware
products. The free version is not described in this article.
SHELLTERは、他の多くの攻撃的なセキュリティツール(OST)と同様に、デュアルユース製品です。悪意のあるアクターは、一度アクセスすると、SHELLTERを使用してツールの寿命を延ばすことができます。Shellter Projectのような評判の良い攻撃的なセキュリティベンダーは、自社製品が悪意を持って使用されるリスクを軽減するための 保護手段 を実装しています。これらの措置には、地理的な販売制限、組織のデューデリジェンス、エンドユーザーライセンス契約(EULA)が含まれます。これらの取り組みにもかかわらず、高いモチベーションを持つ悪意のあるアクターは依然として課題となっています。
6月中旬に行われた当社の調査では、2025年4月下旬からSHELLTERを使用してペイロードをパッケージ化している、金銭的な動機による複数のインフォスティーラーキャンペーンが特定されました。証拠は、これが4月16日にリリースされたShellter Eliteバージョン11.0であることを示唆しています、2025。
SHELLTERは、特定の動作環境、ペイロード配信メカニズム、および暗号化パラダイムに合わせた幅広い構成可能な設定を提供する複雑なプロジェクトです。このレポートでは、特定された悪意のあるキャンペーンで観察された機能のみに焦点を当てています。一部の機能は一般的であるように見えますが、使用可能なすべての機能を包括的にレビューすることは、このドキュメントの範囲を超えています。
SHELLTER Loader - 技術詳細
次のセクションでは、Shellter Project が公開している Elite Exclusive Features の一部に似た機能について説明します。私たちの評価は、シェルターエリートを観察していることを示しています。この結論は、開発者の公開ドキュメントのレビュー、さまざまなビルドのさまざまなサンプルの観察、コードの類似性が高いこと、およびほとんど観察されない回避機能の普及に基づいています。
ポリモーフィックジャンクコード
SHELLTERで保護されたサンプルは、通常、ポリモーフィック難読化を備えた自己修正シェルコードを使用して、正当なプログラムに自分自身を埋め込みます。この正当な命令とポリモーフィックなコードの組み合わせにより、これらのファイルは静的な検出とシグネチャを回避し、検出されないままになります。
SHELLTER で保護された RHADAMANTHYS サンプルの VirtualAlloc
にブレークポイントを設定すると、このマルウェア サンプルのコールスタックを確認できます。
このタイプのポリモーフィック コードは、静的逆アセンブラーを混乱させ、エミュレーションの作業を損ないます。これらの手順は、アンパックの段階で表示され、新しいシェルコードスタブにメモリを割り当てるために、これらのWindows API関数のペアのいずれかを呼び出します。
GetModuleHandleA
/GetProcAddress
CreateFileMappingW
/MapViewOfFile
SHELLTER 機能は、新しい実質的な機能に含まれています。これは、シェルコードスタブに追加の開梱とジャンクの指示をした後に到達します。IDA ProまたはBinary Ninjaは、この段階でコードを正常に逆コンパイルできます。
ファイルマッピングによるシステムモジュールのアンフック
AV/EDR ベンダーの API フッキング手法を回避するために、SHELLTER は NtCreateSection
と NtMapViewOfSection
を介して ntdll.dll
の新しいコピーをマップします。
また、NtOpenSection
と NtMapViewOfSection
を使用して KnownDLLs
ディレクトリからクリーンなntll.dll
をロードすることでフックを解除するための 2 番目のオプションもあります。
ペイロードの暗号化と圧縮
SHELLTERは、AES-128 CBCモードを使用して、最終的なユーザー定義ペイロードを暗号化します。この暗号化は、次の 2 つの方法のいずれかで行われます。
- 埋め込みキー/IV: ランダムに生成されたキー/IVペアは、SHELLTERペイロード内に直接埋め込まれます。
- サーバーフェッチされたキー/IV: キー/IV ペアは、敵対者が制御するサーバーからフェッチされます。
組み込みオプションを利用したサンプルでは、基礎となるペイロードを正常に回復しました。
暗号化された BLOB は、各 SHELLTER ペイロードの末尾にあります。
AESキーとIVは、初期化ルーチンの一部としてペイロードの非常に早い段階でスタック変数にロードされる定数として見つけることができます。
Shellter Elite v11.0では、デフォルトでは、ペイロードは暗号化される前に LZNT1
アルゴリズムを使用して圧縮されます。
DLL のプリロードと呼び出しスタックの回避
「Force Preload System Modules」機能は、 advapi32.dll
、 wininet.dll
、 crypt32.dll
などの重要なWindowsサブシステムDLLのプリロードを可能にし、基盤となるペイロードの操作をサポートします。次の 3 つの構成可能なオプションが含まれます。
--Force-PreloadModules-Basic
(汎用モジュール16個)--Force-PreloadModules-Networking
(5つのネットワーク専用モジュール)--Force-PreloadModules-Custom
(ユーザー定義モジュール 16 個まで)
これらのモジュールは、 LoadLibraryExW
または LdrLoadDll
を介してロードされます。カスタムの Vectored Exception Handlers(VEH)による API プロキシの詳細については、次のセクションで説明します。
以下は、SHELLTERで保護されたペイロードにプリロードされたモジュールのリストの例で、 --Force-PreloadModules-Basic
オプションに一致するもので、C2のBITS(Background Intelligent Transfer Service)を悪用する単純なC++ローダークライアントをデプロイする サンプル にあります。これは 、一部の脅威が好む珍しいアプローチです。
次の例は、サンプルの読み込み LUMMA にある --Force-PreloadModules-Networking
オプションに一致するリストです。
この機能(Shellter Pro Plus v10.xでリリース) は、コールスタック回避機能を活用して、ネットワークおよび暗号化関連のライブラリをロードする際に LoadLibraryExW
コールのソースを隠します。
次に、wininet.dll
をロードするときのprocmon
トレースの例を示します。これは、切り捨てられた呼び出しスタックを示しています。
--Force-PreloadModules-Basic
フラグが有効になっている同じサンプルでは、プリロードされたモジュールの依存関係もコールスタックの破損の影響を受けていることがわかりました。たとえば、urlmon.dll
は、その依存関係 iertutil.dll
、 srvcli.dll
、 netutils.dll
の LoadLibraryExW
呼び出しのソースも隠します。
AV/EDRモジュールのリンク解除
SHELLTERには、Process Environment Block(PEB)内に配置されたデコイDLLモジュールのリンクを解除する機能が含まれています。これらのおとりモジュールは、シェルコードがPEB LDRリストを手動で列挙しようとするときに監視するためのカナリアとして、一部のセキュリティベンダーによって使用されています。PEB LDR は、プロセスのロードされたモジュールに関する情報を含む Windows の構造です。
ハッシュに基づく一意のモジュール名が 1 つだけ観察され (サンプルごとに異なる)、最終的には kern3l32.dll
[sic] に解決されます。
API ハッシュの難読化
観測されたサンプルでは、時間ベースのシーディングを使用してAPIアドレスを難読化しています。マルウェアは、最初にアドレス0x7FFE0014
のKUSER_SHARED_DATA
構造体からSystemTime
値を読み取り、動的XORキーを導き出します。
次に、API 名に対して seeded-ROR13 ハッシュ アルゴリズムを使用して、実行時に関数アドレスを解決します。
解決されると、必要に応じて、これらのポインターは、時間ベースのキーで XOR 演算を行い、ビットごとの回転を適用してからルックアップ テーブルに格納されることで難読化されます。この戦術は、他の関数ポインタ、syscall スタブ、ロードされたモジュールのハンドルなど、さまざまなデータを隠すためにバイナリ全体に適用されます。
ライセンスチェックと自己武装解除
各SHELLTERペイロードには、3つの FILETIME
構造体が埋め込まれています。サンプルの例では、これらは次のとおりであることがわかりました。
- ライセンス有効期限 (2026-04-17 19:17:24.055000)
- 自発武装解除日時 (2026-05-21 19:44:43.724952)
- 感染開始日時 (2025-05-21 19:44:43.724952)
ライセンスの有効期限チェックでは、現在の時刻とライセンスの有効期限の日時が比較され、コンテキスト構造に license_valid
フラグが設定されます。ライセンスの有効性チェックには、 28 つのユニークなコールサイト(ライセンスされた機能 28 可能性があります)があり、 license_valid
フラグはメインコードロジックがスキップされるかどうかを決定し、ライセンスの有効期限の日時がキルスイッチとして機能することを確認します。
デフォルトでは、自己武装解除日は最初の感染開始日からちょうど1年後に設定されます。self-disarm フラグがトリガーされると、いくつかのクリーンアップ・ルーチンが実行されます。このようなルーチンの 1 つに、手動でロードされた ntdll
モジュール (存在する場合) のマッピングを解除し、手動でマップされた ntdll
モジュールまたはプロセスの初期化中にロードされたモジュールを参照する NTAPI ルックアップ テーブルをクリアすることが含まれます。
自己武装解除と感染の開始日時はサンプルごとに異なりますが、ライセンスの有効期限の日時 (2026-04-17 19:17:24.055000)は一定です。
この時間は、The Shellter Projectが発行するライセンスごとに一意に生成される可能性があります。もしそうなら、Shellter Eliteの1つのコピーだけが悪意のある使用のために取得されたという仮説を支持することになります。この値は静解析には表示されませんが、アンパックされた最初のステージに表示されます。
SHA256 | ライセンスの有効期限 | 自己武装解除 | 感染開始 | ファミリー |
---|---|---|---|---|
c865f24e4b9b0855b8b559fc3769239b0aa6e8d680406616a13d9a36fbbc2d30 | 2026年04月17日 19:17:24.055000 | 2026-05-27 19:57:42.971694 | 2025年05月27日 19:57:42.971694 | ラダマンティス |
7D0C9855167E7C19A67F800892E974C4387E1004B40EFB25A2A1D25A99B03A10 | 2026年04月17日 19:17:24.055000 | 2026年05月21日 19:44:43.724953 | 2025-05-21 19:44:43.724953 | 不明 |
b3e93bfef12678294d9944e61d90ca4aa03b7e3dae5e909c3b2166f122a14dad | 2026年04月17日 19:17:24.055000 | 2026年05月24日 11:42:52.905726 | 2025年05月24日 11:42:52.905726 | ARECHCLIENT2 |
DA59D67CED88BEAEE618B9D6C805F40385D0301D412B787E9F9C9559D00D2C880 | 2026年04月17日 19:17:24.055000 | 2026年04月27日 22:40:00.954060 | 2025年04月27日 22:40:00.954060 | LUMMA |
70EC2E65F77A940FD0B2B5C0A78A83646dec17583611741521E0992C1BF974F1 | 2026年04月17日 19:17:24.055000 | 2026年05月16日 16:12:09.711057 | 2025年05月16日 16:12:09.711057 | 不明 |
以下は、調査した不正なSHELLTERサンプルでこのハードコードされたライセンス有効期限の値を特定するために使用できるYARAルールです。
rule SHELLTER_ILLICIT_LICENSE {
meta:
author = "Elastic Security"
last_modified = "2025-07-01"
os = "Windows"
family = "SHELLTER"
threat_name = "SHELLTER_ILLICIT_LICENSE"
strings:
// 2026-04-17 19:17:24.055000
$license_server = { c7 84 24 70 07 00 00 70 5e 2c d2 c7 84 24 74 07 00 00 9e ce dc 01}
condition:
any of them
}
メモリスキャン回避
SHELLTER で保護されたサンプルは、検出を回避するために、ランタイム回避を含むさまざまな手法を実装していました。これらのタイプの手法には、次のものがあります。
- 実行時の命令のデコードと再エンコード
- 非アクティブ・メモリー・ページに対する実行許可の削除
- フットプリントの削減、YARAを使用したインメモリ署名への影響
- Windows 内部構造 (
PEB
など) を一時的なデータ保持スポットとして使用する
SHELLTER は、オペレーティング システムのバージョンに基づいてトランポリン スタイルのスタブを生成します。このスタブを保持する 4 KB ページがあり、メモリのアクセス許可は NtQueryVirtualMemory
と NtProtectVirtualMemory
を使用して変動します。
ページがアクティブになると、エンコードされたバイトはこのアドレス ( 0x7FF5FFCE0000
) で観察できます。
SHELLTER は、KUSER_SHARED_DATA
構造体から派生した SystemTime
キーを使用して、XOR ループを通じてアクティブになると、このページをデコードします。
以下は、この同じメモリページ(0x7FF5FFCE0000
)で、システムコール(ntdll_NtOpenFile
)のデコードされたトランポリンスタブを示しています。
機能が必要な場合、メモリ ページのアクセス許可は読み取り/実行 (RX) アクセス許可で設定されます。実行後、ページは非アクティブに設定されます。
実行時に主要な機能を継続的に保護すると、分析と検出の両方の作業が複雑になります。このレベルの保護は、一般的なマルウェアサンプルでは一般的ではありません。
間接的なシステムコール/コールスタックの破損
前のセクションで示したように、SHELLTER はトランポリン ベースの間接システム呼び出しを使用してユーザー モード フックをバイパスします。syscall
を直接呼び出す代わりに、ntdll.dll
からのクリーンな syscall
命令のアドレスを使用してスタックを準備します。次に、 ret
命令がこのアドレスを RIP
レジスタにポップし、実行を syscall
命令にこっそりと転送します。
以下は、Elastic Defend VirtualProtect
イベントの例で、2 つの回避 (間接的な syscall とコールスタックの切り捨て) の組み合わせを示しています。この手法は、さまざまなセキュリティ検出メカニズムをバイパスまたは中断する可能性があります。
高度な VM/サンドボックス検出
SHELLTER のドキュメントでは、ハイパーバイザー検出機能について言及しています。同様の機能は、悪意のあるサンプルで、CPUID
および_bittest
命令を使用してZwQuerySystemInformationEx
を呼び出した後に観察されます。この機能は、ハイパースレッディング テクノロジ (HTT) フラグと共にさまざまな CPU 情報を返します。
デバッガー検出 (UM/KM)
SHELLTER では、プロセス ヒープ フラグを使用したユーザー モードとカーネル モードのデバッグ検出と、_KUSER_SHARED_DATA
構造体による KdDebuggerEnabled
フラグのチェックが採用されています。
AMSI バイパス
AMSI バイパスには 2 つの方法があります。最初の方法は、AMSI 関数のメモリ内パッチ適用です。この手法では、関数で特定のバイト パターンを検索し、それらを変更して関数のロジックを変更します。たとえば、4 バイトの文字列 "AMSI" を null バイトで上書きし、条件付きでその反対にジャンプします。
2 番目の方法は、もう少し洗練されています。まず、必要に応じて、amsi.dll
内の CLSID_Antimalware
GUID 定数{fdb00e52-a214-4aa1-8fba-4357bb0072ec}
を見つけ、書き込み可能なデータ セクションでそのポインターを特定し、そのポインターを破損して実際の GUID の 8 バイト前に指すことで、コンポーネント オブジェクト モデル (COM) インターフェイスの検索を妨害しようとします。
ターゲット ポインターは、AMSI モジュールのアクティブ テンプレート ライブラリ (ATL) オブジェクト マップ エントリの CLSID ポインターであり、 DllGetClassObject
関数が登録済みの COM クラスを検索して作成するために使用する構造体です。このマップのポインターが破損すると、マルウェア対策プロバイダーの検索が失敗し、作成できなくなり、AmsiInitialize
CLASS_E_CLASSNOTAVAILABLE
例外で失敗します。
次に、 AmsiInitialize
を呼び出します - 前のパッチが行われず、API 呼び出しが成功した場合は、フォールバック メカニズムとして vtable パッチを実行します。AmsiInitialize
から取得した HAMSICONTEXT
には、IAntimalware
COM オブジェクトへのポインタが含まれており、COM オブジェクトには仮想関数テーブルへのポインタが含まれています。バイパスは、この表で IAntimalware::Scan
関数を対象とします。これを中和するために、コードは IAntimalware::Scan
関数を含むメモリ ページで ret
命令を検索します。
適切なガジェットが見つかったら、 Scan
関数ポインタを ret
ガジェットのアドレスで上書きします。その結果、その後の AmsiScanBuffer
または AmsiScanString
の呼び出しでは、パッチが適用された vtable が呼び出され、 ret
命令に直接ジャンプして、すぐに戻ります。
ベクトル化例外ハンドラ API プロキシ
高度な API プロキシ メカニズムがあり、これは、制御フロー プロキシとして機能するカスタム例外ハンドラを介して、解決された API と細工された syscall スタブへの呼び出しをリダイレクトすることで実現されます。これは、セットアップと実行の 2 つのフェーズに分けることができます。
フェーズ 1 では、例外ハンドラーの "トリガー" として機能する 2 つの特別なメモリ ページが割り当てられます。これらのページの保護は PAGE_READONLY
に設定されており、そこでコードを実行しようとすると、意図された STATUS_ACCESS_VIOLATION
例外が発生します。これらのトリガーページのアドレスは、コンテキスト構造に格納されます。
api_call_trigger_page
- プロキシを開始するために呼び出されるページ。api_return_trigger_page
- 実際の API が戻るページ。
バイナリの例外ハンドラ テンプレートは、割り当てられた領域にコピーされ、 RtlAddVectoredExceptionHandler
を使用してプロセスのプライマリ ハンドラとして登録されます。ハンドラ内のハードコードされたマジックプレースホルダー値 (0xe1e2e3e4e5e6e7e8
) は、コンテキスト構造体自体へのポインタで上書きされます。
例の callsite を見ると、VEH プロキシを使用する場合、 GetCurrentDirectoryA
のアドレスは ctx_struct->target_API_function
に格納され、API 関数ポインタはコールトリガーページのアドレスで上書きされます。その後、このトリガー ページが呼び出され、 STATUS_ACCESS_VIOLATION
例外がトリガーされます。
制御フローは例外ハンドラにリダイレクトされます。例外コンテキストのエラーアドレスがチェックされ、呼び出しトリガーページと一致する場合は、受信 API プロキシ呼び出しであることを認識し、次の処理を実行します。
- 元の差出人住所を保存する
- スタック上のリターン アドレスをリターン トリガー ページのアドレスで上書きします
RIP
レジスタを、以前にctx_struct->target_API_function
に保存した実際のAPIアドレスに設定します。
その後、 GetCurrentDirectoryA
呼び出しが実行されます。完了すると、戻りトリガー ページにジャンプし、2 番目の STATUS_ACCESS_VIOLATION
例外が発生し、制御フローが例外ハンドラーにリダイレクトされます。障害のあるアドレスは、リターン トリガー ページと一致するかどうかを確認するためにチェックされます。その場合、 RIP
は元のリターン アドレスに設定され、制御フローは元の呼び出しサイトに戻ります。
キャンペーン
6月、Elastic Security Labsは、各バイナリに存在するライセンス情報によって記録された、Shellter Eliteによって保護されたさまざまな情報窃取型ツールを展開する複数のキャンペーンを特定しました。上記のツールを活用することで、さまざまなキャンペーンの脅威アクターが、この高度に回避性の高いローダーを独自のワークフローにすばやく統合していることが確認されました。
LUMMA
LUMMA infostealer は、バイナリ内のメタデータから証明されるように、4 月下旬から SHELLTER と共に配布されていました。初期の感染ベクトルは明らかではありませんが、(ANYを使用して) 確認 することができました。RUN) は、 関連ファイルが MediaFire ファイル ホスティング プラットフォームでホストされていることを確認できました。
売りたい
5月16日、Twitter/Xユーザーの @darkwebinformer、キャプション付きのスクリーンショットを 投稿 しました。
🚨Shellter Elite v11.0が人気フォーラムで売りに出されました
この場合の「エクスプロイトギャラント」とは、取引を仲介するエスクローのような第三者を指します。
ARECHCLIENT2
5月頃から、コンテンツクリエイター をターゲットにした キャンペーンが見られ、スポンサーシップの機会を中心としたルアーが見られました。これらは、Udemy、Skillshare、Pinnacle Studio、DuolingoなどのブランドになりすましたYouTubeチャンネルを持つ個人に送信されるフィッシングメールのようです。電子メールには、SHELLTERで保護された実行可能ファイルがパッケージ化された正当なプロモーションコンテンツを含むアーカイブファイル(.rar
)へのダウンロードリンクが含まれています。
この基礎となる 実行可能ファイル は、以前のSHELLTER分析と特性と動作を共有しています。この記事を書いている時点では、VirusTotalでの検出率が非常に低い サンプル がまだ確認されています。これは、ポリモーフィックコード、正当なアプリケーションへのコードのバックドア化、コード署名証明書の適用など、静的解析を回避するためのカスタムビルド機能に関連する複数の要因によるものです。
このファイルで観察された埋め込みペイロードは、SECTOP RATとも呼ばれるインフォスティーラー ARECHCLIENT2をデプロイします。このスティーラーのC2は、6月17日にGHOSTPULSEローダーに関連してこの脅威について話し合ったときに、私たちのチームが以前に特定した185.156.72[.]80:15847,
を指しています。
ラダマンティス
これらの感染は、ゲームのハッキングやゲームのMODなどのトピックを対象としたYouTubeの動画から始まり、MediaFireでホストされている悪意のあるファイルにリンクする動画コメントが表示されます。
以前にこの方法を使用して配布された ファイルの 1つは、この公開時点で異なる個人によって一意の時間 126 提出されています。
このファイルは、前の SHELLTER 分析セクションの同じ基本コードと同じ動作特性を共有します。このサンプルに埋め込まれたペイロードは、RHADAMANTHYS infostealer をデプロイします。
シェルターアンパッカー
Elastic Security Labsは、SHELLTERで保護されたバイナリのダイナミックアンパッカーを リリース します。このツールは、動的解析手法と静的解析手法の組み合わせを活用して、SHELLTERで保護されたバイナリから複数のペイロードステージを自動的に抽出します。
SHELLTERは幅広いオプション機能を提供しているため、このアンパッカーは完全には包括的ではありませんが、テストされたサンプルの大部分を正常に処理します。サポートされていないバイナリの場合でも、通常は少なくとも 1 つのペイロード ステージを抽出できます。
安全上の理由から、このツールは分離された仮想マシン内でのみ実行する必要があります。アンパック プロセス中に、悪意のある可能性のある実行可能コードがメモリにマップされます。いくつかの基本的な保護措置が実施されていますが、それらは絶対確実ではありません。
まとめ
商用OSTコミュニティは、正当な目的のためにツールを保持するために最善の努力を払っていますが、緩和方法は不完全です。彼らは、多くのお客様と同様に、執拗でやる気のある攻撃者に直面しています。Shellter Projectは、このケースでは知的財産の損失と将来の開発期間を通じて被害者ですが、セキュリティ分野の他の参加者は、より高性能なツールを駆使して実際の脅威と戦わなければなりません。
私たちは以下を期待しています。
- この違法なバージョンのSHELLTERは、犯罪コミュニティを通じて流通し続け、国家と連携するアクターに移行する可能性があります。
- Shellter Projectは、この分析で特定された検出機会を軽減するバージョンを更新し、リリースします。
- 新しいツールは、悪意のある攻撃者の標的であり続けます。
- より高度な脅威は、これらのサンプルを分析し、ツールセットに機能を組み込みます。
私たちの目的は、この分析が、これらの特定されたインフォスティーラーキャンペーンの早期検出に防御者を支援し、これらの手法が攻撃風景の他の領域に拡大する可能性に備えることです。
マルウェアと MITRE ATT&CK
Elasticは、 MITRE ATT&CK フレームワークを使用して、脅威がエンタープライズネットワークに対して使用する一般的な戦術、手法、手順を文書化します。
戦術(Tactics)
戦術は、テクニックまたはサブテクニックの理由を表します。 それは敵の戦術的な目標であり、行動を実行する理由です。
手法
手法は、敵対者がアクションを実行することによって戦術的な目標を達成する方法を表します。
- アプリケーション層プロトコル
- ローカルシステムからのデータ
- プロセスインジェクション:スレッド実行ハイジャック
- 難読化されたファイルまたは情報:ジャンクコードの挿入
- コンテンツインジェクション
- 能力の取得
SHELLTERの軽減
予防
- 通常とは異なるMicrosoft署名付きモジュールのシェルコード
- Unsigned ModuleからのUnbackedシェルコード
- Low Reputation Moduleからのシェルコード実行
- 無効なコード署名による回避の可能性
- バックアップされていないメモリからのスレッドの中断
- 疑わしい実行可能メモリのマッピング
ヤラ
Elasticセキュリティは、このアクティビティを識別するためのYARAルールを作成しました。
rule Windows_Trojan_Shellter {
meta:
author = "Elastic Security"
creation_date = "2025-06-30"
last_modified = "2025-06-30"
os = "Windows"
arch = "x86"
category_type = "Trojan"
family = "Shellter"
threat_name = "Windows.Trojan.Shellter"
reference_sample = "c865f24e4b9b0855b8b559fc3769239b0aa6e8d680406616a13d9a36fbbc2d30"
strings:
$seq_api_hashing = { 48 8B 44 24 ?? 0F BE 00 85 C0 74 ?? 48 8B 44 24 ?? 0F BE 00 89 44 24 ?? 48 8B 44 24 ?? 48 FF C0 48 89 44 24 ?? 8B 04 24 C1 E8 ?? 8B 0C 24 C1 E1 ?? 0B C1 }
$seq_debug = { 48 8B 49 30 8B 49 70 8B 40 74 0B C1 25 70 00 00 40 85 C0 75 22 B8 D4 02 00 00 48 05 00 00 FE 7F }
$seq_mem_marker = { 44 89 44 24 ?? 89 54 24 ?? 48 89 4C 24 ?? 33 C0 83 F8 ?? 74 ?? 48 8B 44 24 ?? 8B 4C 24 ?? 39 08 75 ?? EB ?? 48 63 44 24 ?? 48 8B 4C 24 }
$seq_check_jmp_rcx = { 48 89 4C 24 ?? B8 01 00 00 00 48 6B C0 00 48 8B 4C 24 ?? 0F B6 04 01 3D FF 00 00 00 75 ?? B8 01 00 00 00 48 6B C0 01 48 8B 4C 24 ?? 0F B6 04 01 3D E1 00 00 00 75 ?? B8 01 00 00 00 }
$seq_syscall_stub = { C6 84 24 98 00 00 00 4C C6 84 24 99 00 00 00 8B C6 84 24 9A 00 00 00 D1 C6 84 24 9B 00 00 00 B8 C6 84 24 9C 00 00 00 00 C6 84 24 9D 00 00 00 00 C6 84 24 9E 00 00 00 00 }
$seq_mem_xor = { 48 8B 4C 24 ?? 0F B6 04 01 0F B6 4C 24 ?? 3B C1 74 ?? 8B 44 24 ?? 0F B6 4C 24 ?? 48 8B 54 24 ?? 0F B6 04 02 33 C1 8B 4C 24 ?? 48 8B 54 24 ?? 88 04 0A }
$seq_excep_handler = { 48 89 4C 24 08 48 83 EC 18 48 B8 E8 E7 E6 E5 E4 E3 E2 E1 48 89 04 24 48 8B 44 24 20 48 8B 00 81 38 05 00 00 C0 }
condition:
3 of them
}
観測
すべてのオブザーバブルは、ECS形式とSTIX形式の両方で ダウンロード することもできます。
この研究では、次の観測量について議論しました。
すぐれた監視性 | タイプ | 名前 | 参考 |
---|---|---|---|
c865f24e4b9b0855b8b559fc3769239b0aa6e8d680406616a13d9a36fbbc2d30 | SHA-256の | Endorphin.exe | シェルター保護ラダマンティス |
7D0C9855167E7C19A67F800892E974C4387E1004B40EFB25A2A1D25A99B03A10 | SHA-256の | SUPERAntiSpyware.exe | シェルター保護不明の家族 |
b3e93bfef12678294d9944e61d90ca4aa03b7e3dae5e909c3b2166f122a14dad | SHA-256の | Aac3572DramHal_x64.exe | シェルター保護 ARECHCLIENT2 |
DA59D67CED88BEAEE618B9D6C805F40385D0301D412B787E9F9C9559D00D2C880 | SHA-256の | Branster.exe | シェルター保護ルンマ |
70EC2E65F77A940FD0B2B5C0A78A83646dec17583611741521E0992C1BF974F1 | SHA-256の | IMCCPHR.exe | シェルター保護不明の家族 |
263AB8C9EC821AE573979EF2D5AD98CDA5009A39E17398CD31B0FAD98D862892 | SHA-256の | Pinnacle Studio広告materials.rar | ルアーアーカイブ |
イーグルクル[.]デジタル | ドメイン | LUMMA C&Cサーバー | |
185.156.72[.]80 | IPv4-アドレス | ARECHCLIENT2 C&Cサーバー | |
94.141.12[.]182 | IPv4-アドレス | plotoraus[.]ショップサーバー | RHADAMANTHYS C&Cサーバー |
参照資料
上記の研究を通じて、以下のことが参照されました。