サイバースパイグループRancorが新しいカスタムマルウェアで東南アジアへの標的型攻撃を継続

By and

Category: Unit 42

Tags: , , , , , , , ,

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

概要

2018年6月下旬、パロアルトネットワークス脅威インテリジェンス調査チームUnit 42は、それまで知られていなかったサイバースパイグループRancorに関する記事を公開しました。同グループは、2017年から2018年にかけて東南アジアで標的型攻撃を実行しており、最近では2018年12月から2019年1月にかけて、カンボジアの少なくとも1つの政府機関を持続的に標的に攻撃を実行しています。これらの攻撃を調査するなかで、それまで文書化されたことのないカスタムマルウェアファミリが見つかり、私たちはそれをDudellと名付けました。このほか、同グループがDerusbiと呼ばれるマルウェアファミリを使用していることもつきとめました。Derusbiは、中国の特定サイバースパイの小さなサブグループ特有のものと考えられているマルウェアファミリです。

攻撃の詳細

Rancorグループは、2018年12月上旬から2019年1月末にかけ、被害者のシステムにDerusbiまたはKHRatマルウェアをインストールすることを目的とし、少なくとも2ラウンド分の攻撃を実行していました。2019年1月の攻撃では、149.28.156[.]61を経由してDerusbiまたはKHRatサンプルのいずれかを配信し、この際のC2としてcswksfwq.kfesv[.]xyzまたはconnect.bafunpda[.]xyzのいずれかを利用していました。

マルウェアの概要

DUDELL

SHA256値 0d61d9baab9927bb484f3e60384fdb6a3709ca74bc6175ab16b220a68f2b349e
ファイルタイプ Microsoft Excel 97 – 2003 文書
ファイル名 Equipment Purchase List 2018-2020(Final).xls

表1 DUDELLファイルのプロパティ

DUDELLサンプルは悪意のあるマクロを含む兵器化されたMicrosoft Excelドキュメントで、これが被害端末上で実行されます。同サンプルのとる悪意のある振る舞いは、以前にCheck Pointが『Rancor: The Year of The Phish(SHA-1 c829f5f9ff89210c888c1559bb085ec6e65232de)』で報告した内容と同じでした。ただし、Check Pointブログのサンプルは2018年12月のもので、今回のサンプルは2018年4月のものです。本サンプルには、次のプロパティ(メタデータ)が含まれています。

Codepage 1252
Author MS
Last author MS
Application name Microsoft Excel
Creation time Mon Oct 14 23:33:28 1996
Last Save time Wed Apr 11 02:18:59 2018
Security type 0

表2 DUDELLファイルのプロパティ

ユーザーがこのドキュメントを表示して[コンテンツを有効にする]をクリックすると、ドキュメント内のマクロが実行されます。この時点で同マクロはドキュメントの [Company] プロパティ フィールド以下のデータを見つけて実行します。[Company] フィールド以下のデータは次のとおりです。

表3 [Company] フィールドのデータ

Rancorグループは、上記の表5に記載されている199.247.6[.]253のC2サーバーを使用していることが知られています。このスクリプトは、Microsoftのmsiexecツール経由で第2段階のペイロードをダウンロードします。残念ながら、同スクリプトの発見時には、すでにここにホスティングされていたファイルは利用できなくなっていました。私たちのシステムはtmp.vbsというファイルハッシュの記録には成功していましたがこのファイルの内容は今となってはわかりません。ハッシュ値については以下の表5を参照してください。ファイル名とディレクトリをもとにさらに探索を続けたところ、Rancorのアクターが使用する同様のVBSスクリプトが見つかりました。このファイルからtmp.vbsの内容がどのようなものであったかについて類推できるかもしれません。そのファイル office.vbs (SHA256: 4b0b319b58c2c0980390e24379a2e2a0a1e1a91d17a9d3e26be6f4a39a7afad2) は、c:\Windows\System32\spool\drivers\color ディレクトリ以下で見つかりました。内容は次のとおりです。

表4 office.vbsの内容

SHA256値 b958e481c90939962081b9fb85451a2fb28f705d5b5060f5d9d5aebfb390f832

表5 tmp.vbsのハッシュ値

仮に tmp.vbs というこのファイルがこの office.vbs と似たものであるとすれば、感染システムにさらにペイロードをダウンロードする攻撃の一部を担うものだったと考えられます。

DDKONGプラグイン

SHA256値 0EB1D6541688B5C87F620E76219EC5DB8A6F05732E028A9EC36195D7B4F5E707
コンパイルされた日時 2017-02-17 08:33:45 AM
ファイルタイプ PE32 executable (DLL) Intel 80386, for MS Windows
ファイル名 History.nls

表6 DDKONGプラグインのプロパティ

同マルウェアは、以下のエクスポートエントリ1つだけで構成されています。

  • DllInstall

ただロードしただけでは何も起こらないことから、DllInstallエクスポート関数がこのマルウェアの中核となる動作を担うものです。同関数は、呼び出されるとHello Google!というキャプションが付いた非表示ウィンドウとGoogleというクラス名をチェックします(下図1参照)。このチェックは、マルウェアインスタンスが1度に1つだけ実行されていることを確認する目的で実行されています。

図1 DDKONGプラグインの非表示ウィンドウのプロパティ

マルウェアが作成するこの非表示ウィンドウは、ユーザーによる入力(キーボードやマウスの操作)をフィルタリングします。通常、サンドボックス環境ではマウスやキーボードの操作が起こらないため、フィルタリングはサンドボックス分析の回避を狙ったものかもしれません。次にマルウェアは設定されたリモートサーバーcswksfwq.kfesv[.]xyzのTCPポート8080にビーコンを送信します。リモートサーバーとの接続に成功すると、マルウェアは、ホスト名、IPアドレス、ランゲージパックなど、被害者の情報を他のオペレーティングシステム情報とともに送信します。このとき送信されるデータはXORでエンコードされています。マルウェアは次の機能をサポートしています。

  • 特定プロセスの終了
  • プロセスの列挙
  • ファイルのアップロード
  • ファイルのダウンロード
  • ファイルの削除
  • フォルダ内容の一覧表示
  • ストレージボリュームの列挙
  • コマンド実行
  • リバースシェル
  • スクリーンショット撮影

KHRAT

SHA256値 aaebf987b8d80d71313c3c0f2c16d60874ffecbdda3bb6b44d6cba6d38031609
コンパイルされた日時 2018-05-02 05:22:23 PM
ファイルタイプ PE32 executable (DLL) Intel 80386, for MS Windows
ファイル名 8081.dll

表7. KHRATのプロパティ

同マルウェアは、以下のエクスポートエントリ1つだけで構成されています。

  • Rmcmd

このDLLは初回ロード時に必要な追加モジュール(DLL)を解決しインポートします。ロード後にrmcmdのエクスポートエントリが呼び出されると、gkdflbmdfkという名前のWindowsミューテックスが作成されます。これにより、マルウェアのコピーは同時に1つだけ実行されていることが保証されます。次にマルウェアは設定されたドメインconnect.bafunpda[.]xyzのTCPポート8081宛にビーコンを送信します。このマルウェアはホストからホスト名などのデータを収集し、XORエンコードして送信します。ネットワークトラフィックの最初のバイトがそのキーです。マルウェアは次の機能をサポートしています。

  • リバースシェル

このマルウェアの振る舞いとコードには、2018年5月の古いKHRATサンプルとの共通点が見られます。このサンプル (SHA256: bc1c3e754be9f2175b718aba62174a550cdc3d98ab9c36671a58073140381659) は、同じエクスポートエントリ名を持っており、こちらもやはりリバースシェルです。新しいサンプルは、もとになったリバースシェルとしての動作はそのままに、最適化を図って書き直したもののようです。

Derusbi

SHA256値 83d1d181a6d583bca2f03c3c4e517757a766da5f4c1299fbbe514b3e2abd9e0d
コンパイルされた日時 2012-09-14 09:20:12 AM
ファイルタイプ PE32 executable (DLL) Intel 80386, for MS Windows
ファイル名 32.dll

表8. Derusbiのプロパティ

Derusbiは、Rancorグループを含む少数の特定攻撃グループが使用していると考えられているバックドア型トロイの木馬です。この特定のサンプルは、暗号化された特定機能用ペイロードをロードするローダーです。このDLLは、埋め込みペイロード解読用にコマンドラインに指定する32バイトのキーを含むロード対象実行可能ファイルを必要としますが、残念ながらこのペイロードは入手できていません。これら復号キーやローダーは入手できなかったものの、興味深いアーティファクトはいくつか見つかりました。

  • サンプルをロードするモジュール名がmyapp.exeならモジュールを終了する
  • ロードされたら6秒間スリープする
  • \\.\pipe\_kernel32.dll.ntdll.dll.user32.dllという名前のWindowsパイプを探す
  • \Device\acpi_010221という名前のWindowsデバイスを探す
  • 次のレジストリキーを作成する
    • HKEY_CLASSES_ROOT\CDO.SS_NNTPOnPostEarlySink.2
    • IDX、Verという2つのDWORD値
      • 暗号化データをこれらのキーに保存する
  • 埋め込まれたペイロードを復号する暗号化ルーチンはMS_ENH_RSA_AES_PROV

RancorのVBScript

2019年7月、私たちはRancorグループに関連付けられるChrome.vbs(SHA256:0C3D4DFA566F3064A8A408D3E1097C454662860BCACFB6675D2B72739CE449C2)という名前の興味深いVBScriptを発見しました。この特定VBScriptのペイロードは、bafunpda[.]xyzというドメインへビーコンを送信します。このドメインは、上記表2に記載したトロイの木馬KHRATでも使用されています。このVBScriptは難読化されており、一連の永続的アーティファクトを使ってターゲットを感染させるためのパックされたデータが含まれています。VBScriptが実行されたときの振る舞いを次の図に示します。

図2 VBScriptの実行フロー

図2は、VBScriptがホストで実行されたさいのフローを視覚的に表現したもので、スクリプトは次のアクションを実行します。

  1. regsvr32.exe を%windir%\syswow64から%windir%\spoolsw.exeという名前でコピーする
  2. vdfjgklffsdfmv.txtという名前のテキストファイルをホストの%TMP%フォルダに作成する。このファイルはテキストファイルではなくWindows Management Object ファイル(MOF)
  3. Windows mofcomp.exeを実行し、それに上記で作成されたMOFファイルを渡す
  4. classes、mediaという2つのレジストリキーにデータを追加する。データはデフォルトのキーに保存される
  5. 上記で作成したレジストリキーclassesからデータのblobを読み取り、データをファイル%windir%\pla.datに保存する

VBScriptによって作成されたMOFファイルは、Windows Management Instrumentation(WMI)イベントサブスクリプションを介した永続化メカニズムとして使用されます。MOFファイルはCommon Information Model(CIM)クラスを記述したコンパイル済みスクリプトで、これがWMIリポジトリへとコンパイルされます。この手法はMITRE ATT&CK IDT1084で説明されています。この特定MOFファイルは、5秒ごとにトリガーされるタイマーイベントを作成します。MOFファイルのスニペットは次の図3のとおりです。

図3 MOFファイルのスニペット

図3は、MOFファイルの主な機能を示したものです。MOFファイルは「SCM Event Log Filter」という一意な名前を持ち、/s /n /i というパラメータを指定し、ファイルpla.datを渡してspoolsw.exeを5秒ごとに実行します。先のVBScriptのフローでも説明したとおり、spoolsw.exeは実際にはホストのWindowsシステムのregsvr32.exeです。regsvr32.exeは、モジュール(DLL)を登録するWindowsツールで、このツールにパラメーター「メッセージボックスを表示しないこと(/s)」、「DllRegisterServerやDllUnregisterServer を呼び出さないこと(/ n)」、「DllInstall を呼び出すこと(/i)」を渡してregsvr32に指示しています。したがってファイルpla.datはDLLであるはずです。

VBScriptによって作成されるレジストリ値は次のとおりです。

  1. HKEY_CURRENT_USER\Software\Classes
    • これにはDLLのx86コードが含まれています。0x4の最初のバイトが欠けていますが、これはファイルpla.datの作成時にVBScriptによって追加されます。

HKEY_CURRENT_USER\Software\Classesの埋め込みレジストリデータのファイルプロパティ

SHA256値 DB982B256843D8B6429AF24F766636BB0BF781B471922902D8DCF08D0C58511E
コンパイルされた日時 2018-04-24 10:51:14 PM
ファイルタイプ PE32 executable (DLL) Intel 80386, for MS Windows
Export Table DllInstall

表9 Reg Classesの埋め込みデータプロパティ

このレジストリキーに埋め込まれたDLLは、レジストリHKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mediaからコードをロードする単純なローダーです。

  1. HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Media
    • DLLのx86コードとシェルコードが含まれています。レジストリに保存されたデータは、0x9CのXORキーでエンコードされています。
SHA256値 CC081FFEA6F4769733AF9D0BAE0308CA0AE63667FA225E7965DF0884E96E2D2A
コンパイルされた日時 2018-01-10 09:16:42 PM
ファイルタイプ PE32 executable (DLL) Intel 80386, for MS Windows

表10 デコードされたmedia のDLLデータのプロパティ

mediaレジストリキーのDLLは、トロイの木馬KHRATの亜種です。この亜種はドメインconnect.bafunpda[.]xyz にビーコンを送信し、TCPポート4433への接続を試行します。これは、上記表2に記載したトロイの木馬KHRATが使用するドメインと同じもので、その振る舞いも同じです。

結論

遅くとも2017年には活動を開始していたサイバースパイグループRancorは、東南アジアで標的型攻撃を継続しています。同グループは、文書化されたことのないカスタムマルウェアファミリDudell を使用して悪意のあるマクロを実行後、第2ステージのペイロードをダウンロードしていることが確認されています。 このほか同グループは、標的環境への侵入後、Derusbiというマルウェアファミリを使って2段階目のペイロードをロードしていることも確認されています。

パロアルトネットワークス製品をご利用中のお客様は、同脅威から保護されています。弊社の Threat Prevention プラットフォームでは、 Wildfire がこれらマルウェアファミリを検出します。この検出と並行し、侵害が確認されたドメインはPAN-DBのURLフィルタリングソリューション 内で「malware」に分類が更新されます。AutoFocus をお使いのお客様は、当該攻撃者グループを次のタグでさらに詳しく調査できます。

IOC

SHA256:

  • 0EB1D6541688B5C87F620E76219EC5DB8A6F05732E028A9EC36195D7B4F5E707
  • AAEBF987B8D80D71313C3C0F2C16D60874FFECBDDA3BB6B44D6CBA6D38031609
  • 0D61D9BAAB9927BB484F3E60384FDB6A3709CA74BC6175AB16B220A68F2B349E
  • DB982B256843D8B6429AF24F766636BB0BF781B471922902D8DCF08D0C58511E
  • CC081FFEA6F4769733AF9D0BAE0308CA0AE63667FA225E7965DF0884E96E2D2A
  • BC1C3E754BE9F2175B718ABA62174A550CDC3D98AB9C36671A58073140381659
  • 83d1d181a6d583bca2f03c3c4e517757a766da5f4c1299fbbe514b3e2abd9e0d

C2サーバー

  • cswksfwq.kfesv[.]xyz
  • Connect.bafunpda[.]xyz
  • 199.247.6[.]253