最近見たファイルレス・マルウェアのメモ

最近見たファイルレス・マルウェアのメモ。

ランチャー・ペイロードとメインのPowerShellコードの2つで構成されていた。
どちらもレジストリの中に保持されていた。

ランチャー・ペイロード
レジストリRunキーに悪意のあるコマンドが保持されていた。このコマンドは別のレジストリキーに保持されているメインのPowerShellコードを実行する。

メインのPowerShellコード
APCインジェクションを行い、悪意のあるバイナリ・ペイロードをカレントプロセスにインジェクトする。悪意のあるバイナリ・ペイロードはBase64エンコードされた状態でハードコードされている。以下はPowerShellコードの大まかな挙動。

1. 悪意のあるバイナリ・ペイロードをBase64デコードする

2. DllImportでkernel32より以下のAPI関数をインポートする:

  • GetCurrentThreadId
  • OpenThread
  • QueueUserAPC
  • SleepEx
  • GetCurrentProcess
  • VirtualAllocEx

3. VirtualAllocExでカレントプロセスに悪意のあるバイナリ・ペイロードをインジェクトするためのメモリ領域を確保する。

4. 上述したカレントプロセスのメモリ領域の確保が成功した場合、確保されたメモリ領域に悪意のあるバイナリ・ペイロードをコピーする

5. QueueUserAPCを実行してユーザーモードAPCをスレッドにキューさせる

6. SleepExを実行してスレッドを変更可能状態にしてAPCインジェクションを完了する

同様の手法を用いたUrsnifの感染例が報告されている。

以上。

Leave a Reply

Your email address will not be published. Required fields are marked *