SANSからの練習問題を試す Handleの確認 (3)
irykmmww.d1l という不審なDLLファイルもどきを発見できましたが、このファイルが関連しているプロセスに何があるのかを確認してみたいと思います。RedLineではMemory Sectionsからキーワードとしてirykmmwwを指定すれば絞り込んで確認する事ができます。フィルタしてみたところ、iexplore.exeとsvchost.exeが確認できます。
念のため、Stringsについてもキーワードirykmmwwを検索し、ProcessNameで関連するものがあるかも確認しておきたいと思います。irykmmww.d1l という点では、Memory Sectionsの結果と同じくiexplore.exeとsvchost.exeだけが確認できます。
さて、このirykmmww.d1lですが、どの様にロードされたのでしょうか?
iexplore.exeの親プロセスがsvchost.exeですので、再度 PID 884 svchost.exe を RedLine 上で確認してみたいと思います。PID 884 svchost.exe の sections を表示し、Injected の項目を確認してみますが、特に反応している項目はありません。
SANS Blogの解説を確認してみると、Volatility の svcscan コマンドを使い、サービスの状況を確認しています。コマンドを実行すると一番最後に出てきますね。
Offset: 0x38ab98
Order: 252
Process ID: -
Service Name: irykmmww
Display Name: irykmmww
Service Type: SERVICE_KERNEL_DRIVER
Service State: SERVICE_RUNNING
Binary Path: \Driver\irykmmww
サービス名が不審なD1Lファイルと同じ irykmmww である事が確認できます。
svcscan の説明を確認すると、Ver2.3 以降のコマンドラインオプションでは --verboseが指定できると書かれていますので、これを指定した結果も確認してみますが特に差異は出てないようです。(このプラグインは、実行にかなりの時間を必要としますね)
Offset: 0x38ab98
Order: 252
Process ID: -
Service Name: irykmmww
Display Name: irykmmww
Service Type: SERVICE_KERNEL_DRIVER
Service State: SERVICE_RUNNING
Binary Path: \Driver\irykmmww
素朴な疑問として、RedLineでこれと同じ処理をするにはどうしたら良いのでしょうかね?*1
例えば、RedLineではDriver Modulesを使うと下記の結果を確認できます。
Device Treeでは以下の結果を確認できます。
デバイスドライバとしてirykmmww.sysが存在している事が確認できますので、これが何処からロードされているのかを追跡するというシナリオになってきそうです。
ドライバのstrignsを取ろうと思ったのですが、SQliteでエラーが出ますね。
*1:svcscanの説明ではサービス出せるのはvolatilityだけって書いてあるようですので、RedLineでは出来ないんでしょうかね。