最近、韓国の国内企業から難読化されているスクリプトのサンプルが確認された。これは、2019年初頭から海外で大量に出回っている Trickbot ダウンローダーであり、マクロを使用する文書ファイルの内部に JavaScript ファイルが内蔵されており、これを実行すると JavaScript が不正な実行ファイルをダウンロードする形式である。
1. 文書形式で拡散
Word 文書を開くと、以下の [図1] のように「以前のバージョンで作成された文書」という偽の文章と共に、「コンテンツの有効化」のクリックを誘導する文章が書かれている。これは、VBA マクロを実行して不正なスクリプトを作動させようとする手口であり、PC ユーザーはなるべく不明な文書の「コンテンツの有効化」ボタンをクリックするのを避けなければならない。この文書の特徴として、本文内部には白文字でスクリプトが隠されている。


これによって、Word 文書プログラムの「コンテンツの有効化」ボタンをクリックした場合、ユーザーが気づかないうちにスクリプトが作動する。簡略的な行為のフロー図は以下の通りである。
2. 行為の流れ

1) 文書(DOC)ファイルのマクロを実行すると、任意の拡張子を持つJSスクリプトファイルを生成する。
ㄴ(任意の拡張子:.ini 、_backup、.rtf、.txt、_dec、.~、.dat 等)
2) 文書ファイルを閉じると、wscript.exe によって生成されたスクリプトファイルを実行する。
3) スクリプトは以下のタイプのような偽のメッセージボックスを出力し、ボタンをクリックしなくても30秒後に終了する。これは、ユーザーを欺くために「MS Word error」、「Insufficient permissions」等、偽のメッセージを使用していた。

4) メッセージボックスが終了すると、ダミーコードで時間遅延行為を行う。この時、CPU 使用率が高くなり、ユーザーPC 環境に応じて遅延時間は異なる。分析に使用した PC では、約4分程度を所要した。
5) 以降、サンドボックスおよび分析に使用したPCを迂回するための用途で、 PC の情報(プロセス情報、OS 情報等)を収集したあと、特定の基準によりサンドボックスの場合は Error を起こして終了させる。
6) 環境チェックが完了すると、当該スクリプトをスタートアップフォルダ(Startupフォルダ)に「shell.jse」という名前でコピーし、PC を起動するたびにスクリプトが実行されるようにする。
7) その後、攻撃者のアドレス(hxxp://185.159.82.xx/…./)に接続し、収集した PC 情報を送信して %TEMP% パスにランダムな数字名で不正なファイルをダウンロードおよび実行する。
攻撃者サーバーからダウンロードされるほとんどのマルウェアは Trickbot というバンキングおよび情報奪取型マルウェアで Windows Defender を終了させ、「C:\User\(ユーザーアカウント)\AppData\Roaming\(特定の名前)\data\」にユーザー情報を収集して流出させる等の不正な行為を行う。
3. 仮想環境を迂回する手法(Anti-VM)
この JavaScript で使用された防止技法は、感染したPCの情報を収集したあと、特定の文字列と比較するものであり、詳しい情報は下記の通りである。
1) 収集情報
a.WMIクエリを利用した、OSのCaptionおよびVersion情報等 b.Process名およびProcessパス名 |
2) 比較方法
上記の収集された情報の文字列(a.b.項目)の長さを(1,300字、あるいは1,400字)を比較し、長さが短い場合、仮想環境であると判断して終了する構造である。そして、実行中のプロセスのうち、以下の文字列を含む場合は分析環境であると判断して不正なプログラムをダウンロードせずにエラーを発生させる。
<比較する文字列> 2B.exe Procmon Wireshark Temp\iexplore.exe ProcessHacker vmtoolsd VBoxService python Proxifier.exe Johnson ImmunityDebugger.exe lordPE.exe ctfmon.exe*JOHN-PC BehaviorDumper anti-virus.EXE AgentSimulator.exe VzService.exe VBoxTray.exe VmRemoteGuest SystemIT|admin WIN7-TRAPS Emily\AppData PROCMON procexp tcpdump FrzState2k DFLocker64 vmware LOGSystem.Agent.Service.exe C:\Users\user\ C:\Users\milozs\ windanr.exe gemu-ga.exe HAPUBWS BennyDB.exe Peter Wilson Hong Lee |
仮想 PC 環境で例を挙げると、以下の通りである。仮想環境(VM)におけるa、b項目の収集情報の例)
C:\Users\(ユーザーアカウント)\AppData\Local\Temp Microsoft Windows 7 Ultimate K 6.1.7601 System Idle Process *null vmtoolsd.exe //←vmware を使用する場合に存在するプロセスで、フィルターの対象となる。 *null explorer.exe *C:\Windows\Explorer.EXE VMwareUser.exe *C:\Program Files\VMware\VMware Tools\VMwareUser.exe wscript.exe *C:\Windows\system32\wscript.exe …(以下省略) |
すなわち、比較する文字列のうち「vmtoolsd」と、その環境に vmtoolsd.exe プロセスが存在するため、この PC では作動しない。
4. 結論
このマルウェアは現在も出回っており、アンチウイルスソフト企業が診断できないように変化し続けている。最近では、文書のマクロコードに ActiveDocument.PrintOut というプリントオブジェクトを追加して、マクロ実行時に印刷作業ウィンドウを表示させる等、正常な文書であると見せかけるための複数の方法が追加されており、ユーザーは特に注意が必要である。
一方、Ahnlab V3 製品ではこのマルウェアを次のような診断名で診断している。
<診断名>
– VBA/Dropper.S1~S6
– Win-Trojan/Suspig9.Exp
– Trojan/Win32.Trickbot
Categories:マルウェアの情報