Posted: 4 Min ReadJapanese
Original Post: English

Verblecon: 新しい高度なローダーが低レベルの攻撃で使用される

使用しているマルウェアの潜在能力に攻撃者が気付いていない可能性がある。

未知の攻撃者が複雑で強力な新しいマルウェアローダーを比較的単純で実入りの少ない攻撃に使用していますが、彼らは自分たちが展開しているマルウェアの潜在能力に気付いていない可能性があります。

このTrojan.Verbleconというマルウェアは、感染したマシンに暗号通貨マイナーをインストールすることを最終目的としているらしい攻撃で使用されています。これらの攻撃者がチャットアプリDiscordのアクセストークンを盗むことにも興味を持っていることを示唆する兆候もあります。ただし、このマルウェアの能力は非常に高く、ランサムウェアキャンペーンや諜報キャンペーンで活用されるときわめて危険なものになり得ます。

Broadcom Softwareの一事業部であるシマンテックのアナリストがVerbleconを最初に見つけたのは2022年1月のことです。このブログでは、このマルウェアの機能について詳しく論じていきます。

技術的詳細

このマルウェアは、サーバー側のポリフォーミック型JARファイルとして読み込まれます。ファイルがポリモーフィック型であるということは、暗号化と難読化が原因で、マルウェアペイロードのコードがダウンロードされるたびに違って見えることを意味します。一般に、攻撃者はセキュリティソフトウェアによる検知を逃れるために、この方法でマルウェアをパッケージ化します。

シマンテックが分析したこのマルウェアのサンプルは、コードフロー、文字列、記号のすべてが完全に難読化されていました。これらのサンプル自体は、公開された誰でも利用可能なコードに基づいているようです。

このマルウェアは、起動されると自身のコマンドライン引数をチェックします。このマルウェアの実行には少なくとも1つのコマンドライン引数が必要ですが、それはおそらく感染IDまたはキャンペーンIDであると考えられます。以下に例を示します。

"CSIDL_SYSTEM_DRIVE\program files\java\jre1.8.0_301\bin\javaw.exe" -jar "CSIDL_PROFILE\appdata\local\temp\rpvbh.jar" masonkhonsari

および

"CSIDL_SYSTEM_DRIVE\program files\java\jre1.8.0_301\bin\javaw.exe" -jar "CSIDL_PROFILE\appdata\local\temp\rpvbh.jar" 923ec15ffa4474ca7bf200bfb90e782d

このマルウェアはさらに、以下のJavaコマンドライン引数の有無をチェックすることで、自プロセスがデバッグされているかどうかを調べます。

  • "-xbootclasspath"
  • "-xdebug"
  • "-agentlib"
  • "-javaagent:"
  • "-xrun:"
  • "-verbose"
  • "-agentpath:"

次に、自身が仮想環境またはサンドボックス環境で開かれているかどうかを検出しようと試みます。そのいずれかで開かれている場合は、セキュリティ担当者のマシンで開かれている可能性が高くなります。

そのために、まず以下のディレクトリがあるかどうかをチェックします。

  • "%ProgramFiles(X86)%\VMware\VMware Tools"
  • "%ProgramFiles(X86)%\Oracle\VirtualBox Guest Additions"

また、マシンのMACアドレスを取得して、ファイルが仮想マシンで開かれている可能性を示す以下のプレフィックスの有無をチェックします。

  • "00:05:69"
  • "00:0C:29"
  • "00:1C:14"
  • "00:50:56"
  • "08:00:27"
  • "00:16:3E"
  • "00:1C:42"
  • "0A:00:27"

上記のチェックが終わると、実行中プロセスのリストを取得するために以下のコマンドを実行します。

  • tasklist.exe /fo csv /nh

その後、設定されたリストに照らして以下のプロセスをチェックしているようです。

  • "vboxservice.exe"
  • "vboxtray.exe"
  • "xenservice.exe"
  • "vmtoolsd.exe"
  • "vmwaretray.exe"
  • "vmwareuser.exe"
  • "vgauthservice.exe"
  • "vmacthlp.exe"
  • "vmsrvc.exe"
  • "vmusrvc.exe"
  • "prl_cc.exe"
  • "prl_tools.exe"
  • "qemu-ga.exe"
  • "vmcomputeagent.exe"
  • "sandboxie"
  • "vdagent"
  • "vdservice"
  • "fiddler"
  • "joeboxserver.exe"
  • "joeboxcontrol.exe"
  • "blnsvr.exe"

さらに、以下のファイルの有無もチェックします。

  • "%Windows%\system32\windanr.exe"
  • "%Windows%\system32\drivers\VBoxMouse.sys"
  • "%Windows%\system32\drivers\VBoxGuest.sys"
  • "%Windows%\system32\drivers\VBoxSF.sys"
  • "%Windows%\system32\drivers\VBoxVideo.sys"
  • "%Windows%\system32\vboxdisp.dll"
  • "%Windows%\system32\vboxhook.dll"
  • "%Windows%\system32\vboxmrxnp.dll"
  • "%Windows%\system32\vboxogl.dll"
  • "%Windows%\system32\vboxoglarrayspu.dll"
  • "%Windows%\system32\vboxoglcrutil.dll"
  • "%Windows%\system32\vboxoglerrorspu.dll"
  • "%Windows%\system32\vboxoglfeedbackspu.dll"
  • "%Windows%\system32\vboxoglpackspu.dll"
  • "%Windows%\system32\vboxoglpassthroughspu.dll"
  • "%Windows%\system32\vboxservice.exe"
  • "%Windows%\system32\vboxtray.exe"
  • "%Windows%\system32\VBoxControl.exe"
  • "%Windows%\system32\Drivers\Vmmouse.sys"
  • "%Windows%\system32\Drivers\vm3dgl.dll"
  • "%Windows%\system32\Drivers\vmdum.dll"
  • "%Windows%\system32\Drivers\vm3dver.dll"
  • "%Windows%\system32\Drivers\vmtray.dll"
  • "%Windows%\system32\Drivers\VMToolsHook.dll"
  • "%Windows%\system32\Drivers\vmmousever.dll"
  • "%Windows%\system32\Drivers\vmhgfs.dll"
  • "%Windows%\system32\Drivers\vmGuestLib.dll"
  • "%Windows%\system32\Drivers\VmGuestLibJava.dll"
  • "%Windows%\system32\Driversvmhgfs.dll"
  • "[java.lang.System.getProperty("user.home")]\Desktop\moutonheart.wav"

次に、以下の条件に一致するユーザー名をチェックしているようです。

  • java.lang.System.getProperty("user.name") == "WDAGUtilityAccount"
  • java.lang.System.getProperty("user.name").startsWith("hal-")

その後、以下のコマンドを実行します。

  • reg query "HKU\S-1-5-19"

このコマンドの出力がどのように処理されるかは不明ですが、以下の文字列は、このチェックや他のレジストリチェックに関連しているようです。

  • "HARDWARE\ACPI\DSDT\"
  • "HARDWARE\ACPI\FADT\"
  • "HARDWARE\ACPI\RSDT\"
  • "SOFTWARE\Oracle\"
  • "SYSTEM\ControlSet001\Services\"
  • "SYSTEM\ControlSet001\Services\"
  • "SOFTWARE\Microsoft\Virtual Machine\Guest\"
  • "SOFTWARE\VMware, Inc.\"
  • "SOFTWARE\"
  • "VBOX__"
  • "VBOX__"
  • "VirtualBox Guest Additions"
  • "VBoxGuest"
  • "VBoxMouse"
  • "VBoxService"
  • "VBoxSF"
  • "VBoxVideo"
  • "Parameters"
  • "VMware Tools"
  • "Wine"

これらのチェックで満足のいく結果が出ると、自分自身のコピーを以下のいずれかのファイルとして作成します。

  • "%ProgramData%[INFECTION_ID][INFECTION_ID].jar"
  • "%ALL_USERS_HOME%[INFECTION_ID][INFECTION_ID].jar"
  • "%LOCALAPPDATA%[INFECTION_ID][INFECTION_ID].jar"

その後、ロードポイントとして使用するために以下のいずれかのファイルを作成します。

  • "%HOMEPATH%\Library\LaunchAgents[INFECTION_ID].plist"
  • "%Windows%\System32\Tasks[INFECTION_ID]"

[INFECTION_ID]は以下のように算出されます。

  • hashlib.md5(b"%PROCESSOR_IDENTIFIER%%COMPUTERNAME%[USER_NAME]").hexdigest()

その後、以下のURLへの接続を定期的に試みます。

  • "hxxps://gaymers[.]ax/"
  • "hxxp://[DGA_NAME][.]tk/"

[DGA_NAME]は明らかに以下のメソッドを使って生成されています。

このマルウェアが生成するトラフィックは以下のようなものになります。

サーバー応答は以下のようなものになります。この応答内の一部の文字列は、攻撃者が正規のCloudflareインフラストラクチャを利用して彼らのC&Cインフラストラクチャの一部をホストしている可能性を示唆しています。

上記のサーバー応答の本体は暗号化されたBLOB(Binary Large Object)であり、RSAキーで署名されたURLが格納されています。このBLOBは以下のように復号化して検証することができます。

このマルウェアはその後、復号化したURLとの通信を開始し、まず感染したコンピュータの詳細を送信します。

この要求の本体には、感染したマシンに関する以下の情報が暗号化された形で含まれています。

  • "id"は[INFECTION_ID]
  • "os"はOSのバージョン(たとえば"Windows 10")
  • "pv"は管理者権限で実行する場合の"Admin"
  • "ip"はJARパス名
  • "cn"は"[USER_NAME]@[COMPUTERNAME]"
  • "lr"の値は"00:00:00"
  • "ct"の値は"0"
  • "bv"の値は"v1.0.0"

サーバーからの以下のような応答が観測されています。

応答の本体部分は以下のように復号化できます。

Want to comment on this post?

We encourage you to share your thoughts on your favorite social platform.