Google Driveを介して 9002 トロイの木馬を配信する攻撃

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

概要

最近Unit 42は短縮URLとGoogle Driveが提供する共有ファイルとの組み合わせの利用によって9002トロイの木馬が配信されていることに気付きました。この配信手法では攻撃者が制御しているサーバも使われました。サーバは標的にされた電子メールアドレスが狙い通りにクリックされたか追跡するためのリダイレクト用スクリプトを提供していました。さらに、この9002トロイの木馬のサンプルと関連のある構造基盤は、Poison Ivyをペイロードとして使ったミャンマーなどのアジア諸国に対する攻撃(最近の、あるいは今も続いている可能性のある台湾に対する攻撃活動を含む)と以前に結びつきがあったことも分かりました。

短くも甘い...

今のところ、この攻撃に関する具体的な遠隔測定はしておりませんが、攻撃が短縮URL (今回の場合はURL短縮サービスTinyURLを利用)を拠りどころにして9002ペイロードを配信したものと私たちは信じています。短縮URLは下記のとおりです。

hxxp://tinyurl[.]com/zmu4dry

この短縮URLは、攻撃者が制御しているサーバへとリダイレクトさせます。このサーバをリダイレクト用サーバと呼ぶことにしますが、それはブラウザを別の位置にリダイレクトするのに関わりのあるスクリプトを提供しているからです。上記短縮URLは下記を指しています。

hxxp://222.239.91[.]152?<redacted>QGdtYWlsLmNvbWh0dHA6Ly90aW55dXJsLmNvbS9qZmo5b3V2

上記URLにはbase64符号化データが含まれており、このデータは次にサーバによって復号化されるはずです。URLリダイレクト内のbase64符号化パラメーターは次のとおり復号化されます。

<redacted>@gmail.comhttp://tinyurl[.]com/jfj9ouv

復号化されたデータ内のGmailアドレスは、ミャンマーでよく知られている政治家であり人権活動家である人物の正規アドレスです。復号化されたデータ内の短縮URL (具体的には"hxxp://tinyurl[.]com/jfj9ouv")がさらに下記にリダイレクトされます。

hxxps://drive.google[.]com/uc?id=0B0eVt8dSXzFuN2ltVlVkVl8zNVU&authuser=0&export=download

攻撃者のリダイレクト用サーバ

IPアドレスが"222.239.91[.]152"であるサーバは、インバウンドHTTPリクエストに由来するパラメーターを構文解析するスクリプトを実行しているようです。このスクリプトの機能目的をさらに詳しく解明するため、私たちはリダイレクト用サーバに対し一連のHTTPリクエストを発行してURL内のbase64符号化データの目的を理解し、ブラウザをリダイレクトするのにスクリプトが使っている文字列を特定しました。

最初のHTTPリクエストは、図1にあるとおり、この攻撃に関連のある最初の短縮URLが指すURLを伴っています。HTTPレスポンスから分かるように、スクリプトはHTTP 302 Moved Temporarilyレスポンスを発行して、"Location"フィールド内のURLへとブラウザを移動させています。この移動先URLはHTTPリクエストで送信されるbase64符号化データに由来するものと同じURLです。

図1 最初の配信URLへのHTTPリクエストに対するレスポンス

2番目に発行したテスト用のHTTPリクエストでは文字列"fake@gmail.comhttp://yahoo.com"のbase64符号化データを使いました。これにより、図2で分かるとおりHTTP 302レスポンスを介してブラウザが"http://yahoo.com"へとリダイレクトされます。このことから伺えるのは、電子メール文字列がインバウンド リクエストに対していかなる種類の認証としても用いられず、その代り、標的にされた電子メールが狙い通りにクリックされたか追跡するのに脅威の攻撃者が電子メール文字列を使っている可能性があるということです。

図2 リダイレクト用サーバがbase64符号化データをリダイレクト用に利用していることを確かめるテスト用リクエスト

私たちは文字列"fake@gmail.comyahoo.com"のbase64符号化データを使ってHTTPリクエストを発行しました。図3からサーバがHTTP 200 OKレスポンスを返してきてはいるものの、このレスポンスがブラウザのウィンドウに"403 Forbidden"と表示することでHTTP 403 Forbiddenレスポンスに似せようとしているものであることが分かります。このエラーから、サーバ上にあるリダイレクト用スクリプトがbase64符号化データを構文解析して文字列"http"を探し、リダイレクト先を決定していることが伺えます。

図3 リダイレクト用サーバがbase64符号化データ内の"http"を要求していることを示すテスト用リクエスト

私たちはスクリプトがbase64符号化データ内で確認対象としている文字列を新たに見つけるため、引き続きテスト用リクエストを発行しました。その文字列はスクリプトがブラウザのリダイレクト先となる位置を判定するのに使われますが、スクリプトが"https"で始まるURLもリダイレクト先として扱っていることが分かりました。さらに、スクリプトは大文字小文字を区別し、"HTTP"および"HTTPS"を使ったURLリクエストは結果として図3のように同じ403 Forbiddenレスポンスとなりました。最後に私たちはスクリプトが"http"や"https"の後に"://"という文字列を必要としないことを確認しました。

クラウドからのトロイの木馬

この攻撃の配信では、リダイレクト サーバのリダイレクト先となる短縮リンクが、Google DriveでホストされたZipファイルをポイントします。Zipファイルのファイル名は“2nd Myanmar Industrial Human Resource Development Symposium.zip” (SHA256: c11b963e2df167766e32b14fb05fd71409092092db93b310a953e1d0e9ec9bc3)で、2016年7月13日に追加された1つの実行可能ファイルが含まれています。

このZipアーカイブ内の実行可能ファイルのファイル名は、“2nd Myanmar Industrial Human Resource Development Symposium.exe” (SHA256: 49ac6a6c5449396b98a89709b0ad21d078af783ec8f1cd32c1c8b5ae71bec129)です。これは、おとり文書とペイロードをシステムに保存し、その後両方を開くドロッパーのトロイの木馬です。実行可能ファイルは、図4に示すように、PowerPointアイコンを使用して、ユーザーにファイルがPowerPointプレゼンテーションであると思わせることで、被害者が実行可能ファイルを起動するように仕向けます。

図4 被害者が実行可能ファイルをダブルクリックするように仕向けるため、ペイロードにはPowerPointアイコンが使用されている
図4 被害者が実行可能ファイルをダブルクリックするように仕向けるため、ペイロードにはPowerPointアイコンが使用されている

図5に示すおとり文書は、PowerPointプレゼンテーションで、2016年7月30日にミャンマーで開催される“Role of JMVTI Aung San and Building of Clean and Safe Automobile Society”というタイトルの会議の詳細が含まれています。Japan Myanmar Vocational Training Institute (JMVTI) Aung San (日本ミャンマー職業訓練学校)は、ミャンマーの科学省の管轄下のAsia Environmental Technology Promotion Institute (アジア環境技術推進機構)によって設立され、まもなく開校される職業訓練センターです。

図5 9002トロイの木馬のインストール時に開かれたおとり文書
図5 9002トロイの木馬のインストール時に開かれたおとり文書

ペイロードに関して、ドロッパーは現在のユーザーのフォルダ(%USERPROFILE%)内にランダムに命名されたフォルダを作成し、次のファイルを保存するためにそれを使用します。

  • RealNetwork.exe (SHA256: 10d40c51d85ea9ced6050b8951802aaebe81f7db13f42fe5a5589172af481a7e)
  • main.dll (SHA256: 53671fe98a0c8c85f6f8eabfa851e27b437f6c392b46e42ddea3f0a656591b12)
  • mpaplugins\MPAMedia.dll (SHA256: f76f639f2a7b8f39abf83737c6d3e533be66398c85ec95526e4b13561e15fbae)

"RealNetwork.exe"ファイルは、"RealNetworks, Inc."に署名された正規の実行可能ファイルで、"mpaplugins\MPAMedia.dll"をロードして"BuildDeviceDatabase"という名前の関数を呼び出します。ただし、攻撃者は、"mpaplugins\MPAMedia.dll"をドロッパーによってランダムに命名されたフォルダに保存することで、正規の実行可能ファイルを利用して彼らが作成したDLLをサイドロードします。

サイドロードされた"MPAMedia.dll" DLLは、サンドボックス回避を試みるためか、最初に、システム時間が2016年5月20日以降であることを確認します。その後、初期にドロッパーによって作成されランダムに命名されたフォルダに保存済みの"main.dll"ファイルをロードします。このトロイの木馬のロード プロセス全体は、図6で説明します。

図6 DLLサイドロード プロセスの概要
図6 DLLサイドロード プロセスの概要

"MPAMedia.dll” DLLは、"main.dll"内から、“stdInstall”および“CreateFunc”という名前のエクスポートされた関数を呼び出します。"stdInstall"関数は、持続性を目的に、次の自動実行レジストリ キーを作成する役割を担います。

Software\Microsoft\Windows\CurrentVersion\Run\RealNetwork

エクスポートされた関数の"CreateFunc"は、"main.dll"ファイル内のオフセットを、9002トロイの木馬の実際の関数コードが含まれるシェルコードに返します。その後、"MPAMedia.dll" DLLがトロイの木馬を実行するためのスレッドを作成します。9002トロイの木馬は実行時に、F16MEおよびwidfasdfという2つのミューテックスを作成します。また、ユーザーのフォルダ(%USERPROFILE%)へのパスを保存するために使用する次のレジストリ キーも作成します。

HKCU\Software\Microsoft\F6\uid

トロイの木馬は、このレジストリ キーに保存されたパスを使用して、その設定を見つけます。これは、複数バイトのXORアルゴリズムとキー“1pKFmjw”を使用して復号化されます。図7は、この9002のサンプルで復号化された設定の16進ダンプを示しています。

図7 9002トロイの木馬の設定
図7 9002トロイの木馬の設定

9002トロイの木馬は、上記の設定ファイルを使用して、コマンド アンド コントロール(C2)サーバとして動作する次のドメインと通信します。

logitechwkgame[.]com

トロイの木馬は、2通りの異なる方法を使用して、ネットワーク ビーコンをそのC2サーバに送信します。第1の方法では、図8に示すように、ツール名の基本である文字列"9002"で始まるカスタム プロトコルをTCPポート80で使用します。C2サーバが応答すると、トロイの木馬は、文字列“jackhex”および“2016”とともに、設定ファイル内のシステム固有の情報を送信します。“jackhex”はC2内にも見られ、このブログの後半で簡単に説明しますが、Poison Ivy活動に関連しているようです。

図8 カスタム9002プロトコルを使用するネットワーク ビーコン
図8 カスタム9002プロトコルを使用するネットワーク ビーコン

2番目のビーコン手法もTCPポート80を使用していますが、この手法はHTTPリクエストを使用してC2サーバと通信しています。図9はこのトロイの木馬によって発行されたHTTPリクエストのサンプルを示しています。これには、“lynx”のユーザーエージェントおよび“AA”のPOSTデータが含まれており、これらは両方ともペイロードにハードコードされています。

図9 HTTPリクエストを使用した9002からのネットワークビーコン
図9 HTTPリクエストを使用した9002からのネットワークビーコン

このペイロードによって生成された2つのビーコンは、以前分析した9002の"3102"亜種によって生成されたものと非常によく似ています。この9002サンプル内の機能は、その主機能がC2サーバによって提供されるプラグインをロードし、“CreatePluginObj”という名前のエクスポートされた関数を呼び出すことであり、取り上げた3102亜種と非常によく似ています。

インフラストラクチャとPoison Ivyの共通点

C2サーバ"logitechwkgame[.]com"はIPアドレス"222.239.91[.]30"に解決されますが、これは"logitechwkgame[.]com"と同時に"admin.nslookupdns[.]com"にも解決され、これら2つのドメインが同じ攻撃者に関連していることを示唆しています。"admin.nslookupdns[.]com"は、Arbor Networksが公開したブログで説明されているように、ミャンマーおよびその他のアジア諸国での攻撃に関連するPoison IvyサンプルのC2でもあることがわかりました。この活動のさらなる共通点はPoison Ivy C2 "jackhex.md5c[.]net"です。“jackhex”が一般的な単語や句ではなく、前記の9002サンプルによるビーコン活動でも見られていることがその理由です。

Arbor Networksのブログに記述されているサンプルに加えて、同じミューテックスを使用する別のPoison Ivyサンプルをいくつか発見しました。これらは、同じ親プロセスによって作成され、同じC2インフラストラクチャのほとんどを使用していました。ただし、収集したサンプルには、キャンペーンIDがなく、すべてが通信を暗号化するパスワードとして“version2013”を使用しています。追加のPoison Ivyサンプルから次の3つの新しいC2ドメインが見つかりました。

  • outhmail[.]com
  • mxdnsv6[.]com
  • microsoftserve[.]com

また、これらのPoison Ivyサンプルに関連するC2ドメインの一部は、関係があるかもしれない以下のドメインを登録するために使用された電子メールで登録されていました。

  • gooledriveservice[.]com
  • queryurl[.]com
  • appupdatemoremagic[.]com

これらのサンプルに関連する完全な標的情報はありませんが、おとりファイルのいくつかは中国語で、台湾の組織を標的とする最近の(進行中である可能性もある)活動の一部のようです。おとりのテーマは主に両岸関係および台湾の行政院大陸委員会(MAC)に関するものでした。MACは、台湾と中華人民共和国(PRC)の間の政策を作成、実施、監督する閣僚級の組織です。

結論

Google Driveを使用して悪意のあるファイルをホストすることは新しい攻撃戦術ではありません。しかし、有名なホスティングプラットフォームを使用すると、ペイロードのダウンロードが、ホスティングプロバイダの別の合法的なトラフィックに紛れ込む場合があります。攻撃者は依然として主要な攻撃方法にスピアフィッシングを使用していますが、この手法は広く公開されたため、おそらく標的にされる被害者は、電子メールの添付ファイルやリンクを開くことについてより注意深くなっています。スピアフィッシングの成功率が低下したため、攻撃者は、継続して新しい手法に順応し、新しい手法を発見してマルウェア配信を成功させる必要が生じています。URL短縮サービスおよびリダイレクト用サーバを使用すると、リンク短縮機能によってリンクの内容が識別不能になり、電子メール内のリンクの正当性を判定しづらくなって攻撃成功の可能性がさらに高まります。

これらの攻撃で使用されるファイルはWildFireによって正しくマルウェアに分類されます。AutoFocusのお客様は、9002Poison Ivyの両方について、それぞれのマルウェアファミリタグを使用して詳細を確認できます。

IOC

9002サンプル

C11b963e2df167766e32b14fb05fd71409092092db93b310a953e1d0e9ec9bc3
49ac6a6c5449396b98a89709b0ad21d078af783ec8f1cd32c1c8b5ae71bec129

Poison Ivyサンプル

193ae4da14874aa29902052d08064395afa5e4763f949e7369157d893fa08653
ac8fc264c7ec3cf70836e1bb21f9a20174b04ad49731b8797d7d8bb95cb353e2
12759f7fd01ffdea97954be5404d7e43a3941a7388129e7b6ace85f56b500cd8
0940602e7d47941f36c975afa9d2c6b1b0d2bd15bbea6ad4baf0f828420d72bf
6bdd45cb6c021512c203cf01a051dce28449e364627e1366412c0051094f60a0
f0ab826ea65b4a9eb66528ad74c4d3e747c1ecebfca6bdafd2504e0f794195d9
e2fb4a53e54774f1645c940f905e76beb5fc729e9e968b736b8377312cb2454a
0af768b4ba8fe7aac7a7da7fd5f21e7496d5617dccdf2321f526fd1091d64a6d
fd21cd1846f25d42b1997ec1fd5ae6e14ea9b5bb0161ab7edf0ce184174e6da6
12759f7fd01ffdea97954be5404d7e43a3941a7388129e7b6ace85f56b500cd8
08dee1f5ced372716ad5c6e3f2041bcdeb25e905efc19d3749fe637d0a589ccc
269c03e205c403ab8fa1033caa1c8e3a86a1495cc33a7f3a3a3c9b8a9ea77490
3a9ab623c8a0a9f6c65e108e83c90da7620d2d6b22192c857556117587d0d038

C2ドメイン

logitechwkgame[.]com
jackhex.md5c[.]net
webserver.servehttp[.]com
admin.nslookupdns[.]com
outhmail[.]com
mxdnsv6[.]com
microsoftdefence[.]com
microsoftserve[.]com
gooledriveservice[.]com
queryurl[.]com
appupdatemoremagic[.]com