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

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

レジストリに悪意のあるペイロードが埋め込まれており、大まかに常駐用のペイロードと、APCインジェクションを行い悪意のあるバイナリ・ペイロードをカレントプロセスにインジェクトする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.