解析メモ

マルウェア解析してみたり解析に役に立ちそうと思ったことをメモする場所。このサイトはGoogle Analyticsを利用しています。

Panda Banker 解析 (5)

Panda Banker 解析 (1) - 解析メモ

Panda Banker 解析 (2) - 解析メモ

Panda Banker 解析 (3) - 解析メモ

Panda Banker 解析 (4) - 解析メモ

 

EA付きのペイロードが svchost.exe にコードインジェクションをしている疑惑を解明していく。

IDA Pro でインポートテーブルを見ると、CreateProcessW, WriteProcessMemory, VirtualAllocEX, CreateRemoteThread とプロセスインジェクションに必要な関数が使用されていることが分かる。プロセスインジェクションの理解は下記の記事が参考になる。

www.endgame.com

 

 

この記事の Case3 ではプロセスをサスペンド状態で起動し、メモリに領域を確保して 不正なコードを書き込み、ResumeThread でプロセス実行を開始することでインジェクションを行う、とある。EA 付きペイロードはどうだろうか?

 

f:id:k1z3:20180419003322p:plain

f:id:k1z3:20180419004059p:plain

f:id:k1z3:20180419004401p:plain

似たような流れのコードがあることが分かる。API Monitor を使ってもう少し裏をとってみる。

 

API Monitor で Remote Thread (Extended) で API コールをキャプチャし、API 呼び出し内容を確認する。

f:id:k1z3:20180419012506p:plain

1つ目の CreateProcessW からの流れを見ると、推測通り VirtualAllocEx → WriteProcessMemory → CreateRemoteThread(NtResumeThreadの呼び出し) を行っているのが分かる。また、VirtualAllocEx 以降はプロセスハンドルがすべて 0x0108 となっている。

f:id:k1z3:20180419012753p:plain

CreateProcessWは予想通りサスペンドモードで起動している。

f:id:k1z3:20180419012901p:plain

また、CreateProcessWからの呼び出しの NtCreateUserProcess を見ると、プロセスハンドルが 0x0108 でプロセスが作られたことが分かる。

 

2つ目の CreateProcessW も同様で、こちらはプロセスハンドルが 0x0104 で同様にインジェクションが行われているのが分かる。

 

次はインジェクションしたプロセスにアタッチしてデバッグしてみたい。