ナビゲーションをスキップする
BlackBerry ブログ

検知の難しい BHunt Scavenger:仮想通貨の暗号ウォレットを窃取

本ブログ記事は、2022年2月10日に米国で公開されたBlackBerryのブログ記事の抄訳版です。原文はこちらからご覧頂けます。

 

仮想通貨の急速な普及によって、マルウェア作成者に稼ぎ時の心理が生まれています。支払い形態としての仮想通貨はランサムウェアビジネスのバックボーンとなっていますが、犯罪者の中には、被害者の暗号ウォレットの中身を窃取するという、より直接的な手口をとる者もいます。その目的のために、BHunt は被害者の仮想通貨へのアクセスを求めてシステムをあさると同時に、システム上でのその活動を隠匿し、さまざまな方法で解析を遅らせようとします。

BHunt の主目的は被害者の暗号ウォレットを収集することにあります。また、このプロセスでブラウザーのパスワードも窃取しようとします。これは、オンライン仮想通貨アカウントへのログイン認証情報を、ブラウザーから入手することを目的としていると考えられます。金銭の入手源となるオンラインバンキングのアカウントとソーシャルメディアのアカウントもねらわれます。以下で説明する一定の状況下で、BHunt は被害者のデバイスに仮想通貨マイニング機能をデプロイしたり、セキュリティパスフレーズをねらって被害者のクリップボードを監視したりもします。

この脅威は、市販のバイナリパッカーでファイルを難読化して、脅威の機能を複数のファイルにわたって分割することにより、解析を遅らせようとします。BHunt は、不正な目的で正規のツールを活用することで、さらに踏み込んだ脅威の手順を実行します。

このブログでは、BHunt の内部動作を詳しく調べ、目的達成のために BHunt がどのように作成されているかを示します。

 

 

オペレーティングシステム

リスクと影響

技術的解析

BHunt は昨年の暮れに Bitdefender によって初めて発見されました。Bitdefender による報告では、鍵管理サービス(KMS)のクラッキングユーティリティにパッケージ化されていたと考えられるドロッパーによって感染が始まっています。これらのクラッキングユーティリティは、Microsoft® の KMS を迂回するために広く使用されているツールで、Windows® 10 などの Microsoft® 製品を違法にアクティブ化します。

このドロッパーは C:\\Windows\System32 に "msn.exe" または "msh.exe" として書き込まれ、被害者のシステムディレクトリに存在することを想定した Microsoft ファイルに偽装されます。この脅威アクターは、このサンプルを VMProtect にパッケージ化してサンプルの内容を隠匿するほか、"Piriform Ltd" の証明書を埋め込んで正規のファイルに見えるようにします。Piriform Software Ltd. は、広く使用されている PC 最適化ツール "CCleaner" の開発元で、2017 年にセキュリティ企業 Avast に買収されています。

当社の詳しい検査では、以下に示すこの証明書がバイナリの実際の内容と一致しないことがわかり、図 1 のように、無効な証明書であることを確認しています。

図 1 - 無効であることが確認された Piriform の証明書

次に、このドロッパーによって、そのコアファイルが AppData\Roaming\mscrlib.exe に書き込まれます。このコアファイルは、名前を BHunt として、難読化した .NET 実行可能ファイルです。図 2 のように、BHunt は、複数の関数とモジュールで構成されています。

図 2 - BHunt のモジュール関数

各モジュールの目的は次のとおりです。

Log

標的としたマシン上に存在するさまざまな暗号ウォレットに関する情報をコマンドアンドコントロール(C2)サーバーに報告するための初期調査が Log 関数によって実行されます。Atomic、Bitcoin、Electrum、Ethereum、Exodus、Jaxx、Litecoin などの仮想通貨のウォレットがあるかどうかが確認されます。また、クリップボードに文字列を保存してそれを取得する操作を試すことで、BHunt にユーザーのクリップボードへのアクセス権があるかどうかも確認されます。

Blackjack

Blackjack 関数によってウォレットのファイルが窃取されます。Log 関数は特定の暗号ウォレットが存在することを報告しますが、Blackjack はユーザーの %AppData% フォルダで "wallet.dat" ファイルを探します。この名前のファイルが見つかると、その内容と場所の両方が BHunt の C2 に送信されます。

このマルウェアの作者は、これと異なるウォレット命名規則が Exodus で使用されていることを考慮し、%AppData%\Exodus\exodus.wallet フォルダも検索されるようにしています。この場合も、そのようなファイルがあれば、その内容と場所の両方が C2 に送信されます。

図 3 - Blackjack の元のコード

BHunt の最新のバージョンでは、Blackjack 関数が特化性を深めた機能に更新されています。具体的には、%AppData%\Exodus\exodus.wallet\seed.seco ファイルのみを検索することで、C2 に送信するファイルの量が削減されています。

%AppData%\Electrum\wallets フォルダを検索するコードも追加され、このフォルダにあるすべてのファイルが送信されるようになっています。

図 4 - Blackjack の更新済みコード

Sweet_Bonanza

Sweet_Bonanza 関数によって、被害者のブラウザーからパスワードの窃取が試みられます。まず、この関数のリソースから名前が "bonanza" のバイナリが抽出され、%AppData%\bonanza.exe に書き込まれます。

つづいて、このファイルが次のコマンドラインで実行されます。

“%AppData%\\bonanza.exe /stext %AppData%\\bonanza”

他のステージで使用されるバイナリ同様、このバイナリも圧縮されています。このバイナリを実行してみると、このファイルが NirSoft の WebBrowserPassView ツールであることがわかります。同社のウェブサイトによれば、"/stext" コマンドを使用することで "パスワードのリストが通常のテキストファイルに保存" されます。

このファイルを実行すると、その出力が C2 に送信されます。

Golden7

Golden7 は、Firefox のすべてのプロファイルデータを検索して文字列 "accountToken" を探すことから活動を開始します。この文字列を収めたファイルが見つかると、それに関連する SQLITE データベースファイルが探し出されます。多くの場合、Firefox では、これらのファイルへのハンドルを開いたままにして、これらのファイルが削除されないようにしています。このマルウェアによって、実行中の Firefox のインスタンスがすべて終了し、これらのデータベースファイルが C2 に送信されます。その後、それらのファイルが削除できるようになります。

つづいて、Golden7 によって Google Chrome™ と拡張機能である MetaMask が探し出されます。MetaMask は、ブラウザーに Ethereum ウォレットを統合するために使用するウォレットです。この拡張機能が見つかると、このステージによって Chrome が終了し、拡張子 "ldb"を持つすべてのファイルが拡張フォルダで検索されます。これらのファイルが C2 に送信されると、ローカル側ではこれらのファイルが削除されます。

Chrome または Firefox に対する手順が目的どおりに終了すると、別のリソース "golden7" が "%appdata%\\MS Office.exe" に書き込まれ、自動実行のレジストリキーを使用して永続状態になります。

ドロッパーのステージ同様、このバイナリも難読化されますが、ここではパッカーとして Themida が使用されます。解凍された実行可能ファイルをメモリからダンプしてみると、Golden7 が別の .NET 実行可能ファイルであることがわかります。

このプログラムの機能によって、被害者のクリップボードに語数が 12 または 13 の文字列があるかどうかが定期的に確認されます。この文字列形式は、復元パスフレーズとして暗号ウォレットで広く使用されています。この基準に合致する文字列が見つかると、それが C2 に送信されます。

Chaos_crew

Sweet_Bonanza と Golden7 同様、Chaos_crew 関数もそのリソースからディスクにバイナリを書き込みます。リソース "chaos_crew" が "%AppData%\\Outllook.exe" に書き込まれ、自動実行のレジストリキーを使用して永続状態になります。

Golden7 バイナリ同様、Chaos_crew も Themida で圧縮されています。Golden7 同様の解凍技法を使用すると、これも別の .NET バイナリであることがわかります。Chaos_crew は Golden7 よりもはるかに複雑ですが、わかりやすく説明するために、ここではそのコア機能に注目します。

Chaos_crew によって、2 つの独自の Pastebin リンクにアクセスして暗号データが取得されます。第 1 の暗号化 BLOB は、CPU と GPU に対する設定データであり、このマルウェアによってレジストリに保存されます。第 2 の BLOB は関数 "dwfiles" で使用されます。この関数によってファイルがダウンロードされ、"%AppData%\Scype" フォルダに置かれます。

この関数の実行後、Chaos_crew によって以下の各プロセスの作成が試みられます。

  • “%AppData%\Scype\svx.exe”
  • “%AppData%\Scype\a\svc.exe”

この時点でこれらの Pastebin はもうホストされていないので、どのようなデータがダウンロードされたかを正確に知ることはできなくなっています。VirusTotal での検索により、このデータとして、名前が AppData%\scype\a\svc.exe のファイルがこれまでに見つかっています。

詳しい調査により、このファイルが、高性能の仮想通貨マイニング機能 XMRig であることがわかっています。このことは、CPU と GPU の設定データに関する当社の初期の所見と整合しています。Chaos_crew には、別の関数として、GPU のタイプを問い合わせる "vidcheck" も含まれていますが、この点によっても当社の所見が確かなものになります。被害者のシステムが仮想通貨マイニング機能のインストールに適しているかどうかの評価が、Chaos_crew の機能的な目的であることがわかります。

Copier

当社の調査では、同じマルウェアキャンペーンの一環と考えられる独特の .NET バイナリも見つかっています。このバイナリの役割は、%AppData%\Scype\a\svx.exe ファイルがあれば、それを %AppData%\Scype\a\svc.exe にコピーすることだけです。

Chaos_crew で参照されているパスは %AppData%\Scype\svx.exe(このパスには "a" ディレクトリがありません)であることから、このマルウェアの作者がこの Copier バイナリで何を実現しようとしていたかははっきりしません。

図 5 - Copier の唯一の機能

 

まとめ

ディスクに複数のファイルを配置する BHunt の戦略は、検知されるリスクをその数々のコンポーネントに分散するための手の込んだ方法です。また、NirSoft の WebBrowserPassView といった正規ツールを使用することにより、被害者のシステム上でマルウェアのこれらのコンポーネントを検知することを一層困難にしています。セキュリティ製品は、正規のバイナリが使用されているコンテキストを判別する必要がありますが、従来のアンチウイルスソフトウェアではこれが容易ではありません。

仮想通貨が普及し続けるに伴い、脅威アクターは、セキュリティ担当者に用心させながらも、絶えず複雑さと秘匿性を深める仮想通貨窃取手段を使用して、この金銭的誘因を追求し続けています。

 

YARA ルール

以下の YARA ルールは、この記事で説明した脅威を捕捉するために BlackBerry の Research & Intelligence Team が作成しました。

import "pe"

rule Mal_Infostealer_Win64_BHunt_2022_01_28
{
meta:
        description = "Detects BHunt Malware Infostealer"
        author = "BlackBerry Research & Intelligence Team"
        date = "Jan 28th 2022"
        license = "This Yara rule is provided under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0) and open to any user or organization, as long as you use it under this license and ensure originator credit in any derivative to The BlackBerry Research & Intelligence Team"

strings:
// C2
$s1 = "http://minecraftsquid.hopto.org/ifo.php" wide
// Name of assembly in metadata
$s2 = "BHUNT" wide
// Outlook misspelled in reg key
$s3 = "Outllook" wide

condition:
// MZ Header
uint16(0) == 0x5a4d and
// is a .NET binary
pe.data_directories[pe.IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR].size != 0 and
all of ($s*)
}

 

セキュリティ侵害インジケーター(IOC)

C2
http[://]minecraftsquid[.]hopto[.]org/ifo[.]php

Encrypted Data For Chaos_crew
https[://]pastebin[.]com/raw/EGRcZWCa
https[://]pastebin[.]com/raw/HMaz9edN

BHunt
CFE45218711E6C3B01AC81548F0C96D43CFF41DBFE0FDC29E2CCDCBA61DC1C84
B32C9C13AE27898F77BD6C3484FDE6539DDC142798EB697EF5CBBCBB63A121B3
B1F1D05C13E416402AE7E32ADE9D49F2F058E04CFBF6880BA7719B4383E4AAC5

Bonanza.exe
BE43E2437578E7BE2E2D08E389B9C02394BD66782DC6508302696C68E1BC6AE0

Outllook.exe
5C275655655CC2A1ACC91D8FEC801E4D20EFB717484FF7897EE49BF155EC2141

MS Office.exe
23751B815EFC2330051CC516BAEF1E1AA36C5E9EB8F515229535AC962B7DD0C9

Mrpropper Cleaner
C8BD186C08BDB019CC1F6CF01CB94910082AE02A2A3AD065E90340723E9320FE

XMrig miner believed to be %APPDATA%\scype\a\svc.exe
592F207C7A28AF0C70217B497356C10FE35A8677F68DA60650FDCEEE4D8310BE

Copier
70CC9D323EB0ABE1263B51D44DEEDD6D72EE87863176ED1C67746F35AEB41535


BlackBerry によるサポート

もし BHunt Scavenger のような脅威にさらされているなら、BlackBerry にお任せください。現在 BlackBerry 製品を利用していなくても問題ありません。 BlackBerry のインシデント対応チームは、世界的に活躍するコンサルタントから構成され、ランサムウェアや持続的標的型攻撃(APT)など、さまざまなインシデントへの対応と封じ込めのサービスを専門としています。 弊社はグローバルコンサルティングチームを常に待機させており、ご希望があれば、24 時間サポートと現地支援を提供できます。次の URL からご相談ください。 https://www.blackberry.com/ja/jp/forms/enterprise/contact-us

 

 

・お問い合わせ:https://www.blackberry.com/ja/jp/forms/enterprise/contact-us

・イベント/セミナー情報:https://www.blackberry.com/ja/jp/events/jp-events-tradeshows

・BlackBerry Japan:https://www.blackberry.com/ja/jp

The BlackBerry Research and Intelligence Team

About The BlackBerry Research and Intelligence Team

BlackBerry の Research and Intelligence Team は、新たに生じている脅威と持続的な脅威を検証し、セキュリティ担当者とその所属企業のために、インテリジェンス解析を提供しています。