
ファイルレスRemcos RATの亜種のリバースエンジニアリング解析。Native API呼び出しを介してsvchost.exeに注入する。難読化されたペイロード抽出、レジストリ永続化、クリップボード監視、APIフッキング、UACバイパス技術をカバーする。
以下のBinary Ninjaスニペットは、Remcosがペイロードをsvchost.exeに注入するために使用するコアインジェクションメカニズムを示しています。
CreateProcessW をCREATE_SUSPENDEDフラグとともに使用して、新しいsvchostプロセスを中断状態で起動します。VirtualAlloc は、MEM_COMMITとPAGE_READWRITEフラグを使用してターゲットプロセス内にメモリを割り当て、ペイロードをプロセスメモリに直接書き込めるようにします。WriteProcessMemory は、中断されたsvchostプロセスの割り当てられたメモリ領域にペイロードを書き込みます。ReadProcessMemory はターゲットプロセスのメモリを読み取り、元のエントリポイントを取得したり、インジェクションを検証したりするために使用されます。TerminateProcess は、インジェクションが失敗した場合に中断されたsvchostプロセスを終了させ、不安定な状態のままになるのを防ぎます。
ネイティブAPIを使用したRemcosのインジェクションルーチンのBinary Ninjaビュー。MEM_COMMIT、PAGE_READWRITE、ReadProcessMemory、TerminateProcessを示しています。
Remcosは、システム上に永続的な存在を確立するためにWindowsレジストリにキーを追加します。このキーにより、システムが起動するたびにマルウェアが再実行されるようになります。
HKEY_USERS\S-1-5-21-3807688912-2840792520-522192237-1001\Software\kamolprf-CFKPWC
exepathの値はREG_BINARYとして保存されているため、直接読み取ることができません。これにより検出が困難になります。 - 識別: UIDとlicenceの値により、攻撃者は被害者を特定し、ライセンスチェックを実行できます。timeの値は、マルウェアがインストールまたは最後に実行された時期に関する情報を提供します。
レジストリキーとその中のexepath、licence、time、UIDの値。
以下のWinDbgスニペットは、注入されたsvchost.exeプロセス内で見つかったトランポリン関数を示しています。このコードは、RemcosのAPIフッキングまたはペイロード実行メカニズムの一部であると思われます。
jmp qword ptr [svchost+0x9758] – おそらくAPIまたは関数にジャンプするフックまたはトランポリン。mov / movdqa命令 – 呼び出しコンテキストを保持するためにレジスタ(xmm0-xmm3、rcx、rdx、r8、r9)を保存および復元します。call svchost+0x3e50 – コア関数を呼び出します。ペイロードまたはフックハンドラの一部である可能性があります。jmp rax – 元の関数または次のステージへの最終ジャンプ。INT3トラップ – デバッガがアタッチされている場合に実行を中断するアンチデバッグ命令。この構造は、Remcosが重要なWindows APIへの呼び出しをインターセプトするAPIフッキングまたはdetour関数に典型的です。xmmレジスタ(浮動小数点またはSIMD操作用)の使用は、このフックがSSE命令を使用する関数に配置されている可能性を示唆しています。
svchost.exe内のトランポリン関数のWinDbgビュー。INT3トラップを含むjmpおよびcall命令を示しています。
以下の16進ダンプは、注入されたsvchost.exeプロセス内のPAGE_READWRITEメモリ領域から抽出されました。この領域には直接のcallやjmp命令は含まれておらず、データが実行可能コードではなく、難読化または暗号化されたペイロードであることを確認しています。
RPC ControlやPC-**などの認識可能な文字列がデータ内に埋め込まれています。ctk、m、**mafasakaaam**などの追加フラグメントは、構造化された設定の一部であり、暗号化キー、API名、またはレジストリパスを含む可能性があります。
svchost.exeのPAGE_READWRITE領域からの難読化された16進ダンプのBinary Ninjaビュー。RPC ControlやPC-のような埋め込まれた文字列を示しています。
PAGE_READWRITE領域から抽出された難読化された16進ペイロードは、Binary Ninjaの文字列ビューを使用してさらに分析されました。強力な難読化にもかかわらず、いくつかの読み取り可能な文字列とパターンが現れました。
PC- プレフィックス付き文字列(例:PC-475ce3d749612b、PC-4a757962f31b84) – おそらく被害者の追跡に使用されるMachineGuidまたは一意のシステム識別子。svchost.exe – ターゲットプロセス名。インジェクションベクトルを確認します。.dll 拡張子 – Remcosが特定のDLLをロードまたは検索していることを示します。おそらくAPIフッキングまたは永続化のため。ontroll\ – レジストリパス(Control\)の断片と思われ、永続化または設定ストレージを示します。EEF931 と 1AA81C6FD0CF04A816B – これらはGUIDまたは暗号化キーであり、ペイロードのXOR/AES復号に使用される可能性があります。TEMP – 一時ファイルの作成または一時ディレクトリからの実行を示唆しています。
難読化された16進ペイロードのBinary Ninja文字列ビュー。PC-、svchost.exe、.dll、EEF931などの読み取り可能な断片を示しています。
この分析により、最小限のディスクフットプリントと高度な回避技術で動作する、非常に洗練されたファイルレスなRemcos RATの亜種が明らかになりました。このマルウェアは、ZwCreateSectionやZwMapViewOfSectionなどのネイティブAPI呼び出しを使用してコアペイロードをsvchost.exeに注入し、永続性とステルス性を確保しています。
PC-、svchost.exe、.dll、EEF931のような断片的な文字列のみを明らかにします。HKEY_USERS\...\Software\kamolprf-CFKPWC以下のレジストリキーを介して永続性を維持し、暗号化されたexepath、licence、time、UIDの値を保存します。PAGE_READWRITE)についてsvchost.exeを監視します。Software\kamolprf-CFKPWC以下のレジストリキーを追跡します。ZwCreateSectionおよびZwMapViewOfSection呼び出しを探します。PC-やEEF931のような難読化された文字列を探します。このRemcos亜種は高度な専門性を示しており、従来のセキュリティソリューションを回避するために明確に設計されています。ファイルレス実行、プロセスインジェクション、レジストリベースの永続化の組み合わせにより、高度な検出戦略を必要とする重大な脅威となっています。
使用ツール: Ghidra, Binary Ninja, WinDbg, Process Hacker
分析されたRemcos RATサンプルは、独自の分析を行いたい方向けにMalwareBazaarで入手可能です:
| API | Remcosでの目的 |
|---|
| CreateProcessW | インジェクションのためにsvchostを中断状態で起動します。 |
| VirtualAlloc | ペイロード用にMEM_COMMITとPAGE_READWRITEでメモリを割り当てます。 |
| WriteProcessMemory | ペイロードを割り当てられたメモリに書き込みます。 |
| ReadProcessMemory | ターゲットプロセスのメモリを読み取ります(検証またはエントリポイント取得に使用)。 |
| TerminateProcess | インジェクションが失敗した場合に中断されたプロセスを終了します。 |
| 値の名前 | 型 | 値 | 説明 |
|---|
| exepath | REG_BINARY | 暗号化されたバイナリデータ | Remcosまたはその注入されたペイロードの暗号化されたファイルパス。XORまたはAESで保護されている可能性があります。 |
| licence | REG_SZ | DA8E22D4CD8D349953DF1FAD364CAB05 | Remcosライセンスキー。海賊版またはデモ版では固定値である可能性があります。 |
| time | REG_DWORD | 0x6a53ac27 (1783868455) | Unixタイムスタンプ形式のインストールまたは最終実行時間。 |
| UID | REG_DWORD | 0xfeb60bd4 (4273343444) | 一意のユーザーID。被害者の識別に使用されます。 |