脅威リサーチ

Microsoft Office文書を利用したAgent TeslaおよびnjRatの拡散

投稿者 Cara Lin | 2023年1月12日

FortiGuard Labsは先頃、正規のWebサイトであるMediaFireとBloggerを悪用した不正なMicrosoft Office文書を発見しました。この文書はシェルスクリプトを実行したあと、Agent TeslaおよびnjRatマルウェアの亜種をドロップしていました。Agent Teslaは2014年に初めて発見された有名なスパイウェアで、Webブラウザやメールクライアント、FTPサーバーから個人データを盗み出したり、スクリーンショット、動画、クリップボードのデータなどを収集したりすることができます。njRat(別名:Bladabindiとも呼ばれる)はリモートアクセス型トロイの木馬で、2013年に初めて発見されました。被害者のデバイスをリモートで制御する機能を持ち、キーストロークのロギング、カメラへのアクセス、ブラウザに保存された認証情報の窃取、ファイルのアップロード / ダウンロード、レジストリの操作などを行います。

影響を受けるプラットフォーム: Microsoft Windows
影響を受けるユーザー:     Windowsユーザー
影響:             デバイスを制御して、機密情報を収集
深刻度:            クリティカル

本ブログでは、FortiGuard Labsが発見した文書の詳細、ペイロードを配信するために埋め込まれたスクリプト、これらのマルウェア亜種の動作を解説します。

第1段階

2022年9月、FortiGuard Labsは2種類のファイルを収集しました。一つはPowerPointアドイン、もう一つはWord文書で、おとりの画像と埋め込みのExcelフォームが格納されていました。どちらのファイルにも同種のVBAスクリプトが含まれており、文書を開くと直ちにマクロが実行されるようになっていました。

このコードは、PPTアドイン内のVBAスクリプト(図1)に従って自動的にトリガーされます。なぜなら、コードに「Auto_Open()」関数が使われているからです。「ControlTipText」および「Tag」フィールドには、補完コマンドの「mshta」とMediaFireのURLが挿入されています。完全なURLは「vbaProject.bin」で確認できます。

図1:PPTアドインのVBAマクロ
図2:vbaProject.binファイル内の完全な不正URL

第2段階

図3のProcess Explorerを見てみると、文書の [Enable Macros(マクロを有効にする)] をクリックした直後に「mshta」プロセスが開始されたことがわかります。このようにして、正規のファイルであり画像共有プラットフォームであるMediaFireのWebサイトにアクセスします。

図3:[Enable Macros(マクロを有効にする)] をクリックしたあとのProcess Explorer

第1段階のVBAマクロで取得された「1.htm」のコンテンツを以下に示します。

図4:MediaFireからダウンロードされた「1.htm」

Figure 5 shows a clearer picture after converting some hex to ascii string.

図5:変換後の「1.htm」
このHTMLファイルは、主に次の3つの操作を実行します。
  1. MediaFireサイトから第3段階のスクリプトファイルを配信する。
  2. WINWORD.EXEのタスクを強制終了する。
  3. スケジュール済みタスクを作成して永続性を確保する。このタスクは、「mshta」を使用して「http[:]//www.webclientservices.co[.]uk/p/1[.]html」サイトに接続します。サイトには73分おきに同様のスクリプトが格納されます。次のスクリーンショットは2022年9月に取得したものです。
図6:9月中旬のwww[.]webclientservices[.]co[.]uk/p/1[.]htmlのWebページ

その後「www[.]webclientservices[.]co[.]uk」の1.htmlファイルは更新され、名前が「real all BACK SEP 2022」に変更されたこともわかりました。埋め込みのJavaScriptも変更されており、現在は別のマルウェアを配信しています。詳細については次のセクションで解説します。

図7:9月下旬に発見されたwww[.]webclientservices[.]co[.]uk/p/1[.]htmlの更新ページ

第3段階

MediaFireからダウンロードされた「1.txt」内のPowerShellスクリプトは、プロセスホローイングの技術を使って最終ペイロードを配信します。まず、すべての関連するプロセスを強制終了し、ローダーとペイロードをデコードします。次に、AMSIを回避しながら、最終ペイロードを呼び出して配置します。分析の難易度を高めるために、主要なマルウェアとコードの一部はエンコードされ、文字列に置換されます。

図8:Agent Teslaの読み込みに使用されたPowerShellの全容
図9:PowerShell実行後のProcess Explorer

「Agent Teslaペイロードの読み込み」プロセスの第2セクションにある変数$CLE11と$RNBX1が、文字列置換後の最終ペイロードとローダーです。別バージョンの.NETに基づいて、プロセスホローイングを開始するためのパスが次のようにカスタマイズされます。

$Path = 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\jsc.exe'

$Path2 = 'C:\Windows\Microsoft.NET\Framework\v2.0.50727\caspol.exe'

$Path3 = 'C:\Windows\Microsoft.NET\Framework\v3.5\Msbuild.exe

      [Ref]/Assembly::Load((HexaToByte($RNBX1))).GetType('CALC'.PAYSIAS'.'GetMethod'(Execute).Invoke($null,[object[]] ($Path, HexaToByte($CLE11)));

我々は$RNBX1を実行ファイルとして保存し、それをdnSpyで開きました。ターゲットクラスおよびメソッドを図10に示します。この.Netローダーは、難読化によって主要なAPI(CreateProcess、VirtualAllocExなど)を解析されにくくします。

図10:.Netローダー

またターゲットプロセスの「jsc.ex」、「caspol.exe」、「Msbuild.exe」が被害者のマシンで密かに実行されていることを突き止めました。図11はその詳細を示しています。

図11:プロセスホローイングが動作中のProcess Explorer

PowerShellの最終セクションでは、ロギングを無効にし、AMSIにパッチを適用してこれを回避します。詳細な手順を図12に示します。

図12:AMSIを回避するPowerShell

最終段階:パート1

最初のマルウェアペイロードはAgent Teslaです。Agent Teslaが拡散され始めたのは9月中旬頃です。Agent Teslaは正当なファイル情報、すなわち「NirSoft」社の「Web Browser Password Viewer」を格納しており、盗んだデータをFTP経由で送信します。

図13:Agent Teslaの基本情報

図14は、攻撃者のFTPサーバー情報のスクリーンショットです。抽出したデータの転送に使用されたユーザー名とパスワードが含まれています。さらにAgent Teslaは、「NGCwje.exe」というファイル名を付けて自身を%appdata%ディレクトリにコピーし、永続化を図ります。

図14:攻撃者のサーバー情報

続いて、ベースボードのシリアル番号、プロセッサID、MACアドレスなど、被害者デバイスの情報を抽出します。そのあと、このデータのMD5ハッシュを生成します。

図15:被害者マシン情報のMD5ハッシュの生成

Agent Teslaは標準的なアプリケーションリストを使用して、ログイン認証情報、クッキー、メール情報、VPNデータを窃取します。これらの情報の一部を図16に示します。

図16:標的になったブラウザアプリケーションのリスト

被害者のマシンから認証情報その他のデータを抽出したら、Agent TeslaはハードコードされたIPを使用してFTPプロトコル経由でそれらのデータを送信します。

図17:FTPプロトコルの使用
図18:被害者のマシンからキャプチャしたトラフィック

操作するファイルの種類に応じて、4種類の開始文字列が使用されます。「CO」はクッキーデータ、「KL」はキーボードロギング、「PW」は被害者のパスワード情報、「SC」はスクリーンショットファイルに対応しています。Agent Teslaは、データの種類、ユーザー名、デバイス名、およびタイムスタンプを下線でつないで、データのZIPファイルのファイル名としています。盗まれたZIPファイルのリストを次の図に示します。

図19:FTPサーバー上にあるZIPファイルのリスト(一部)

最終段階:パート2

2番目のペイロードはnjRatで、Bladabindiとも呼ばれています。これは.NETベースのトロイの木馬であり、被害者のデバイスを制御し監視します。njRatは、文字列の生成やコードフローに難読化を使用します。メソッドko()のIDA Graph overviewを見ると、この亜種がより複雑であることがわかりますが、類似する関数も確認できます。

図20:IDA Graph overview
図21:njRatのエントリポイント
図22:文字列デコード関数

njRatはまず、「Startup」および「Templates」フォルダに、「Windows」というファイル名のlnkファイルとexeファイルを作成します。このファイル名は、ユーザーやアナリストにこれが正当なWindowsファイルであると思い込ませるために使用されます。

図23:永続性の確保

次に、コマンド&コントロールサーバーのホスト名とポート番号を逆順で取得します。

図24:コマンド&コントロールサーバーの情報

この被害者デバイスでnjRatが1度だけ実行されるようにするために、「HKEY_CURRENT_USER」を追加し、名前に「di」、データに「!」を指定します。

図25:「HKEY_CURRENT_USER」へのレジストリの追加
図26:レジストリのステータス

さらに、「Windows」という名前のミューテックスを作成し、環境変数「SEE_MASK_NOZONECHECKS」を1に設定し、このミューテックスが以前に作成されたかどうかを確認します。作成されている場合は、このプロセスを終了します。

図27:ミューテックスの作成
図28:環境変数の設定

マシンの情報を収集したら、base64を使用してその情報をエンコードし、図29のようにデータを連結します。そして、ハードコードされたTCPポート7575を使用して、「mobnew6565[.]duckdns[.]org」サーバーにデータを転送します。

図29:データの連結

次の図は、被害者のWin10マシンからキャプチャしたC2トラフィックを示しています。区切り文字は「|-F-|」に変更され、バージョンは「v4.0」ですが、パケットのフォーマットは旧バージョンのnjRatと同じです。

<message length>.<command>|-F-|<data> 

図30:被害者デバイスからキャプチャしたトラフィック

FortiGuard LabsはAgent TeslaとnjRatに加えて、更新されたhtmlファイル「www.webclientservices.co[.]uk/p/1[.]html」内の短いスクリプトが、「C:\\ProgramData」にマイナーをダウンロードしていることも発見しました。この動作は奇妙です。なぜなら、この攻撃チェーンのどの段階でも、被害者のマシンに物理的痕跡やファイルを残さないようにしているからです。私たちは、別のプロセスでnjRatを読み込んでいることを悟られないよう、被害者の気をそらすことが目的かもしれないと考えました。

図31:マイナーをダウンロードするJavaScript
図32:Process Explorerに表示されたnjRatとマイナー

結論

Agent TeslaとnjRatは、どちらも数年にわたって活発に拡散されています。これらの機能は成熟しており、情報の監視や窃取に簡単に利用できます。前述したとおり、不正なURLでは埋め込みのJavaScriptが継続的に更新されています。これは、フィッシングメールやおとりのOffice文書によって、これらのマルウェアをいつでも確実に拡散できることを意味します。Webサイトに埋め込まれたすべてのVBAマクロ、PowerShell、およびJavaScriptコードはファイルレス攻撃を展開できます。また、文字列の難読化やエンコードを行うことで、一部のウイルス検知機能を回避します。

外部Webサイトへのリンクが含まれたOffice文書や出所不明のファイルには、常に慎重に対処することが求められます。

図33:攻撃フロー

フォーティネットのソリューション

VBAマクロとすべての関連するマルウェアは、以下のFortiGuardアンチウイルスによって検知され、ブロックされます。

VBA/Agent.AIN!tr
MSIL/Agent.CJX!tr.spy
MSIL/Agent.CWR!tr
MSIL/VXS!tr
MSIL/CoinMiner.BMT!tr
PowerShell/Agent.GJ!tr
JS/SnakeKeylogger.A!tr.dldr
PowerShell/Agent.AMM!tr

ダウンロードされたURL、および攻撃者のホストは、FortiGuard Webフィルタリングサービスで「不正Webサイト」に分類されています。

FortiGuardコンテンツ無害化(CDR)サービスを使用して、Microsoft Officeファイルを無害化できます。

大半のマルウェアはフィッシングを介して拡散されます。したがって、フィッシング攻撃の理解 / 検知に関するユーザートレーニングを目的としたフォーティネットソリューションの活用も是非ご検討ください。

フォーティネットが無償で提供するNSEトレーニングNSE 1 – 情報セキュリティ意識向上には、インターネットの脅威に関するモジュールが含まれ、エンドユーザーはさまざまなタイプのフィッシング攻撃を識別して自身を防御する方法を学習できます。また、このトレーニングは社内のトレーニングプログラムに簡単に組み込むこともできます。

FortiPhishフィッシングシミュレーションサービスでは実際の攻撃をシミュレーションして、組織はフィッシング攻撃に対するユーザーの認識や警戒をテストでき、ユーザーはフィッシング攻撃の標的にされた場合の適切な対処を学び、強化することができます。

IOC(Indicators of Compromise:侵害指標)

SHA256:

Office文書

9cb3a21f90dbb0dc5f3054a05571d8f2b5c2c06e0d24be4ec3a313cb7a061a60
63f13715d7c962f7eb36fe4cc7dbdbae1b599133ce2867bb346c11a61fac0990
2f17f9ef09e88e58f41e5d187ea39d22a2dc771f3adea622a6d25350a60309d9
34339322fd22bec66cb0272207e8f867af7d56e8d8441eadd23dcff6bcb77618

スクリプトファイル

a44196d6b73d49ed6712df37fabd0e2b11d2bd91458c0351b6c7401e285b8a49
1844081002dc04a0e236503c233be07d7a0b6024c829fd0620f63075bb6a011a
ad19384eec4bc0c3f95c90a550f99a7744584e85e86473c371f88ebd503fb6a0
37d5b2c02f52ba1f909e9e2002f091fb068b4385b67a72ab488866cef7ea00f6
1d4f733b56c865f1221ac48eb794c715e1143287ff2f2e4094e5eea3caaec11b
da72d2feac3a24a332049b69df0cb7cab1a3734b5696effd3ebdf383f8f6ae32
539ff781c3b5065b98ca61927e13fd3bc7fe133f06b883a2fc13bc090bd4f4d3
2b85ed6d795c607344995e4e29bcf0fbef6f0600b783d495a20ca0098e471103
3a3e9467a2f88a29827895594907aeeeabede32e7966cdb3e8331fae6aa930da

ペイロード

a0931ce734fcc865c90fa7e9004bea8db551c32c699fdd389213c59cde3832cd
bdb94f7c3a13ea102258540f372d4ae07a4d4943f0ae9324f44fdfa8481bfaf2
dd72a7eebdd2d1cfabf430288d452fccfb90acc4d6956aa36194a35e9585b2c8

ローダー

39e67f25b0fa660db0541bf37e315fb4def772bd3b6d67991b64a5a85914477d