警視庁が作成し公開しているマルウェアのEmotet感染チェックツール通称”Emocheck”ですが、これ、毎日実行して感染を確認するの大変ですよね。
人によってはEmocheckをやってくれたり忘れたり。
Emocheckとは、世界的に広まっているマルウェアのEmotet(エモテット)の感染を簡易的に確認できるツールです。
emocheck_v2.1_x64.exe をダブルクリックして実行すると次の結果が得られます。
※emocheck_v2.2_x64、emocheck_v2.3.2_x64でも動作を確認できています。
Emocheckをコマンドでサイレント実行
まず、Emocheckはコマンドでも実行できます。
コマンドプロンプトからemocheck_v2.1_x64.exeを実行するだけです。
emocheckにはオプションがあり、/quiet を付けることでサイレント実行(画面表示しない)ができます。
コマンド実行イメージは以下の通りです。
1 |
\\fileserver\emocheck\emocheck_v2.1_x64.exe /quiet /output \\fileserver\emocheck\ |
Emocheckの結果を自動で確認しフォルダに振り分け
Emocheckをログオンスクリプトにでも仕込んでおけばサイレント実行後、実行フォルダに"hostname_YYYYMMDDhhmmss_emocheck.txt"のファイルが自動生成されます。
実行結果のサンプルを置いておきます。
[EmoCheck v2.2]
プログラム実行時刻: 2022-05-12 10:15:07
____________________________________________________
[結果]
検知しませんでした。
処理概要を大まかに説明します。
Emocheckの実行結果はUTF8なため、SJISに変換が必要です。
SJISへの変換はPowershellでやるのが手っ取り早いので、UTF8からSJISへ変換しちゃいましょう。
あとはtypeコマンドで”検知しませんでした”の文言があればEmotetに感染していないってのがわかるので、別のフォルダにでも入れておきます。
つまり、残っている実行結果がEmotetに感染しているということになりますので、これをさらに確認しましょう。
Emotet感染確認bat
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
@echo off setlocal enabledelayedexpansion cd /d %~dp0 dir /b | findstr _emocheck.txt > tmp.txt for /f %%a in (tmp.txt) do ( powershell -NoProfile -ExecutionPolicy Unrestricted -Command "& { get-content -Encoding UTF8 %%a | Set-Content %%a-sjis}" move %%a .\文字コード返還前ファイル退避フォルダ ren %%a-sjis %%a type %%a | findstr "検知しませんでした。" if !errorlevel! equ 0 ( move %%a .\未感染フォルダ\%%a ) ) |
Emocheckの結果を確認するbat
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
@echo off echo. echo Emocheck実行結果。ここに表示されたファイルは感染の疑いがあります echo. dir /b \\fileserver\emocheck\*emocheck.txt echo. echo. echo Emocheck確認終わり echo. echo. pause |
著作権について
著作権は当サイトの管理者に帰属します。
商用利用以外であれば著作権フリーですが、念のためコメントにてお知らせください。