WinRAR の CVE-2023-40477 脆弱性のエクスプロイトを謳う偽 PoC (概念実証) が見つかる − PoC 実行で VenomRAT に感染

A pictorial representation of a fake PoC distributing VenomRAT. A Trojan horse against a computer screen is on a green background. Palo Alto Networks logo. Unit 42 logo.

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

目次

「ないなら騙せばいいじゃない」
ソーシャル エンジニアリング
偽の PoC (概念実証)
事象発生の時系列
結論
IoC

「ないなら騙せばいいじゃない」

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 エラーが返ります。

画像 1 は X (旧 Twitter) への投稿のスクリーンショットです。ユーザー名は @AabyssZG です。プロフィールの写真には、コンピューターに座って後ろを向いている髪の短い人が写っています。投稿には、中国語の文字が混じっています。投稿の内容は「CVE-2023-40477の PoCには問題があるので実行しないでください」というものです。投稿の日付は 2023 年 8 月 21 日の午後 11 時 02 分で、スクリーンショットが撮影された時点での投稿閲覧回数は 13,100 回となっています。この投稿は 8 回リポストされ、3 回引用され、「いいね」が 33 件ついていて、ブックマークが 6 件ついています。
図1. whalersplonk の GitHub リポジトリでホストされている偽 PoC コードに関する投稿

この偽 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] ボタンをクリックし、リポジトリ全体をダウンロードすることで生成したものと考えています。

ソーシャル エンジニアリング

図 2 は ZIP アーカイブ内の README.md というファイルです。このファイルは CVE-2023-40477 の脆弱性の概要と poc.py スクリプトの使用手順を提供することで、さらにユーザーをだましてシステムを侵害しようとするものです。この使用手順には streamable[.]com にホストされているビデオへのリンクも含まれています。このビデオはすでに README.mdファイル内にある URL 上にはホストされていません。2023 年 8 月 25 日午前 5:35:00 UTC に期限切れになるように設定されていました。

画像 2 は Wordpad で README を閲覧したスクリーンショットです。CVE-2023-40477. POC WinRAR vulnerable to remote code execution, A widely used Windows-only utility, WinRAR can create an extract file archives in various compression formats. CVE-2023-40477 is the remote code execution vulnerability that could allow remote threat actors to execute arbitrary code on an affected WinRAR installation. Usage. Create “test.rar” and place in the same directory as poc.py. Put any files you want inside test.rar. Execute command: poc.py -c CMD command to execute. Done!Now after someone open any file inside .rar file will execute that command hiddenly. Video: streamable dot com forward slash nx20wk.
図2. ZIP アーカイブ内の README.md。CVE-2023-40477 の脆弱性の概要と PoC の使用手順を提供している

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 のペイロードと同一の実行可能ファイル名です。この攻撃者はペイロードのテストとデモビデオの作成を同一のシステム上で行ったものと考えられます。

画像 3 はデスクトップのスクリーンショットです。タスク マネージャーが開かれています。Windows.Gaming.Preview というのは VenomRAT ペイロードの実行可能ファイル名です。
図3. 22.08.2023_00.17.56_REC.mp4 の 1 つめのサムネイル画像はビデオの再生前に表示される。アクターのシステム上で実行中の VenomRAT プロセスを表示している

図 4 に示した 2 つめのスクリーンショットは、Streamable がビデオの途中でキャプチャしたものと思われます。この画像でアクターは Burp Suite のアーカイブや 311138 というパスワード、PuTTY クライアントを表示しています。この攻撃者は、悪意のあるアーカイブを作成し、そのスクリプトを使って WinRAR における CVE-2023-40477 の脆弱性をエクスプロイト方法を示すふりをしていたと考えられます。

さらに重要なのは、このスクリーンショットの Windows の時計が 2023 年 8 月 21 日午後 3 時 17 分という日時を示していることです。これまでの時系列にこの情報を使えば、この時刻が時系列のどこに当てはまるかを判断し、ほかのアクティビティからアクターの在住するタイム ゾーンを推測できます。

画像 4 はデスクトップのスクリーンショットです。タスク マネージャーが開かれています。Burp Suite の試用版も開かれています。メモ帳で開いているファイルには「pass: 311138」と書かれています。PuTTY の構成が開いています。
図4. 22.08.2023_00.17.56_REC.mp4 の 2 つめのサムネイル画像。Burp Suite のアーカイブが表示されている

私たちは、先のビデオの burpsuite_pro_v2023.2.2.zip アーカイブが Telegram の投稿から取得されたものと考えています (図 5)。Telegram の投稿が提供している Burp Suite アプリケーションは、PortSwigger の Web サイトから入手可能ですが、私たちはこれが正規バージョンであるかどうかの分析や確認はしていません。

画像 5 は Telegram 投稿のスクリーンショットです。Burpsuite (not official)Burpsuite_pro_v2023.2.2.zipPass: 311138README inside, plz read it before run BS. Happy hacking!(Party emoji)Telegram のリンクは t[.]me/burpsuite/390 です。スクリーンショットの時点でこの投稿は 33,200 回閲覧されていました。これは 3 月 6 日 10 時 58 分に投稿されています。
図5. アクターがデモビデオで使った burpsuite_pro_v2023.2.2.zip アーカイブを示す Telegram の投稿

偽の PoC (概念実証)

ZIP アーカイブ内の偽 PoC 用 Python スクリプトの名前は poc.py です。このスクリプトは、オープンソースの CVE-2023-25157 の PoC を元にしていて、図 6 に示すような変更をいくつか加えてあります。CVE-2023-25157 からの PoC コードの変更内容は次のとおりです。

  • CVE-2023-25157 の脆弱性の詳細に関するコメントの削除
  • ネットワーク関連の脆弱性であることを示唆するコード行の削除 (たとえば PROXYPROXY_ENABLED などの名前がついた変数設定)
  • geoserver という文字列を exploit という文字列に変更
  • 「Check dependency (依存関係の確認)」というコメントを付けたバッチ スクリプトのダウンロード・実行コードの追加
画像 6 は 2 つのスクリーンショットを並べたものです。左は CVE-2023-25157 の本物の PoC です。右は偽の CVE-2023-40477 の PoC です。どちらも Python で書かれています。この比較は削除・変更・追加されたコードを示しています。
図6. 正規の CVE-2023-25157 の PoC (左) と偽の CVE-2023-40477 の PoC (右) の比較

poc.py はコードが数行削除されたために正常に実行されませんが、スクリプトに追加された悪意のあるコードはスクリプトの例外による終了前に正常に実行されます (図 7)。

画像 7 は、コマンド プロンプトの poc.py スクリプトのスクリーンショットです。一部の情報は伏せられています。このスクリプトは、悪意のあるコードが実行されると終了します。
図7. 悪意のあるコードを実行後に poc.py スクリプトは例外によってクローズされる

上図 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 スクリプトをダウンロードして実行するスクリプト。
保存された PowerShell スクリプトをダウンロードして実行するスクリプト

ダウンロードされた 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 亜種は、次のように構成されています。

設定の 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 のデプロイなど)
  • パロアルトネットワークス製品によるカバレッジ

画像 8 は CVE-2023-40477 の偽 PoC に関連する事象を発生の時系列で並べたものです。時系列は 2023 年 7 月 16 日に checkblacklistwords[.]eu に対する最後に変更されたフィールド HTTP 応答から始まっています。WinRAR が 2023 年 8 月 27 日にリリース ノートの一部としてこの脆弱性を公開する時点で終わっています。
図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 か月以上前に、サーバーを最初にセットアップしていた可能性が示唆されます。

パロアルトネットワークスの製品カバレッジにもとづくと、WildFireAdvanced 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

IoC の完全なリストは GitHub から入手できます。

インジケータ 種類 説明
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