AhnLab Security Intelligence Center (ASEC) は、パッチが適用されていない Telerik UI for ASP.NET AJAX サーバーを対象にリモートコード実行の脆弱性 (CVE-2019-18935) を悪用した2件の攻撃事例を確認した。
1件目の事例では、脆弱性を悪用してリバースシェルを実行すると同時に権限昇格を試み、Web シェルを設置していた。2件目の事例では、追加の攻撃対象を探索するためのスキャナーツールを実行していた。
1. Telerik UI for ASP.NET AJAX のリモートコード実行の脆弱性 (CVE-2019-18935)
Telerik UI for ASP.NET AJAX は、Microsoft ASP.NET ベースの Web アプリケーション開発に使用される UI コンポーネント製品である。CVE-2019-18935は、ファイルアップロード機能である RadAsyncUpload に存在する .NET のデシリアライズの脆弱性であり、攻撃者がこれを悪用すると IIS Web サーバーの w3wp.exe プロセスの権限でリモートコードを実行できる。
2020年、Red Canary 社は、Blue Mockingbird という攻撃者が CVE-2019-18935の脆弱性を悪用し、Windows IIS サーバー上で悪意のある DLL を実行するとともに、Monero をマイニングする暗号資産マイニング型マルウェアを配布した攻撃事例を公開した [1]。また、2023年には CISA、FBI および MS-ISAC が、米国の連邦政府機関の IIS サーバーを対象に複数の攻撃者が悪意のある DLL をアップロードしてリモートコードを実行した攻撃事例を公開した。この攻撃でも CVE-2019-18935の脆弱性が悪用されたことが明らかになっている [2]。
2. 韓国国内の攻撃事例 – 1
1件目の攻撃事例では、CVE-2019-18935の脆弱性を悪用してリバースシェルを実行した後、システム名や権限、実行中のプロセスなどを照会していた。この過程では、Potato 系ツールを利用した権限昇格の試みも確認されており、最終的に Godzilla 方式の Web シェルが設置されていた。

[図1] リバースシェルを使用した hostname.exe コマンドの実行
2.1. リバースシェル
脆弱性の悪用過程で実行されたリバースシェルのペイロードは、Windows ソケットを作成した後、206[.]82.6.22のポート80に対して TCP 接続を試みる。接続に成功すると、そのソケットを標準入力・標準出力・標準エラーの各ハンドルに設定した上で cmd.exe プロセスを実行する。これにより、攻撃者はリモートからコマンドを送信し、その実行結果を受信できる。
C&C
- 206.82.6[.]22:80

[図2] C&C サーバーに接続して cmd.exe を実行するリバースシェルのコード
2.2. 権限昇格
さらに、感染したシステムでは、Web シェル環境で使用できるように改変された SweetPotato をはじめ、複数の改変版 Potato 系権限昇格ツールが検知された。
これらのツールは、PrintSpoofer などのトークン偽装手法を利用して SYSTEM 権限を取得した後、cmd.exe などのプロセスを高い権限で実行できる。

[図3] SweetPotato 権限昇格ツール
2.3. Web シェル
Web シェルは、Telerik ベースの ASP.NET 環境にメモリ上の Web シェルを注入する方式で設置される。ペイロードの DLL がロードされると、別のスレッドで Telerik.Web.UI がロードされた実行環境を探索し、その内部に含まれる godmemshell.dll をメモリにロードする。
その後、ASP.NET の VirtualPathProvider に悪意のあるリクエストを処理する機能を登録することで、別途 .aspx ファイルを作成することなく Web サーバープロセスのメモリ上で Web シェルを動作させる。

[図4] Web シェルの設置ペイロード
設置された Web シェルは、HTTP リクエストを通じて .NET ペイロードを受け取って実行する Godzilla 方式の Web シェルである。リクエストの Type ヘッダーに応じて処理方法を振り分け、暗号化されたリクエストデータを復号する。最初のリクエストでは、受信した .NET ペイロードをメモリにロードし、Cookie ベースの独自セッションに保存する。その後のリクエストでは、保存されたペイロードを呼び出して要求された処理を実行する。
実行結果は再び暗号化され、HTTP レスポンスとして返される。具体的な後続動作は、攻撃者が送信するペイロードによって異なる。

[図5] Web シェルコードの一部
3. 韓国国内の攻撃事例 – 2
2件目の攻撃事例では、CVE-2019-18935を悪用してリモートコードを実行できることを利用し、対象システム上にスキャナーファイルを作成して実行していた。
1件目の事例とは異なり、リバースシェルや Web シェルは使用されておらず、脆弱性を悪用するペイロードからもスキャナーを実行するコマンドのみが確認された。

[図6] 脆弱性攻撃によって作成されるペイロードファイルおよびスキャナーツール

[図7] スキャナーの実行コマンド
3.1. スキャナー
このスキャナーは、リモートサーバーからスキャン対象リストを受信し、WordPress のインストール・設定ページに接続する URL を非同期で探索する Rust ベースのスキャナーである。
WordPress がインストールされているサーバーと判断した場合、その URL とパブリック IP アドレスを 「red.txt」 という添付ファイル名で Telegram に送信する。
WordPress がインストールされているサーバーを判定する際には、一般的に Web サーバーのパスとして使用される53個の候補パスを利用する。これらのパスに 「/wp-admin/setup-config.php」 または 「/wp-admin/install.php」 が含まれている場合、WordPress がインストール済みかつ設定ページが外部に公開されているサーバーと判断する。
C&C
- hxxp://65.98.5[.]158:31337/ins.txt (スキャン対象リストの受信)
- hxxps://api.telegram[.]org/bot8930981923:AAGatbhK2_eiLMNtnWHkq33E6u7clhMPj5Q/sendMessage (スキャン開始・終了の通知)
- hxxps://api.telegram[.]org/bot8930981923:AAGatbhK2_eiLMNtnWHkq33E6u7clhMPj5Q/sendDocument (スキャン結果の送信)

[図8] リモートサーバーからのスキャン対象リストの受信
| /, /wordpress, /Wordpress, /WORDPRESS, /WordPress, /wp, /Wp, /WP, /old, /Old, /OLD, /oldsite, /new, /New, /NEW, /wp-old, /2022, /2025, /2026, /2023, /2024, /2017, /2020, /2019, /2018, /backup, /test, /Test, /TEST, /demo, /bc, /www, /WWW, /Www, /2021, /main, /old-site, /bk, /Backup, /BACKUP, /SHOP, /Shop, /shop, /bak, /sitio, /bac, /sito, /site, /Site, /SITE, /blog, /BLOG, /Blog |
[表1] 候補パス
4. 結論
Telerik UI for ASP.NET AJAX のリモートコード実行の脆弱性 (CVE-2019-18935) が公開された後も、パッチが適用されていない Windows IIS サーバーを対象とした攻撃事例が継続的に確認されている。
攻撃者は、脆弱性を悪用してリバースシェルを実行し、システム情報を収集した後、Godzilla ベースのメモリ上の Web シェルを設置していた。また、SweetPotato をはじめとする複数の Potato 系権限昇格ツールも同時に持ち込まれていた。
別の事例では、Rust ベースのスキャナーを実行し、外部に公開されている WordPress の設定ページを探索してその結果を Telegram に送信していた。
Web シェルが設置されると、攻撃者は感染したシステムをリモートから制御し、追加のマルウェアのインストールや情報窃取などの活動を実行できる。また、スキャナーを利用して新たな攻撃対象を探索することも可能となる。
5. 対応策
- Telerik UI for ASP.NET AJAX を脆弱性が修正されたバージョンにアップグレードする。
- Telerik UI のバージョン: 2020.1.114 以降 (可能な場合は、サポート対象の最新バージョンを使用する)
- 以下のパスに存在するマルウェアを確認する。
- C:\Users\Public\Documents\
- C:\Users\Public\
- w3wp.exe から起動された不審なプロセスを確認する。
- cmd.exe、powershell.exeなど
- 不要に公開されている WordPress のインストール・設定ページへのアクセスを制限する。
- /wp-admin/setup-config.php
- /wp-admin/install.php
Categories: マルウェア