本記事では、Microsoft社のSysinternalsのツールであるProcessMonitorを使った、簡易ハニーポットを構築します。
準備
今回はVM上のKali LInuxとWindows7を使って、マルウェアを実行した際の挙動をProcessMonitorを使って追跡してみたいと思います。
ProcessMonitorのダウンロード
ProcessMonitorは以下のMicrosoft社のSysinternalsからダウンロードします。
exe形式なので、procmon.exeをダブルクリックするだけで実行できます。
これを標的ホストのWindows7に配置します。
マルウェアの準備
テスト用のマルウェアに関しては、WinRARのインストール用のexeファイルにShelterというツールを使ってリバースシェル用のペイロードをバインドしたものを使用します。
こちらも標的ホストのWindows7に配置します。
ProcessMonitorの起動
今回はコマンドプロンプトから起動し、結果をpml形式のログファイルに出力します。
事前にフィルタを設定したConfigファイルを作成し、以下コマンドで起動、停止およびCSVファイルにも出力してみます。
> procmon.exe /loadconfig conf.pmc /backingfile log /quiet > procmon.exe /Terminate > procmon.exe /Openlog log.PML /SaveAs log.csv
ログファイルの確認
それでは取得したログファイルをProcessMonitorで開いてみます。
ProcessMonitorでは以下4種類のアクティビティごとに表示させることができます。
- File System:ファイル アクセスを記録
- Registry:レジストリ アクセスを記録
- Network:ネットワーク アクセスを記録
- Process and Thread:プロセスとスレッドの処理を記録
まずはネットワークから見てみます。
wrar570jp.exeから10.0.0.2:4444へTCPコネクションが作成されているのが確認できます。
次にプロセスツリーを確認してみます。
wrar570jp.exeからcmd.exeが起動されwhoamiコマンドが実行されています。
その後にcscript.exeからApacheBenchが実行されているのが確認できます。
次にレジストリを見てみます。
"HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\"のレジストリに"pUxJGRMjKpOemB"というキーが追加され、それは"C:\Users\IEUser\AppData\Local\Temp\IprnKQb.vbs"に設定されていることが確認できます。
なお、上記のレジストリはOS起動時に自動実行させるプログラムを登録する場所になります。
今回は接続が切れた際に再接続するように300秒おきに実行するように設定しています。
最後に
今回はProcessMonitorを使った簡易ハニーポットを構築してみました。
このようにプロセスの流れを追跡することで、マルウェアがどういう挙動をするか簡単に把握することができました。