FortiGuard Labs 脅威リサーチ

多数のプラグインと共にVenomRATを配信するScrubCrypt

投稿者 Cara Lin | 2024年5月2日
  • Article Contents
投稿者 Cara Lin | 2024年5月2日

影響を受けるプラットフォーム: Microsoft Windows
影響を受けるユーザー:     Microsoft Windowsユーザー
影響:             窃取された情報が将来の攻撃に利用される
深刻度:            

FortiGuard Labsは昨年、8220 GangがScrubCryptを使用して、悪用可能なOracle WebLogic Serverを標的とする攻撃を仕掛けていることを確認しました。ScrubCryptは、実行可能ファイルを検知不能なバッチファイルに変換する「アンチウイルス回避ツール」として知られています。ScrubCryptにはマルウェアを操作する複数のオプションがあり、アンチウイルス製品による検知をさらに困難なものにしています。

FortiGuard Labsは先頃、悪意のあるScalable Vector Graphics(SVG)ファイルを格納したフィッシングメールを拡散している攻撃者を発見しました。このメールは、添付ファイルをクリックするよう被害者を誘導し、ZIPファイルをダウンロードさせます。ZIPファイルには、BatCloakツールで難読化されたバッチファイルが格納されています。続いて、ScrubCryptを使用して最終ペイロードのVenomRATが読み込まれます。この間、被害者の環境にプラグインをインストールするために、コマンド&コントロール(C2)サーバーとの接続は維持されています。C2サーバーからダウンロードされたプラグインファイルには、VenomRAT version 6、Remcos、XWorm、NanoCoreのほか、特定の暗号ウォレット用に設計されたスティーラーが含まれています。

本ブログでは、攻撃者がVenomRATおよびその他のプラグインを拡散する方法について詳しく解説します。

図1:攻撃チェーン

初期アクセス

攻撃者はまず、品物が出荷されたことを通知するフィッシングメールを送信します。メールには納品書も添付されています。添付ファイルは「INV0ICE_#TBSBVS0Y3BDSMMX.svg」という名前のSVGファイルで、Base64でエンコードされたデータが埋め込まれています。

図2:フィッシングメール

被害者がSVGファイルを開くと、ECMAScriptによって新しいBLOBが作成され、「window.URL.createObjectURL」を使用して、デコードされたデータが「INV0ICE_#TBSBVS0Y3BDSMMX.zip.」というZIPファイルとしてドロップされます。

図3:ZIPファイルをドロップするSVGファイル

解凍後のファイルは難読化されたバッチファイルで、「------BEGIN X509 CRL-----」セクションにペイロードが埋め込まれています。デコードされた1行目のコメントから、バッチファイルはBatCloakツールで作成されたと推測されます。このツールは、高度に難読化されたバッチファイルを使ってさまざまなマルウェアファミリーを配信することで知られています。BatCloakは2022年以来、アンチウイルスプログラムによる検知を巧妙に回避しながらマルウェアを拡散するために利用されています。

スクリプトはまず、PowerShell実行ファイルを「C:\Users\Public\xkn.exe」にコピーし、コピーしたファイルをその後のコマンドで使用します。被害者に気づかれないようにするために、各コマンドにはパラメータ「-WindowStyle hidden -inputformat none -outputformat none -NonInteractive」が含まれています。次に、不正なデータをデコードし、「pointer.png」という名前を付けて保存します。16進デコードの後、その結果が「ポインター」として保存され、「C:\Users\Public\Libraries\pointer.cmd」に移動されます。「pointer.cmd」が実行されると、上記のファイルは「cmd /c del」を使用してすべて削除されます。

図4:難読化されたバッチファイル

図5:難読化解除されたスクリプト

図6:デコードされたデータ「pointer.png」

ScrubCrypt

「pointer.cmd」ファイルは、ScrubCryptのバッチファイルとして機能します。このファイルには、難読化するために多数の無意味な文字列が故意に挿入されています。Base64形式でエンコードされた2つのペイロードが格納されており、それらを解凍するためにAES-CBC復号とGZIP圧縮が使用されます。ScrubCryptは、PowerShellコマンド「[System.Reflection.Assembly]::Load」を使用して、復号された.NETアセンブリをバイト配列から読み込み、そのエントリポイントのメソッドにアクセスしてそれを起動し、アセンブリコードの実行を開始します。

図7:ScrubCryptのバッチファイル

図8:再編成されたScrubCryptのバッチファイル

最初のペイロードには、永続化と、対象とするマルウェアの読み込みという2つの主要目的があります。ペイロードは、現在のユーザーがWindowsオペレーティングシステムの組み込み管理者ロールに属しているかどうかを判断し、永続性の設定を行います。さらに、デバッガーの有無も確認します。デバッガーが見つかった場合は、検知を回避するためにプログラムを終了します。

図9:Main関数

現在のユーザーが管理者権限を所有している場合、プログラムは自身を「%AppData%/strt.cmd」に複製し、PowerShellコマンドを使って「OneNote 83701」というスケジュールされたタスクを作成します。このタスクは、ユーザーのログイン時に起動して「strt.cmd」を実行し、昇格された権限で動作します。一方、ユーザーに管理者権限がない場合、プログラムは「StartUp」フォルダに「strt.cmd」というファイル名で自身を複製します。

図10:永続性の設定

最後に、圧縮アセンブリを格納した「P」という埋め込みリソースからアセンブリを読み込みます。その後、読み込まれたアセンブリのエントリポイントのメソッドを呼び出し、VenomRATを実行します。

図11:VenomRATの起動

ScrubCryptバッチファイルの2つ目のペイロードは、AMSI(Anti-Malware Scan Interface)とETW(Event Tracing for Windows)のバイパスに使用されます。

図12:ScrubCryptバッチファイルから復号された2つ目のペイロード

図13:AMSIとETWのバイパス

VenomRAT

VenomRATは、2020年に初めて発見されたリモートアクセス型トロイの木馬(RAT)です。これは有名なQuasar RATの改造版で、スパムメールの不正な添付ファイルを介して拡散されます。サイバー犯罪者はVenomRATを使って不正アクセスを行い、標的のシステムを乗っ取ります。他のRATと同様に、VenomRATは侵害されたデバイスのリモート操作を可能にするため、攻撃者は被害者に知られずに、あるいは同意を得ずにさまざまな悪意ある活動を実行できます。

VenomRATの基本構成はBase64でエンコードされ、AES-CBCで暗号化されています。復号されたデータを図14に示します。

図14:VenomRATの初期設定

環境チェックが完了すると、VenomRATはC2サーバーとの通信を開始します。最初に送信されるパケットには、ハードウェアの仕様、ユーザー名、オペレーティングシステムの詳細、カメラの使用の可否、実行パス、最前面のウィンドウ名、インストールされているアンチウイルス製品の名称など、被害者の基本情報が格納されています。

図15:クライアント情報のパケット

すべてのC2セッションは、その構成で指定された証明書を使用して暗号化されます。プログラムをデバッグし、パケットを抽出して解凍したところ、C2サーバーによって確立されたキープアライブセッションを確認できました。

図16:暗号化されたC2セッション

図17:キープアライブメッセージ

VenomRATの主要プログラムは単純そうに見えますが、各種の活動に使用する追加のプラグインを取得するために、C2サーバーとの通信チャネルは維持されています。サーバーからのパケットを解析するアセンブリを以下に示します。サーバーから指令「save_Plugin」を受信すると、VenomRATはデータを解凍してレジストリに保存することができます。

図18:VenomRATによるパケットの処理

図19:レジストリに保存されたプラグインデータ

「save_Plugin」データは「SendFile」というDLLファイルを構成しています。このDLLファイルは、C2サーバーから送信されたその他の「plug_in」ファイルを解析できます。同じ名前のプラグインファイルがすでに被害者の環境に存在する場合は、その既存ファイルを削除し、現在のデータを使って新しいファイルを作成します。「plug_in」パケットデータを解凍したら、「Filename」を調べ、使用するPowerShellコマンドを決定します。

図20:他のプラグインデータを処理する「SendFile.dll」

図21では、サーバーから「プラグイン」パケットを受信したVenomRATが、レジストリを読み取って「SendFile.dll」用のデータを取得し、プラグインに格納されたペイロードを実行しています。

図21:C2サーバーから受信したプラグインデータ

図22:VenomRATが「SendFile.dll」を使用してプラグインデータを起動

以下のセクションでは、VenomRATのC2サーバーから送信されるプラグインについて解説します。

プラグイン1:Venom RAT v6.0.3

最初のプラグインはScrubCryptに埋め込まれており、被害者の環境に実行ファイルをドロップせずに読み込まれるため、その痕跡は完全に隠蔽されます。ScrubCryptバッチファイルの2番目のペイロードは、「ScrubBypass」という名前です。このペイロードには、コードフロー、関数、文字列を隠蔽するために高度な難読化が施されています。ScrubBypassの主な役割は、AMSIのスキャンバッファとEtwEventWriteにパッチを適用し、AMSIとETWをバイパスすることです。

図23: ScrubBypass

このVenomRATプラグインのバージョンは6.0.3です。キーロガーの機能を備えており、C2サーバーの情報をPastebin Webサイトに保存します。また、多数のデータタイプを収集し、被害者のキーボード操作をモニタリングし、窃取したデータを継続的にC2サーバーに送信します。

図24:VenomRATのグラバーとキーロガー

図25:構成

プラグイン2:NanoCore

NanoCoreは悪名高いリモートアクセス型トロイの木馬(RAT)で、初めて発見されたのは2013年です。リモートからアクセスして被害者のコンピュータを制御できることで知られており、多くの場合、被害者はそれに気づきません。ソースコードが地下フォーラムで公開され、広く拡散されているため、サイバー犯罪界で影響力を持ち続けています。NanoCoreは、難読化されたVBSファイル(図26)によって、侵害されたデバイスに配信されます。

図26:難読化されたVBSスクリプト

このスクリプトは、クリプターサービスプロバイダーでもあるWebサイト「hxxps://nanoshield[.]pro/files」に次の段階のデータを保存します。最初にJPGファイルを取得し、リバースされたURLをパラメータとして使用して目的のセクションをデコードします。我々は、2つ目のURL「hxxps://nanoshd[.]pro/files/new_image.jpg?14441723」へのアクセスに失敗しましたが、ホスト名を「nanoshield.pro」に変更すると、1つ目のURL「hxxps://nanoshield[.]pro/new_image2.jpg?166154725」のときと同様のファイルにアクセスできました。

図27:デコードされたVBSスクリプト

図28:JPGファイル

このJPGファイルは、画像内にコードを隠蔽するステガノグラフィーの手法を用いており、<<BASE64_START>>タグと<<BASE64_END>>タグの間にBase64でエンコードされたデータが埋め込まれています。我々は、JPGファイルをデコードして.NET実行ファイルを取得しました。このファイルは、レジストリキー「HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run」を構成して永続性を確保し、仮想環境の有無を確認します。続いて、エンコードされたデータをURL「nanoshield.pro/files」からダウンロードしてリバースし、文字列「DgTre」を置換し、「RegAsm」を使用してNanoCoreの実行を代行します。

図29:デコードされたJPGファイルによる次段階のマルウェア読み込み

図30:nanoshield.pro/filesから取得したエンコードデータ

図31:NanoCore

プラグイン3:XWorm

XWormは、USBフラッシュドライブなどのリムーバブルドライブを介して拡散し、Windowsシステムに感染するRATです。情報を窃取したり、リモートアクセスを許可したりします。図32は、VenomRATのC2サーバーから受信したプラグインで、パケットの末尾で「xwrm3.1.vbs」というファイル名が確認できます。

図32:VenomRATのC2サーバーから受信したプラグインデータ

図33:デコードされたVBSスクリプト

図34:XWorm

我々は、VBSファイルに加えてもう一つ別の「plug_in」を取得しました。ここにはPowerShellコマンドを実行するバッチスクリプトが格納されています。このプラグインは、「hxxps://kisanbethak[.]com/K/Universallsningen.lpk」からエンコードされたデータをダウンロードします。

図35:Guloader PowerShellを実行するバッチスクリプト

図36:エンコードされたデータが含まれるWebサイト

PowerShellコードの次の段階は、デコードされた「Universallsningen.lpk」ファイルの末尾に配置されています。分析を困難にするため多数の無意味なコメントが挿入されているにもかかわらず、PowerShellコードはプロセスホローイングの手法を用いて、正規のプロセスにシェルコードを注入します。シェルコードが注入され環境が確認されると、シェルコードが最終的なマルウェアであるXWormを実行します。この攻撃シナリオでは、GuLoaderがNanoCoreとRemcosも配信します。

図37:デコードされた「Universallsningen.lpk」内のPowerShellスクリプト

プラグイン4:Remcos

Remcosは2016年に初めて出現したRATです。リモート管理用の正規のソフトウェアとして販売されていますが、しばしば不当な目的に使用されます。Remcosは、感染したシステムの完全な制御権を攻撃者に与え、キーストローク、スクリーンショット、認証情報、その他の機密情報の入手を可能にします。通常は不正な文書またはアーカイブファイルを介して配信され、フィッシング攻撃に利用されます。このプラグインは、難読化されたVBSスクリプト「remcos.vbs」、ScrubCrypt、およびGuloader PowerShellという3通りの方法でVenomRATのC2から配信されていました。

図38:VenomRATのC2サーバーから受信したプラグインデータ

図39:難読化解除されたVBSスクリプト

図40:ソースデータ「P」からRemcosを読み込むScrubCrypt .NETファイル

図41: Guloader PowerShell

Remcosの構成は、「SETTINGS」リソースにRC4で暗号化されています。復号されたデータを図42に示します。

図42:復号された構成

プラグイン5:Stealer

このプラグインは、前述の難読化されたVBSスクリプトを介して配信されるだけでなく、SmartAssemblyで難読化された.NET実行ファイルにも埋め込まれています。.NET実行ファイルは、リソースファイル「ach」から次の段階のペイロードを取得してデコードし、そのデータをメモリに書き込みます。

図43:メモリへのペイロードの書き込み

次に、自身をTEMPフォルダにコピーし、コピーしたファイルを「Nano」というスケジュール済みタスクに設定します。このタスクは最初にトリガーされた後、10分おきに繰り返されます。

図44:自身をコピーしてタスクをスケジュール

次の段階のペイロードはもっと単純です。ここには不正なDLLファイル用にハードコードされた配列が含まれており、被害者の機密データを盗むために使用されます。

図45:Main関数

図46:ハードコードされたペイロード

DLLファイルは、Base64でエンコードされたデータに構成(C2ホスト名、通信を暗号化するための証明書など)を保存しています。

図47:デコードされた構成

このDLLファイルはユーザーのシステムをモニタリングし続け、以下のタスクを繰り返し実行することで特定の暗号ウォレット、Foxmail、およびTelegramのデータを入手しようとします。

1.     PC名、ユーザー名、アンチウイルスソフトウェア、ディスク情報、オペレーティングシステムのバージョンなど、被害者の環境に関する情報を収集します。

2.     次のパスの有無を確認します。「%AppData%\atomic\Local Storage\leveldb」、「%AppData%\Electrum\wallets」、「%AppData%\Ethereum\keystore」、「%AppData%\Exodus\exodus.wallet」、「%AppData%\com.liberty.jaxx\IndexedDB」、「%AppData%\Zcash」、「%AppData%\Foxmail」、「%AppData%\Telegram Desktop\Telegram.exe」

3.     次のレジストリの有無を確認します。「Software\Bitcoin\Bitcoin-Qt」、「Software\Dash\Dash-Qt」、「Software\Litecoin\Litecoin-Qt」

4.     目的のデータが収集されると、末尾に実行ファイルのパスを追加して、データがC2サーバー「markjohnhvncpure[.]duckdns.org」に送信されます。

結論

今回の分析により、多層的な難読化と回避技術を使用し、ScrubCrypt経由でVenomRATを拡散、実行する高度な攻撃が明らかになりました。攻撃者は、悪意のあるファイルを添付したフィッシングメール、難読化されたスクリプトファイル、Guloader PowerShellなど、多様な手法を用いて被害者のシステムに侵入し、被害を与えます。また、さまざまなペイロードでプラグインを配信する方法は、この攻撃キャンペーンの汎用性と順応性の高さを明確に示しています。

システムでの永続化、検知回避、不正ペイロードの実行といった攻撃者の能力は、こうした脅威を効果的に軽減するために、堅固なサイバーセキュリティ対策と用心深いモニタリングが重要であることを裏付けています。

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

FortiGuardアンチウイルスは、このブログで解説したマルウェアを以下の不正プログラムとして検知しブロックします。

W32/Rescoms.U!tr
MSIL/NanoCore.K!tr
MSIL/Kryptik.TPQ!tr
MSIL/Kryptik.AKNE!tr
MSIL/Kryptik.AKCI!tr
MSIL/Kryptik.AHUA!tr
MSIL/GenericKD.70765425!tr
MSIL/GenericKD.61253965!tr
MSIL/Agent.VIC!tr
MSIL/Agent.SUB!tr
MSIL/Agent.PEP!tr.dldr
MSIL/Agent.CTE!tr
MSIL/Agent.CFQ!tr
JS/Agent.PIJ!tr
BAT/Agent.B7E9!tr
BAT/Agent.ARX!tr.dldr
VBS/Agent.IFT!tr
PowerShell/Agent.2C1B!tr

FortiGate、FortiMail、FortiClient、FortiEDRは、FortiGuardアンチウイルスサービスをサポートしています。これらの各ソリューションには、FortiGuardアンチウイルスエンジンが含まれています。したがって、最新の保護機能を備えたこれらの製品をお使いのお客様は、脅威から保護されています。

FortiGuard CDR(コンテンツ無害化)サービスは、ドキュメント内の不正なマクロを無効化できます。

フォーティネットでは、無料でご利用いただけるNSEトレーニング:NSE 1 – 情報セキュリティ意識向上もお勧めしています。このモジュールでは、エンドユーザーがフィッシング攻撃を識別し、自分自身を守る方法を習得できます。

FortiGuard IPレピュテーションおよびアンチボットネットセキュリティサービスは、フォーティネット分散ネットワークから不正な送信元のIPデータを集約し、攻撃を事前にブロックします。この分散ネットワークでは、脅威センサー、CERT、MITER、協力関係にある他社、その他のグローバルソースが連携し、悪意ある送信元に関する最新の脅威インテリジェンスを提供しています。

組織がVenomRATやその他のサイバーセキュリティ攻撃を受けていると思われる場合は、フォーティネットのグローバルFortiGuardインシデントレスポンスチームまでご連絡ください。

IOC(Indicators of Compromise:侵害指標)

C2

hjkdnd[.]duckdns[.]org
mup830634[.]duckdns[.]org
markjohnhvncpure[.]duckdns[.]org
homoney177[.]duckdns[.]org
febvenom8[.]duckdns[.]org
rachesxwdavid[.]duckdns[.]org

URL

hxxps://nanoshd[.]pro/files/new_image.jpg?14441723
hxxps://nanoshield[.]pro/new_image2.jpg?166154725
hxxps://kisanbethak[.]com/P/
hxxps://kisanbethak[.]com/K/

ファイル

06779e1015bd7dd2012ad03f7bb3f34e8d99d6ca41106f89cb9fb1ec46fe034e
0b5631041336a58ab859d273d76c571dd372220dfa1583b597a2fe5339ad4bf7
0f1d6aab547ceca6e71ac2e5a54afdaea597318fe7b6ca337f5b92fdff596168
2373840bc455d601551304ec46c281b218e90a91dce3823709c213814636e899
258578c03ca314ac3a636a91e8b3245230eae974cf50799d89b3f931e637014c
411ad772af94a042413af482a2ef356d3217bcc5123353e3c574347cb93e3d5a
4a4b5c22c877437c359ef2acaeeb059881da43b11798581cf2f31c2c83fc3418
4cda23993d793ef070be7b9066f31a45b10c1e72d809f4a43726da977a0069d8
51ecf11a64e934409bfada2b6f0c4d89c3420ca95640bc88f928906e6f0b4832
53a522051e0319176dece493b7e2543135ed41c402adbfeda32a5f6be7d68175
546a85e384ced3d4535bad16a877ecd36a79849c379c5daa357689116f042c1b
5c5caa3182d6b121c1445d6ca81134ec262cd5ea4f9ef1944f993b63d1987647
5f1746b4bd8d94d4d3feb1e2d4a829b6c3bab9341e272341f4b3a1da01d20745
6aaff578555cb82159a9c16a159f0437c39b673744e0c537c4b7f0f67f56c5d9
6ac5c7284aaa0c195723df7a78ae610a7ee096b3b5bc19f6838451acd438116e
71a22bed7ab5a26158fc1cf1b7bb87146254672483aad72736817ff16e656c7b
7d7a710e3c0e5da830213f9b72f44a72d721adcf17abc838f28286dde8a1e8d9
7d9c8d44554ee10310805920afb51249a1e8cd3e32b430e8c9638fec316913d3
85790dad1a0af5febd7d90e0ec9ce680ec87dcc31a94a25bfb454bb121164bfd
8e97019f8c4712f1fc9728c4706112a5ef85a05aa809985709faef951925e094
94b2e06e45407f193cfe58e18f5c250bbd1b8e857a754f1c366913129b9dada7
bee35a9d30d6f69cd6d173c6a6a93110cac59ab3710e32eced6f266581e88b87
cd1364d8c7f6f0246ed91cd294e2e506e7c94ba2f9a33c373c6fcfe04bbe17e7
d04bf1a9f6014bf4bcdb3ac4eb6d85bcc4159ae25a7f00c4493cbcb8e892e159
d05ad3dc62e1dc45fd31dc2382c1ea5e5f26f4f7692cb2ef8fd1c6e74b69fa16
dc2c1694d363d78cdfed0574cf51413b9b48d932e076033bb76cf69a4470b7e9
dceea68a037376b323d2a934f9fdc59bfbd2c2c0ed66014bdf059f403f4dc6f2
e190d172b7d3c7f1055052f0ed3da5d5979a8a2b622ca2fbcea90774a5bf6008
f02c04bc428694a11917375f41ecb7c7aa326cf242b4c56ed1e7b3ae14d5dd68
f4164be3d357682754559aa32ea74c284eee64140d3f56a63a225d5de10d051c