プラグインをダウンロードして実行するマルウエアTSCookie (2018-03-01)

2018年1月17日頃、文部科学省に偽装した不正なメールが送信されていたことが一部で確認されています[1]。このメールにはURLが記載されており、アクセスするとマルウエアTSCookieがダウンロードされました。(トレンドマイクロ社はこのマルウエアをPLEADと呼んでいます[2]。PLEADは、攻撃キャンペーン名として使われることもあるため、ここではこのマルウエアをTSCookieと記載します。)TSCookieは、2015年頃から確認されており、BlackTech[3]と呼ばれる攻撃グループとの関連が疑われています。JPCERT/CCではこのマルウエアを使用した攻撃グループが、過去に日本の組織をターゲットに標的型攻撃を行っていることを確認しています。
今回は、TSCookieの詳細について紹介します。

TSCookieの概要
図1は、TSCookie実行時の動作の流れを示しています。

図 1:TSCookieの概要
クリックすると拡大されます

TSCookie単体にはダウンローダーとしての機能しかありません。その他の機能は、外部からモジュールをダウンロードすることで追加するようになっています。今回TSCookieがダウンロードしたモジュールはDLLファイルで、情報の送信など多数の機能を持つもの(以降、TSCookieRATと記載する)でした。なお、ダウンロードしたモジュールは、メモリ上でのみ動作します。
以降では、TSCookie およびTSCookieRATの詳細な挙動を解説します。

TSCookieの挙動の詳細
TSCookieは、特定のサイトとHTTPで通信を行い、「モジュール」とモジュールをロードするための「ローダー」をダウンロードします。リソース内に暗号化されたDLLファイルを持っており、起動するとそのDLLファイルをメモリ上に展開して実行します。通信などのメインの機能は、DLLファイル内にあります。(メインの機能が暗号化されずに、そのまま本体に含まれている場合もあります。また、他のプロセスを起動して、そこに復号したDLLファイルをインジェクションして実行するものも存在します。)
このマルウエアはRC4で暗号化された設定情報を持っており、通信先は設定情報に含まれています。設定情報の詳細に関しては、Appendix Aをご覧ください。
以下は、TSCookieが初めに送信するHTTP GETリクエストの例です。送信する情報は暗号化されてCookieヘッダーに含まれています。

GET /Default.aspx HTTP/1.1
Cache-Control: no-cache
Connection: Keep-Alive
Date: Thu, 18 Jan 2018 10:20:55 GMT
Pragma: no-cache
Accept: */*
Cookie: 1405D7CD01C6978E54E86DA9525E1395C4DD2F276DD28EABCC3F6201ADAA66F55C15352D29D0FFE51BC9D431EB23E8E58959653D9366E372B5CFCC49BB
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Win32)
Host:[ホスト名]:443

Cookieヘッダーに含まれるデータはRC4で暗号化(キーはDateヘッダーの値)されています。送信するデータのフォーマットについては、Appendix B表B-1をご覧ください。 このHTTP GETリクエストによってダウンロードしたデータは、設定情報に含まれている固定値(Appendix A表A)と送信時にデータに含まれていた値(Appendix B表B-1の「システム情報から作成した4byte」)を合わせた8byteの値によってRC4で暗号化されています。このダウンロードしたデータには、モジュールをロードするためのローダーが含まれています。 次に、TSCookie はモジュールをダウンロードします。以下は、モジュールをダウンロードする際に送信するHTTP POSTリクエストの例です。

POST /Default.aspx HTTP/1.1
Connection: Keep-Alive
Date: Thu, 18 Jan 2018 10:30:55 GMT
Content-Type: application/x-www-form-urlencoded
Accept: */*
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Win32)
Content-Length: 34
Host: [ホスト名]:443

[データ]

送信するデータはHTTP GETリクエストと同じくRC4で暗号化(キーはDateヘッダーの値)されています。送信するデータのフォーマットについては、Appendix B表B-2をご覧ください。このHTTP POSTリクエストによってダウンロードしたデータは、HTTP GETリクエストの時と同じキーによってRC4で暗号化されています。このモジュールをメモリ上に展開し、HTTP GETリクエストで受信したローダーを呼び出すことでモジュールを実行します。

TSCookieRATの挙動の詳細
TSCookieRATは実行時に通信先などの情報をTSCookieから与えられることによって動作します。TSCookieRAT が実行されると初めに、感染ホストの情報をHTTP POSTリクエストで外部に送信します。(送信時のHTTPヘッダーの内容は、TSCookieと同じです。)
送信されるデータは先頭から0x14がRC4で暗号化(キーはDateヘッダーの値)されており、それ以降に感染ホストのホスト名やユーザ名、OSバージョンなどが含まれています。送信するデータのフォーマットについては、Appendix C表C-1をご覧ください。
図2は送信するデータをデコードした例です。

図 2:デコードした送信データの一部
(感染ホストの情報送信)
クリックすると拡大されます

その後、HTTP GETリクエストを送信します。(送信時のHTTPヘッダーの内容は、TSCookieと同じです。)C&Cサーバから受信するデータには、コマンドなどが含まれており、受信したコマンドに応じて、以下の機能を実行します。(受信するデータについてはAppendix C表C-2をご覧ください)(コマンドの詳細についてはAppendix D表D-1をご覧ください)

  • 任意のシェルコマンド実行
  • ドライブ情報の送信
  • システム情報の送信
  • ファイル関連の操作
  • Internet Explorer, Edge, Firefox, Chrome, Outlookからパスワード情報の収集

 

コマンドの実行結果は、最初のHTTP POSTリクエスト(感染ホストの情報送信時)と同じフォーマットで送信されます。なお、送信されてくるコマンド自体はエンコードされていません。以下は、プロセスとモジュール一覧を収集するコマンドを実行した際に送信されたデータをデコードした例です。

図 3:デコードした送信データの一部
(コマンド0x930を実行した結果の送信)
クリックすると拡大されます

TSCookieデコードツール
TSCookieをデコードして設定を抽出するツールを作成し、GitHubに公開しています。TSCookieを分析する際にご活用ください。
JPCERTCC/aa-tools · GitHub
https://github.com/JPCERTCC/aa-tools/blob/master/tscookie_decode.py

図 4:tscookie_decode.pyの実行例
クリックすると拡大されます

おわりに
TSCookieを使用する攻撃者はこれまで様々なマルウエアを使用して日本の組織を攻撃しています。今後もTSCookieを利用した攻撃は続く可能性があるため、注意が必要です。
今回解説した検体のハッシュ値に関しては、Appendix Eに記載しています。また、これまでJPCERT/CCで確認しているTSCookieの通信先の一部はAppendix Fに記載していますので、このような通信先にアクセスしている端末がないかご確認ください。

分析センター 朝長 秀誠

参考情報
[1]piyolog: 2018年1月の文科省なりすましメールについてまとめてみた
  http://d.hatena.ne.jp/Kango/20180119/1516391079
[2]トレンドマイクロ: Following the Trail of BlackTech’s Cyber Espionage Campaigns
  https://documents.trendmicro.com/assets/appendix-following-the-trail-of-blacktechs-cyber-espionage-campaigns.pdf
[3]トレンドマイクロ: 「BlackTech」によるサイバー諜報活動の足跡を追う
  http://blog.trendmicro.co.jp/archives/15393

Appendix A TSCookie設定情報

表 A: 設定情報の一覧

オフセット 説明 備考
0x000 通信先1使用フラグ 0x01の場合通信を行う
0x004 通信先1のポート番号1  
0x008 通信先1のポート番号2  
0x010 通信先1  
0x100 通信先2使用フラグ  
0x104 通信先2のポート番号1  
0x108 通信先2のポート番号2  
0x110 通信先2  
0x200 通信先3使用フラグ  
0x204 通信先3のポート番号1  
0x208 通信先3のポート番号2  
0x210 通信先3  
0x300 通信先4使用フラグ  
0x304 通信先4のポート番号1  
0x308 通信先4のポート番号2  
0x310 通信先4  
0x400 プロキシサーバー  
0x480 プロキシポート番号  
0x484 プロキシ設定使用フラグ  
0x500 ID  
0x604 固定値 4byteのRC4キー(0x925A765D)
0x89C 停止時間  

Appendix B TSCookie送受信データの内容

表 B-1: Cookieヘッダーの値のデータフォーマット(復号後)

オフセット 長さ 内容
0x00 4 システム情報から作成した4byte ※
0x04 4 0x10050014
0x08 4 0x10001
0x0C 4 0xAB1
0x10 4 0x04
0x14 4 システム情報から作成した4byte
0x18 - ランダムデータ

※ 固定値(0x925A765D)をキーにしてRC4暗号化されている。

表 B-2: HTTP POSTデータのデータフォーマット(復号後)

オフセット 長さ 内容
0x00 4 システム情報から作成した4byte
0x04 4 0x10050014
0x08 4 0x10001
0x0C 4 0xAAD
0x10 4 0x14以降のデータ長
0x14 - ランダムデータ

Appendix C TSCookieRAT送受信データの内容

表 C-1: HTTP POSTデータのデータフォーマット(復号後)

オフセット 長さ 内容
0x00 4 システム情報から作成した4byte
0x04 4 0x10050014
0x08 4 0x10001
0x0C 4 0xAB0
0x10 4 0x14以降のデータ長
0x14 - 感染ホストの情報(「システム情報から作成した4byte」のキーでRC4暗号化)

※ 14hまではDateヘッダーの値でRC4暗号化されている。

表 C-2: 受信データフォーマット

オフセット 長さ 内容
0x00 4 コマンド
0x04 4 0x8以降のデータ長
0x08 - パラメータ

Appendix D TSCookieRATのコマンド

表 D: コマンド一覧

内容
0x912 停止時間設定
0x930 プロセスとモジュール一覧の取得
0x932 終了
0x934 リモートシェル開始
0x935 リモートシェルコマンドの実行
0x936 リモートシェル終了
0x946 IPアドレス取得
0x950 ファイルの実行(ウィンドウ表示あり)
0x951 ファイルの実行(ウィンドウ表示なし)
0x952 メッセージ送信
0x953 ドライブ情報の送信
0x954 ファイル一覧の送信
0x955 ファイルサイズの送信
0x956 ファイルの送信
0x957 オブジェクトハンドルのクローズ
0x958 送信するファイルの指定(0x955、0x956でファイル送信)
0x959 ファイルダウンロード
0x95A ファイルの削除
0x95C ファイルの移動
0x95E -
0x960 -
0x96B ウィンドウタイトル取得
0x96E Internet Explorer, Edge, Firefox, Chrome, Outlookからパスワード情報の収集

Appendix E 検体のSHA-256ハッシュ値


TSCookie

  • 6d2f5675630d0dae65a796ac624fb90f42f35fbe5dec2ec8f4adce5ebfaabf75
  • cdf0e4c415eb55bccb43a650e330348b63bc3cbb53f71a215c44ede939b4b830
  • 17f1996ad7e602bd2a7e9524d7d70ee8588dac51469b08017df9aaaca09d8dd9
  • 1fa7cbe57eedea0ebc8eb37b91e7536c07be7da7775a6c01e5b14489387b9ca8
  • e451a1e05c0cc363a185a98819cd2af421ac87154702bf72007ecc0134c7f417
  • 1da9b4a84041b8c72dad9626db822486ce47b9a3ab6b36c41b0637cd1f6444d6
  • 35f966187098ac42684361b2a93b0cee5e2762a0d1e13b8d366a18bccf4f5a91
  • 0683437aebd980c395a83e837a6056df1a21e137e875f234d1ed9f9a91dfdc7f
  • 0debbcc297cb8f9b81c8c217e748122243562357297b63749c3847af3b7fd646
  • 96306202b0c4495cf93e805e9185ea6f2626650d6132a98a8f097f8c6a424a33
  • 6b66c6d8859dfe06c0415be4df2bd836561d5a6eabce98ddd2ee54e89e37fd44
  • 06a9c71342eeb14b7e8871f77524e8acc7b86670411b854fa7f6f57c918ffd2b
  • 20f7f367f9cb8beca7ce1ba980fafa870863245f27fea48b971859a8cb47eb09
  • f16befd79b7f8ffdaf934ef337a91a5f1dc6da54c4b2bee5fe7a0eb38e8af39e
  • 12b0f1337bda78f8a7963d2744668854d81e1f1b64790b74d486281bc54e6647
  • 201bf3cd2a723d6c728d18a9e41ff038549eac8406f453c5197a1a7b45998673
  • 5443ee54a532846da3182630e2bb031f54825025700bcd5f0e34802e7345c7b2
  • 39d7d764405b9c613dff6da4909d9bc46620beee7a7913c4666acf9e76a171e4
  • afe780ba2af6c86babf2d0270156da61f556c493259d4ca54c67665c17b02023
  • 4a8237f9ecdad3b51ffd00d769e23f61f1e791f998d1959ad9b61d53ea306c09
  • 203c924cd274d052e8e95246d31bd168f3d8a0700a774c98eff882c8b8399a2f
  • bbbcce847097e4ddb59d15076f8aa86f51064a5a4a93858e67dec971bd36d007
  • 4842c5403372ead4fd28a26f2e1dfc139541e71bcf574e62c7c18b9cfc406674

TSCookieRAT

  • 2bd13d63797864a70b775bd1994016f5052dc8fd1fd83ce1c13234b5d304330d

Appendix F 通信先一覧

  • 220.130.216.76
  • 60.244.52.29
  • 45.76.102.145
  • jpcerts.jpcertinfo.com
  • jpcert.ignorelist.com
  • twnicsi.ignorelist.com
  • twcertcc.jumpingcrab.com
  • okinawas.ssl443.org
  • apk36501.flnet.org
  • appinfo.fairuse.org
  • carcolors.effers.com
  • edu.microsoftmse.com
  • eoffice.etowns.org
  • epayplus.flnet.org
  • fatgirls.fatdiary.org
  • gethappy.effers.com
  • iawntsilk.dnset.com
  • inewdays.csproject.org
  • ktyguxs.dnset.com
  • lang.suroot.com
  • langlang.dnset.com
  • longdays.csproject.org
  • lookatinfo.dnset.com
  • newtowns.flnet.org
  • ntp.ukrootns1.com
  • office.dns04.com
  • savecars.dnset.com
  • splashed.effers.com
  • sslmaker.ssl443.org
≪ 前へ
トップに戻る
次へ ≫