This post is also available in: English (英語)
概要
リサーチャーは、脅威アクターが古い概念実証 (PoC) コードを再利用して、新たにリリースされた脆弱性用の偽 PoC をすばやく作成してしまうことを意識しておく必要があります。2023 年 8 月 17 日に Zero Day Initiative は WinRAR のリモート コード実行 (RCE) の脆弱性 (CVE-2023-40477) を公開しました。同団体は、2023 年 6 月 8 日にベンダーへの開示を行っていました。CVE-2023-40477 の公開から 4 日後、ある攻撃者が whalersplonk というエイリアスを使い、偽の PoC スクリプトを GitHub リポジトリにコミットしました。
WinRAR の脆弱性のエクスプロイト用とされたこの偽 PoC は、GeoServer というアプリケーションの SQL インジェクション脆弱性 (CVE-2023-25157) を悪用する公開済みの PoC スクリプトを元にしていました。私たちが偽 PoC スクリプトと感染チェーン内のリンクをすべて分析したところ、これは最終的に VenomRAT のペイロードをインストールしていました。
私たちは、攻撃者がとりたててリサーチャーを狙ってこの偽 PoC スクリプトを作成したとは考えていません。むしろ、攻撃者は日和見的で、新たな脆弱性を自らのオペレーションに導入しようとしているべつの犯罪者を侵害しようとした可能性があります。
事象発生の時系列から考えてこの攻撃者はインフラやペイロードを偽 PoC とはべつに作成していたと考えられます。この脆弱性が公開されると、攻撃者らは人気アプリの深刻な RCE を利用しようとすばやく行動に移りました。WinRAR は世界中に 5 億人以上のユーザーがいると述べています。
Cyber Threat Alliance (CTA) のメンバーである Broadcom/Symantec (@threatintel) に、この CVE の初期サンプルを共有してくださったことに対する感謝を申し上げます。
パロアルトネットワークス製品をご利用中のお客様は、この偽 PoC コードが作成される以前に WildFire と Advanced URL Filtering により同感染チェーンからの保護を受けていました。なお checkblacklistwords[.]eu というドメインが感染で必要とされるさまざまなファイルや VenomRAT のペイロードのホストに使われていましたが、これは PoC が GitHub にコミットされる以前に、自動でマルウェアとして分類されていました。
関連する Unit 42 のトピック | Vulnerability, Remote Access Trojan |
「ないなら騙せばいいじゃない」
whalersplonk というエイリアスを使う正体不明の攻撃者が WinRAR の RCE 脆弱性 (CVE-2023-40477) 用とする偽 PoC スクリプトを公開しました。この PoC は対象とされる脆弱性をエクスプロイトしていないニセモノで、GeoServer に存在する脆弱性 (CVE-2023-25157) のために公開された PoC コードをベースにしています。この PoC スクリプトは言われているような WinRAR の脆弱性のエクスプロイトは行いません。いくつかの手順をへて、VenomRAT のペイロードをインストールする感染チェーンをトリガーします。
WinRAR における CVE-2023-40477 脆弱性によって、攻撃者は対象システム上で、悪意のあるファイルを開くコードを実行できます。2023 年 8 月 24 日にベンダーが発表した内容によると、2023 年 6 月 8 日に Zero Day Initiative が CVE-2023-40477 の脆弱性を最初に報告し、2023 年 8 月 17 日に一般に開示しました。ZIP アーカイブ内のタイムスタンプは、この攻撃者が脆弱性が公表されてから 4 日後の 2023 年 8 月 21 日にファイルを GitHub にコミットしたことを示唆しています。
@AabyssZG の投稿によると、この偽 PoC のアーカイブは、whalersplonk という名前のユーザーの GitHub リポジトリにホストされていました (図 1)。このリポジトリはその後削除されたため、アクセスすると 404 エラーが返ります。
この偽 PoC は CVE-2023-40477-main.zip という名前の ZIP アーカイブとして VirusTotal にアップロードされました。中身は Python スクリプトで、poc.py という名前がつけられています。以下のコード スニペットは、7-Zip 内の CVE-2023-40477-main.zip アーカイブの内容を示したものです。私たちはこの CVE-2023-40477-main.zip というファイル自体は GitHub の [Download ZIP] ボタンをクリックし、リポジトリ全体をダウンロードすることで生成したものと考えています。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Listing archive: CVE-2023-40477-main.zip -- Path = CVE-2023-40477-main.zip Type = zip Physical Size = 2360 Comment = 82cb695f463b93b9cc089253cd6b5e32dce46c35 Date Time Attr Size Compressed Name ------------------- ----- ------------ ------------ ------------------------ 2023-08-21 21:15:49 D.... 0 0 CVE-2023-40477-main 2023-08-21 21:15:49 ..... 752 442 CVE-2023-40477-main/README.md 2023-08-21 21:15:49 ..... 3656 1424 CVE-2023-40477-main/poc.py ------------------- ----- ------------ ------------ ------------------------ 2023-08-21 21:15:49 4408 1866 2 files, 1 folders |
ソーシャル エンジニアリング
図 2 は ZIP アーカイブ内の README.md というファイルです。このファイルは CVE-2023-40477 の脆弱性の概要と poc.py スクリプトの使用手順を提供することで、さらにユーザーをだましてシステムを侵害しようとするものです。この使用手順には streamable[.]com にホストされているビデオへのリンクも含まれています。このビデオはすでに README.mdファイル内にある URL 上にはホストされていません。2023 年 8 月 25 日午前 5:35:00 UTC に期限切れになるように設定されていました。
Streamable が提供するメタデータからは、同ビデオに関する興味深い情報が見つかりました。表 1 は Streamable でホストされているビデオに関する重要な情報を示したものです。この情報には同ビデオがアップロードされた日付も含まれていて、この日付は時系列と一致しています。再生回数からはこのビデオが重複なしで 100 回以上視聴されたことがわかります。
メタデータ フィールド | 値 |
date_added | 1692656432.078 (2023 年 8 月 21 日午後 10:20:32 UTC) |
original_name | 22.08.2023_00.17.56_REC.mp4 |
duration | 20.303278 秒 |
plays | 121 (2023-08-22 05:38:32 現在) |
表1. ビデオのメタデータ フィールドとその値
私たちは Streamable にアップロードされた 22.08.2023_00.17.56_REC.mp4 に関連する 2 つのスクリーンショットも入手しましたが、これらはビデオの一部を表示するサムネイル画像として使われていました。1 つめのスクリーンショットはユーザーがビデオの再生ボタンをクリックする前に Streamable が表示する画像で、これには脅威アクターのデスクトップとタスク マネージャーが表示されています。
図 3 はタスク マネージャーに Windows.Gaming.Preview という名前のプロセスが表示されていることを示しています。このプロセスは本稿で後述する VenomRAT のペイロードと同一の実行可能ファイル名です。この攻撃者はペイロードのテストとデモビデオの作成を同一のシステム上で行ったものと考えられます。
図 4 に示した 2 つめのスクリーンショットは、Streamable がビデオの途中でキャプチャしたものと思われます。この画像でアクターは Burp Suite のアーカイブや 311138 というパスワード、PuTTY クライアントを表示しています。この攻撃者は、悪意のあるアーカイブを作成し、そのスクリプトを使って WinRAR における CVE-2023-40477 の脆弱性をエクスプロイト方法を示すふりをしていたと考えられます。
さらに重要なのは、このスクリーンショットの Windows の時計が 2023 年 8 月 21 日午後 3 時 17 分という日時を示していることです。これまでの時系列にこの情報を使えば、この時刻が時系列のどこに当てはまるかを判断し、ほかのアクティビティからアクターの在住するタイム ゾーンを推測できます。
私たちは、先のビデオの burpsuite_pro_v2023.2.2.zip アーカイブが Telegram の投稿から取得されたものと考えています (図 5)。Telegram の投稿が提供している Burp Suite アプリケーションは、PortSwigger の Web サイトから入手可能ですが、私たちはこれが正規バージョンであるかどうかの分析や確認はしていません。
偽の PoC (概念実証)
ZIP アーカイブ内の偽 PoC 用 Python スクリプトの名前は poc.py です。このスクリプトは、オープンソースの CVE-2023-25157 の PoC を元にしていて、図 6 に示すような変更をいくつか加えてあります。CVE-2023-25157 からの PoC コードの変更内容は次のとおりです。
- CVE-2023-25157 の脆弱性の詳細に関するコメントの削除
- ネットワーク関連の脆弱性であることを示唆するコード行の削除 (たとえば PROXY や PROXY_ENABLED などの名前がついた変数設定)
- geoserver という文字列を exploit という文字列に変更
- 「Check dependency (依存関係の確認)」というコメントを付けたバッチ スクリプトのダウンロード・実行コードの追加
poc.py はコードが数行削除されたために正常に実行されませんが、スクリプトに追加された悪意のあるコードはスクリプトの例外による終了前に正常に実行されます (図 7)。
上図 6 で右側にある CVE-2023-25157 の PoC コード内に、緑色で表示されている行にはコードが追加されていて、これがバッチ スクリプトを %TEMP%/bat.bat に作成します。このスクリプトは次の URL にアクセスし、レスポンス内容を実行します。
- http://checkblacklistwords[.]eu/check-u/robot?963421355?Ihead=true
上記の URL にホストされているバッチ スクリプトはエンコードされた PowerShell スクリプトを実行し、これが別の checkblacklistwords[.]eu/c.txt からの PowerShell スクリプトをダウンロードします。次にスクリプトはこのファイルを %TEMP%\c.ps1 に保存して実行します (以下のコード ブロック参照)。
ダウンロードされた PowerShell スクリプトは、実行可能ファイルを checkblacklistwords[.]eu/words.txt からダウンロードし、これを %APPDATA%\Drivers\Windows.Gaming.Preview.exe として保存します。この PowerShell スクリプトは実行可能ファイルを実行するほか、Windows.Gaming.Preview という名前のスケジュール タスクも作成します。このタスクはペイロードを永続的に実行するために 3 分ごとに実行可能ファイルを実行します。
この Windows.Gaming.Preview.exe という実行可能ファイルは VenomRAT の亜種で、これは README.md ファイル (上図 3) でビデオ再生中にタスク マネージャーが表示していた実行プロセス名と同じ名前です。このことは攻撃者がビデオ作成時にシステム上で VenomRAT ペイロードを実行していた可能性を示唆しています。
この特定の VenomRAT 亜種は、次のように構成されています。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Por_ts = null Hos_ts = null Ver_sion = Venom RAT + HVNC + Stealer + Grabber v6.0.3 In_stall = false MTX = fqziwqjwgwzscvfy Paste_bin = http://checkblacklistwords[.]eu/list.txt An_ti = false Anti_Process = false BS_OD = false Group = Default Hw_id = HEX(MD5(<cpu count> + <username> + <hostname> + <os version> + <system directory>)) Server_signa_ture = TtHk/GR7jC2p75o/t7g/BLsDYghocYu2[snip] Server_certificate = MIICOTCCAaKgAwIBAgIVAPyfwFFMs6h[snip] |
設定の Paste_bin フィールドには、http://checkblacklistwords[.]eu/list.txt という URL が値として設定されています。実行可能ファイルはこの URL と通信をしてコマンド & コントロール (C2) の場所を取得します。この URL は C2 が次の IP アドレスにあることを示しています。
- 94.156.253[.]109:4449
この特定の VenomRAT クライアントはキーストロークを %APPDATA%\MyData\DataLogs_keylog_offline.txt に記録するキー ロガー機能を開始します。その後、クライアントは C2 サーバーとの通信を開始し、表 2 に示したコマンドについてサーバーからのレスポンスを処理します。
コマンド | 説明 |
plu_gin | save_Plugin コマンド経由でレジストリ内のキーに保存されているプラグインを名前で呼び出す |
HVNCStop | cvtres という名前でプロセスを取得してこれを終了する |
loadofflinelog | %APPDATA%\MyData\DataLogs_keylog_offline.txt からオフラインのキー ロガー ファイルを アップロードする |
save_Plugin | plu_gin コマンド経由でレジストリにロード用のプラグインを保存する。プラグインは Software\\<hardware id> 内の指定されたサブキーに保存される |
runningapp | 実行中のプロセスを取得する |
keylogsetting | %APPDATA%\MyData\DataLogs.conf に保存される新しいキー ログ構成ファイルを提供する |
init_reg | Software\\<hardware id> のサブキーを削除する |
Po_ng | C2 サーバーに送信された最後の PING メッセージから Po_ng コマンド 受信までのインターバルを送信する |
filterinfo | インストールされているアプリケーションの一覧をレジストリ (SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall) と実行中のプロセスから取得する |
表2. VenomRAT 亜種のコマンドとその説明
VenomRAT サンプルのポータブル実行可能ファイル (PE) のヘッダーにもとづくと、この実行可能ファイルのコンパイル日時は 2023 年 2 月 8 日 22:10:28 UTC でした。私たちはこれと同じコンパイル時刻を持つ 700 個強の VenomRAT サンプルを見つけました。このことは、この特定サンプルが、標準の VenomRAT ビルダーを使い、ベースとなる実行可能ファイルを使って構成を変更しながら作成された可能性が高いことを示唆しています。私たちが作った SHA と IoC の完全なリストはこちらの GitHub から入手できます。
事象発生の時系列
Unit 42 のリサーチャーは、前述のタイムスタンプと社内の製品で確認したタイムスタンプを使って、同インシデントをめぐる事象の発生時刻を図 8 に示す時系列にまとめました。これらのタイムスタンプはとくに次の項目と関連付けてあります。
- CVE-2023-40477 の脆弱性の開示
- 脅威アクターのアクティビティ (インフラのセットアップや偽 PoC のデプロイなど)
- パロアルトネットワークス製品によるカバレッジ
この時系列では、CVE-2023-40477 が公開される少なくとも 10 日前に、感染チェーンで使用された checkblacklistwords[.]eu というドメインを脅威アクターが作成していたことを示しています。これは同アクターが偽 PoC コードを GitHub にコミットする 14 日前です。ただし、この hxxp://checkblacklistwords[.]eu/ という URL に対する HTTP レスポンスの Last-Modified フィールドは、Sun, 16 Jul 2023 18:43:54 GMT に設定されています。この日時からは、同アクターが脆弱性が公開される 1 か月以上前に、サーバーを最初にセットアップしていた可能性が示唆されます。
パロアルトネットワークスの製品カバレッジにもとづくと、WildFire、Advanced URL Filtering はいずれも、以下に対し、マルウェアの判定を下していました。
- VenomRAT のペイロード
- checkblacklistwords[.]eu のドメイン
- 感染チェーンで確認された 2 つの URL
Advanced URL Filtering は、このアクターによる偽 PoC の公開翌日には、感染チェーン内で確認された残りの URL を自動処理し、「malicious (悪意のあるもの)」という判定を下していました。
この時系列に基づくと、同アクターはこの偽 PoC とはべつにインフラやペイロードを作成していたものと考えられます。この脆弱性が公開されると、攻撃者はすぐに偽 PoC を作成し、WinRAR などの人気アプリの深刻な RCE に乗じ、潜在的被害者を誘い込もうとしていました。
結論
正体不明の攻撃者が有名アプリの RCE 脆弱性をエクスプロイトするため、脆弱性の公表後に偽 PoC を公開して個人の侵害を画策していました。この PoC はニセモノで、WinRAR の脆弱性用のエクスプロイトではありません。このことは、この攻撃者が WinRAR などの人気 RCE を利用し、他者を侵害しようともくろんでいたことを示唆しています。この偽 PoC は、GeoServer の脆弱性用の公開コードをもとにしたもので、VenomRAT をインストールする感染チェーンをトリガーします。
その確かな影響や侵害数はわかりかねますが、同アクターが偽のエクスプロイト スクリプトとともに提供した説明ビデオの視聴回数は 121 回でした。
パロアルトネットワークス製品をご利用中のお客様は、偽エクスプロイト スクリプトの作成以前に checkblacklistwords[.]euドメインも VenomRAT サンプルも「(malicious) 悪意がある」という判定を受けていたことから、この偽 PoC からは保護されていました。
侵害の懸念があり弊社にインシデントレスポンスに関するご相談をなさりたい場合は、こちらのフォームからご連絡いただくか、infojapan@paloaltonetworks.comまでメールにてご連絡いただくか、下記の電話番号までお問い合わせください (ご相談は弊社製品のお客様に限定されません)。
- 北米フリーダイヤル: 866.486.4842 (866.4.UNIT42)
- EMEA: +31.20.299.3130
- APAC: +65.6983.8730
- 日本: (+81) 50-1790-0200
Cyber Threat Alliance (CTA) のメンバーである Broadcom/Symantec (@threatintel) に、この CVE の初期サンプルを共有してくださったことに対する感謝を申し上げます。私たちはさらに、ファイル サンプルや IoC (侵害指標) を含む調査結果を Cyber Threat Alliance (CTA: サイバー脅威アライアンス) のメンバーと共有しました。CTA のメンバーはこのインテリジェンスを使用して、お客様に保護を迅速に提供し、悪意のあるサイバー攻撃者を体系的に阻害することができます。詳細については Cyber Threat Alliance にてご確認ください。
IoC
インジケータ | 種類 | 説明 |
7fc8d002b89fcfeb1c1e6b0ca710d7603e7152f693a14d8c0b7514d911d04234 | ファイル | CVE-2023-40477-main.zip |
ecf96e8a52d0b7a9ac33a37ac8b2779f4c52a3d7e0cf8da09d562ba0de6b30ff | ファイル | poc.py |
c2a2678f6bb0ff5805f0c3d95514ac6eeaeacd8a4b62bcc32a716639f7e62cc4 | ファイル | bat.bat |
b99161d933f023795afd287915c50a92df244e5041715c3381733e30b666fd3b | ファイル | c.ps1 |
b77e4af833185c72590d344fd8f555b95de97ae7ca5c6ff5109a2d204a0d2b8e | ファイル | Windows.Gaming.Preview.exe - VenomRAT |
94.156.253[.]109 | IPv4 | VenomRAT C2 |
checkblacklistwords[.]eu | ドメイン | 感染チェーン内のホストされたファイル |
http://checkblacklistwords[.]eu/check-u/robot?963421355?Ihead=true | URL | ホストされた bat.bat |
http://checkblacklistwords[.]eu/c.txt | URL | ホストされた c.ps1 |
http://checkblacklistwords[.]eu/words.txt | URL | ホストされた Windows.Gaming.Preview.exe |