悪魔をテーマに使うMaaS(サービスとしてのマルウェア)Matanbuchusの概要

By and

Category: Malware, Unit 42

Tags: , ,

A conceptual image representing adversaries and their tactics, such as the Matanbuchus malware-as-a-service described here.

This post is also available in: English (英語)

概要

Unit 42のリサーチャーはいわゆる非伝統的な情報源の調査に時間を割くことがあります。非伝統的な情報源には、Torネットワーク上のフォーラムからTelegramチャンネルやその他のマーケットプレイスに至るまでのアンダーグラウンドマーケットやサイトが含まれます。私たちが調査したそのような事例のなかに、複数のアンダーグラウンドフォーラムやマーケットプレイスでメンバーとなっているBelialDemonという脅威アクターの関わっているものがありました。

2021年2月、このBelialDemonは「Matanbuchus Loader」という新しいMaaS(マルウェア・アズ・ア・サービス、サービスとしてのマルウェア)の広告を出し、初期レンタル価格を2,500ドルとしていました。マルウェアローダとは通常、コマンド&コントロール(C2)インフラから第2段階のマルウェアをドロップまたはプルダウンする悪意のあるソフトウェアを指します。Matanbuchusには次のような機能があります。

  • メモリ内で.exeまたは.dllファイルを起動する機能。
  • schtasks.exeを活用してタスクスケジュールを追加・変更する機能。
  • カスタムPowerShellコマンドを起動する機能。
  • 攻撃者が他の方法ではDLLをロードできない場合にスタンドアロン実行ファイルを活用する機能。

Matanbuchusの影響を受けている組織としては、アメリカの大規模な大学や高校、ベルギーのハイテク企業などが複数確認されています。

BelialDemonというユーザーによる著名アンダーグラウンドフォーラムでのアクティビティを観測した結果、彼らが特定の聖書的テーマにこだわっているということがわかりました。Belialという名前やMatanbuchusという新しいローダ名はイザヤ2章4節の「イザヤの昇天」に由来しています。「And Manasseh turned aside his heart to serve Belial; for the angel of lawlessness, who is the ruler of this world, is Belial, whose name is Matanbuchus.(マナセは心をそむけベリアルに仕えた。ベリアルまたの名をマタンバクスは世界を統べる王にして無法の天使だからだ)」。彼らのアクティビティにふさわしいモチーフといえます。

本稿ではMatanbuchus、BelialDemon、そしてマルウェアのインフラについて紹介します。

BelialDemonの概要

それまでのBelialDemonはマルウェアローダの開発に関わっていました。BelialDemonは、以前いくつかのフォーラムで投稿されていたローダ、TriumphLoaderの主要開発者と目されていて、この手のマルウェアの販売実績があります。

図1 BelialDemonがローダを紹介するフォーラムの投稿
図1 BelialDemonがローダを紹介するフォーラムの投稿

私たちは、図1のような投稿を調べてさまざまな方法でファイルを探し出すことにより、マルウェアのもつ機能をより深く理解し、実際に行われているアクティビティを分析したり、より良い保護やインテリジェンスの拡充につなげています。BelialDemonはMaaSの一環として3人の人材を募集し、初期レンタル価格を2,500ドルとしていました。

図2 Matanbuchus販売のためのフォーラム投稿
図2 Matanbuchus販売のためのフォーラム投稿

ソースから直接マルウェア名を得ていたので今度は実地で使用されているMatanbuchusのサンプルを探しました。Matanbuchusのサンプルを探していると、ddg.dllというファイルが実際に利用されていることがわかりました。このファイルは、hxxp://idea-secure-login[.]com経由で活発にドロップされていました。そこに含まれている文字列の一部を見て、この方向で調査を進めて間違いなさそうという感触を得ました。

図3 MatanbuchusDroper.dllを示す文字列
図3 MatanbuchusDroper.dllを示す文字列

マルウェアの作者が述べているように、このローダには以下のような特徴があります。

  • メモリ内で.exeまたは.dllファイルを起動する機能。
  • schtasks.exeを活用してタスクスケジュールを追加・変更する機能。
  • カスタムPowerShellコマンドを起動する機能。
  • 攻撃者が他の方法ではDLLをロードできない場合にスタンドアロン実行ファイルを活用する機能。

そこで疑問になるのが、「実際に出回っているのはどのようなものか」ということです。

Excel Dropper

Microsoft Excel文書SHA256値: 41727fc99b9d99abd7183f6eec9052f86de076c04056e224ac366762c361afda)がMatanbuchus Loader DLLをドロップする攻撃の初期ベクトルであることが特定できたので、このファイルについて分析を開始しました。このファイルを開くと文書の実際の内容を表示するにはマクロを有効にする必要があるという通知が表示されます。

図4 偽のExcel警告画像
図4 偽のExcel警告画像

このファイルには、ここ最近、Microsoft Office文書を利用した攻撃で好まれている手法が使われています。とくに、被害システム上で悪意のあるペイロードを起動しようとする場合にはMicrosoft WordからMicrosoft Excelへの移行が見られます。Excelの組み込み関数を利用すればスプレッドシートのセル内にコードを分散して格納できるので、しぜんと解析や検出がしにくいよう難読化できることがその理由です。これは俗に「Excel4.0マクロ」と呼ばれています。

図5 隠れワークシート関数
図5 隠れワークシート関数

データを含むセルは空白セルの海に埋もれていて、実行されると情報がつなぎ合わされます。上の例では、B列の可視セルの一部がシート全体から列や行を参照していることがわかります。

図6 Excel関数の例
図6 Excel関数の例

このGOTO関数は、数百列先、1,595行下の特定セルを選択するようExcelに指示しています。これらのアクションがつなぎ合わされることで、この文書内で当該ファイルの単純なダウンロードと実行が行われています。

文書内の空白セルを削除して結果文字列を確認すると、WildFireのマルウェア解析エンジンが観測した当該ファイルのものと合致する興味深い振る舞いが多数確認できます。

図7 Excel V4でマクロの文字列を抽出
図7 Excel V4でマクロの文字列を抽出

これを額面通りに受け取ると、ある場所にファイルをダウンロードして実行するための機能が分割されていることがわかります。ここではddg.dllide-secure-login[.]comからダウンロードされ、hcRlCTg.dllという名前でローカルに保存されます。そしてこのDLL内のエクスポートRunDLL32_Install_COM32が実行されます。

前述の通りこの振る舞いはWildFireでの観測から予想した内容と合致しています。

図8 WildFireがログに記録したアクティビティ
図8 WildFireがログに記録したアクティビティ

ここでのDLLはMatanbuchus Loader DLLファイルを指しています。

Matanbuchusの概要

以下ではまずマルウェアMatanbuchusについて簡単におさらいしてから使用されたインフラについて見ていきます。

全体としてMatanbuchusはマルウェアランサイクル中にDLLを2つ使用します。これらのDLLは両方ともパックされてはいますが、1つめのDLLは内部名がMatanbuchusDroper.dllで、2つめのDLL名がMatanbuchus.dllであるという点にご注意ください。あまりステルス性の高いやり方とはいいがたいですが、調査する側にはやりやすいものになっています。さらにこれらDLLは両方とも0x10000000をベースにしており、実行中はハードコードされたアドレスだけをもっぱら使用しています。

Excelが最初のDLLであるMatanbuchusDroper.dll(SHA256値: 7fbaf7420943d4aa327bb82a357cd31ca92c7c83277f73a195d45bd18365cfce)をidea-secure-login[.]comのサイトからダウンロードすると、このExcelマクロが起動してRunDLL32_Install_COM32というラベルのついたDLL内のエクスポートを呼び出します。

この1つめのDLLの主な機能は、その名前が示すとおりMatanbuchusの主たるDLLをドロップすることです。ただしその前にGetCursorPosIsProcessorFeaturePresentcpuidGetSystemTimeAsFileTimeQueryPerformanceCounterなどの仮想化対策やデバッグ対策のチェックでよく見られるAPIコールを行います。このようにシステムをプロファイリングすることでサンドボックスなどのコントロールされた環境内での実行か否かをマルウェア側で判断する指標を得られます。

図9 IsProcessorFeaturePresentのAPIコール
図9 IsProcessorFeaturePresentのAPIコール
図10 cpuidのAPIコール
図10 cpuidのAPIコール

この後DLLが次の段階へ進むと、AveBelial.xmlというXMLファイルに偽装したメインのMatanbuchus DLLをダウンロードするためのURLをアンパックします。こうしてダウンロードしたファイルはUsersADMINI~1AppData\Local\Temp\Run_32DLL_COM32shell96.dllとして保存されます。ここでshell96という名前を使っているのはネイティブのシステムファイルに紛れ込ませやすいと考えてのことでしょう。実際に存在するならば、shell32、shell64とくれば次はshell96に続くのが命名規則上自然な発想だからです。

図11 Matanbuchus DLLのダウンロード
図11 Matanbuchus DLLのダウンロード
図12 shell96.dllをディスクに書き込む
図12 shell96.dllをディスクに書き込む

新しいDLLを実行するためのスケジュールタスクを作成し、呼び出すべき特定のエクスポートを作成することで、永続性を確保しています。

図13 永続化のためにスケジューリングされたタスク
図13 永続化のためにスケジューリングされたタスク

RunDLL32_Install_COM32Run_32DLL_COM32という一般的なDLLによく見られる単語を使ってDLLエクスポート名を目立たないようにしている点にご注意ください。これは前述のshell96で見たものと似た手口です。

サンプルのMatanbuchus.dll(SHA256値: af356a39a298f6a48f8091afc2f2fc0639338b11813f4bd05aba4e65d2bbe3)は1つめのDLLと似ていて、難読化やエンコーディングを複数利用して文字列や実行コードを静的解析から隠そうとしています。ただし1つめのものとは違い、2つめのものはコードをアンパックした後に手間をかけて関数の利用元となるDLLをさらに隠蔽しようとしていました。図14ではサンプルがShell32.dllという文字列を組み立てていることがわかります。

図14 組み立て
図14 「Shell32.dll」という文字列を組み立てている

文字列デコードの対象となっているDLL名(IPHLPAPI.DLLws2_32.dllwininet.dllshlwapi.dll)を見ると、このことにさほど驚きはありません。これらのDLLは、ファイル書き込みやネットワークベース通信などの振る舞いの前兆となることが多いので、マルウェア解析を行っていればよく目にするものだからです。

最後にこのDLLは、ホスト名、OSの詳細情報、ネットワークアダプタなどのシステム関連のさまざまな情報を収集してからリモートアクセストロイの木馬(RAT)でおなじみのルーチンに移ります。マルウェアはDLLのダウンロード元と同じホスト(eonsabode[.]at)との通信を開始します。次にkntwtopnbt/8r5kudwrc8/gate[.]phpに向けてHTTP POSTリクエストを送信しますが、それにはReferrerが含まれておらず、実際のUser-Agentの代わりにデータを含むUser-Agentフィールドを使用していることから目につきやすく、検出は容易です。

図15 ネットワークトラフィックのHTTP POST
図15 ネットワークトラフィックのHTTP POSTリクエスト

このリクエストはBase64でエンコードされたJSON配列で、このなかにさらにエンコードされたデータが含まれています。ここにはホストのプロファイリング情報が含まれている可能性が高いと考えられます。

図16 Base64デコードされたC2トラフィック
図16 Base64デコードされたC2トラフィック

インフラの概要

最終的なMatanbuchus DLLの出どころとなっていたドメイン(eonsabode[.]at)に目を移すとこれはGoogleネットワーク内のIPアドレスに解決していて、2021年2月初旬以降、解決先IPアドレスが多数存在していることがわかります。この時期はBelialDemonが新種マルウェアを広告していたのを私たちが確認した時期と一致しています。さらにExcel v4マクロが最初のMatanbuchus DLLをダウンロードするためにアクセスする最初のドメイン(idea-secure-login[.]com)も、これら同じIPアドレスにホストされています。

図17 eonsabode[.]atのDNS名前解決
図17 eonsabode[.]atのDNS名前解決
個々のIPアドレスとその過去の名前解決を見てみると、それぞれのIPアドレスに存在するドメインに複数のパターンが現れてきます。このパターンで悪意のあるアクティビティをさらにグループ化できます。

たとえば次の3つの最新IPアドレスとその名前解決のサブセットを取り上げてみます。

34.94.151[.]129

34.94.151[.]129関連の名前解決

34.106.243[.]174

34.106.243[...]174関連の名前解決

34.105.89[.]82

34.105.89[...]82関連の名前解決

さっと目につくパターンとしては、オーストリアのccTLD「at」で登録されたドメインを使っていること、ドメイン名に「24」という単語を使っていること、「login」、「online」、「sso」、「secure」などの単語を使っていることが挙げられます。これらは、BelialDemonがこれまでに行ってきた「良い単語」を使うことで目立たないようにする試みと同じです。

そこで、2021年2月以降悪意のあるオリジナルドメインが解決した各IPについてパッシブDNSの名前解決をすべて調べてみました。複数のコネクションを持つドメインに着目すると、関連性のあるドメイン同士がきれいにグループ化されたグラフができあがりました。

図18 IPとドメインのコネクションマップ
図18 IPとドメインのコネクションマップ。オレンジはIPv4アドレス、紺色はドメイン。

このドメインのサブセットにはドメイン名のさまざまな側面にもとづくクラスタが多数含まれています。以下ではそれらを個別にクラスタ化しました。

biznesplanetをテーマとしているパターン

biznesplanetをテーマとするパターンを示したドメインのクラスタ

「24」が使用されているパターン

「24」が使用されているパターンを示したドメインのクラスタ

オーストリアのccTLDが使用されているパターン

オーストリアのccTLDが使用されているパターンを示したドメインのクラスタ

偽のAdobe Flash更新のパターン

偽のAdobe Flash更新のパターンを示したドメインのクラスタ

「Idea」が使用されているパターン

「Idea」が使用されているパターンを示したドメインのクラスタ

「Wallet」をテーマにした、おそらくは暗号通貨関連と思われるパターン

「Wallet」をテーマとするパターンを示したドメインのクラスタ

これらのドメインやテーマは、主にフィッシングを目的としているようです。これらのドメインすべてがマルウェア「Matanbuchus」に関連しているわけではありませんが、いずれにせよ悪意のあるもので、同一主体による運営の可能性も高いと考えられます。たとえば「Fake Flash Updates(偽のFlash更新)」は、Malware Hunter TeamがTwitterで指摘しているとおり、悪意のあるAPKファイルと関連しており、この説をさらに裏付けています。これらのドメインの中には、将来の攻撃キャンペーンのためにステージングしてあり、まだ利用されていないものが含まれている可能性もあります。

結論

本稿では実地の観測による脅威ハンティングにより、私たちがどのように脅威インテリジェンスを生成しているかについてご紹介しました。こうした調査を通じて一見バラバラに見える小さなデータをつなぎ合わせ、私たちは分析の強化や指標の導出、防御力の向上に役立てています。これにより、影響を受ける前に組織を保護することができます。

パロアルトネットワークス製品をご利用中のお客様は同脅威から保護されています。

  • WildFire: 既知のサンプルはすべてマルウェアとして識別されます。
  • Cortex XDR:
    • Matanbuchusのインジケータを含みます。
  • 次世代ファイアウォール: DNSシグネチャが既知のコマンド&コントロール(C2)ドメインを検出し、 Advanced URL Filteringで同ドメインをマルウェアとして分類します。
  • AutoFocus: 関連アクティビティをMatanbuchusタグで追跡します。

IoC

項目
Excel Dropper SHA256ハッシュ値 41727fc99b9d99abd7183f6eec9052f86de076c04056e224ac366762c361afda
Matanbuchus Loader SHA256ハッシュ値 7fbaf7420943d4aa327bb82a357cd31ca92c7c83277f73a195d45bd18365cfce
Matanbuchus Main SHA256ハッシュ値 af356a39a298f6a48f8091afc2f2fc0639338b11813f4f4bd05aba4e65d2bbe3
Matanbuchus Loaderドメイン idea-secure-login[.]com
Matanbuchus Loader URL idea-secure-login[.]com/3/ddg.dll
Matanbuchus Main ドメイン eonsabode[.]at
Matanbuchus Main URL eonsabode[.]at/kntwtopnbt/iqiw922vv5/AveBelial.xml
Matanbuchus Loaderのファイル名 ddg.dll
Matanbuchus Loaderのファイル名 hcRlcTg.dll
Matanbuchus Main ファイル名 shell96.dll
Matanbuchus Loader エクスポート RunDLL32_Install_COM32
Matanbuchus Main エクスポート Run_32DLL_COM32
Matanbuchus Loader コマンドライン schtasks.exe /Create /SC MINUTE /MO 2 /TN Run_32DLL_COM32 /TR "C:\Windows\System32\rundll32.exe C:\Users\Admin\AppData\Local\Temp\Run_32DLL_COM32\shell96.dll,Run_32DLL_COM32"
Matanbuchus Main ファイルパス C:\Users\Admin\AppData\Local\Temp\Run_32DLL_COM32\
このほかの悪意のあるドメイン biznesplanet-bnpparlba[.]com

biznesplanet-parlbabnp[.]com

biznesplanet-parlbas[.]com

biznesplanet.parlbabnp[.]com

login-biznesplanet[.]com

bos24-logowan[.]com

bos24-logowanie[.]com

bos24-online[.]com

ibos-online24[.]com

ibos24-login[.]com

ibos24-online[.]com

login-bos24[.]com

citationsherbe[.]at

flowsrectifie[.]at

odatingactualiz[.]at

flash-player-update[.]digital

flash-update[.]digital

flashplayer-update[.]digital

flashupdate[.]digital

player-update[.]digital

playerupdate[.]digital

upgrade-flash-player[.]digital

sso-cloud-idea[.]com

dostawapapajohns[.]online

onlinepapajohns[.]online

papa-johns-dostawa[.]digital

papa-johns-dostawa[.]online

login.wallet-secure[.]org

wallet-secure[.]biz

wallet-secure[.]me

wallet-secure[.]org

wallet-secure[.]site

wallet-secure[.]xyz