攻撃グループBlackTechが侵入後に使用するマルウエア

以前のJPCERT/CC Eyesで攻撃グループBlackTechが使用するマルウエアTSCookiePLEADについて説明しましたが、引き続きこの攻撃グループによる活動は行われています。JPCERT/CCの調査ではこの攻撃者がネットワーク内部に侵入した場合、これまでに説明したTSCookieとは少し異なる挙動を行う亜種を使用することを確認しています。
今回は、攻撃グループBlackTech が侵入後に使用するTSCookieの亜種について紹介します。

侵入後に使用されるTSCookieの概要

このマルウエアは、図1のように2つのファイル(TSCookie LoaderおよびTSCookie)で構成されています。

TSCookie LoaderおよびTSCookieの概要
図 1:TSCookie LoaderおよびTSCookieの概要

TSCookie LoaderはEXEまたはDLL形式で、同一フォルダまたは以下のフォルダにある特定のファイルを読み込み、実行します。(検体によって、確認するフォルダは異なる場合があります。)

  • C:\Windows
  • C:\ProgramData\Microsoft
  • C:\Users\Public\Documents
  • C:\Program Files\Internet Explorer

読み込むファイルは、以下のファイル名に該当するものが対象となります。

  • desktop.db
  • 「*7???.*」(ワイルドカード)にマッチするファイル名
  • 「*8???.*」(ワイルドカード)にマッチするファイル名

ワイルドカードにマッチするファイル名として具体的には、KB78E7269.logやPM89E7267.xmlのようなファイル名が使われていることを確認しています。
TSCookieは、RC4で暗号化されておりTSCookie Loaderによってデコードされた後、メモリ上で実行されます。TSCookieはダウンローダーであり、以前のJPCERT/CC Eyesで記載した通り外部からモジュールをダウンロードすることで動作しますが、設定情報や通信方式など一部異なる点があります。
以降では、TSCookieの詳細な挙動を解説します。

TSCookieの挙動の詳細

TSCookieは、複数の通信方式(HTTP通信、HTTPS通信、独自通信)をサポートしています。どの通信方式を使うかについてはマルウエア内の設定情報に設定されています。(設定情報の詳細に関しては、Appendix Aをご覧ください。)
TSCookie がHTTP通信を行うように設定されていた場合、以下のようなHTTP POSTリクエストを送信します。

POST /index?o=E7E168C4EC82E HTTP/1.1
Cache-Control: no-cache
Pragma: no-cache
Accept: */*
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Win32)
Proxy-Connection: Keep-Alive
Content-Length: [サイズ]
Host: [ホスト名]

[送信データ]

URLのパスは複数パターン存在し、以下のような文字列にランダムな文字列・値などを組み合わせて動的に作成されます。(一部、フォーマット指定子で記載しています。また、これ以外の場合も存在します。)

  • /news?%c=%X%X
  • /index?%c=%X%X
  • /?id=%X%X
  • /Default.aspx?%c=%X%X
  • /m%u.jsp?m=%d
  • /N%u.jsp?m=%d

送信データはRC4で暗号化されています。送信するデータのフォーマットについては、Appendix B表B-1、B-2をご覧ください。
このHTTP POSTリクエストによってダウンロードしたデータは、設定情報に含まれているRC4キー(Appendix A: 表A-1)と受信データに含まれている値(Appendix B: 表B-3のRC4キー)を合わせた8byteの値によってRC4で暗号化されています。このダウンロードしたデータにモジュールが含まれており、メモリ上に展開したうえで実行されます。

TSCookieデコードツール

暗号化されたTSCookieファイルをデコードして設定を抽出するツールを作成し、GitHubに公開しています。TSCookieを分析する際にご活用ください。

JPCERTCC/aa-tools - GitHub
https://github.com/JPCERTCC/aa-tools/blob/master/tscookie_data_decode.py

おわりに

最近、組織内でTSCookieの感染が確認されたという被害報告が増加しています。今回解説したファイル名や通信の際の特徴などを基に組織内で感染が確認されていないかご確認ください。なお、今回解説した検体のハッシュ値に関しては、Appendix Cに記載しています。

インシデントレスポンスグループ 朝長 秀誠

Appendix A: TSCookie設定情報

表 A-1: 設定情報の一覧
オフセット 説明 備考
0x000 通信先サーバおよびポート番号 ";"で区切ることで複数指定可能
0x400 RC4キー 通信の暗号化に使用
0x404 スリープ回数
0x42C Mutex
0x44C 通信モード 1,2,3: 認証プロキシに対応したHTTP通信
6,7,8: HTTPS通信
0: 独自通信
5: HTTP通信
0x454 HTTPコネクションキープ
0x458 ICMP受信設定 ICMPで通信先サーバの情報を受信
0x4D4 ICMPを受信するIPアドレス
0x624 プロセスインジェクションモード 0: 起動してインジェクション
1: すでに起動しているプロセスにインジェクション
2: オフセット0x62Cを起動
0x628 インジェクションするプロセス 0: svchost.exe
1: iexplorer.exe
2: explorer.exe
3: Default Browser
4: オフセット0x62Cのプロセス
0x62C プロセス名
0x72C プロキシサーバ
0x76C プロキシポート番号
0x770 プロキシユーザ名
0x790 プロキシパスワード
0x7B0 プロキシモード 1: 設定情報を使用
0: Proxy自動検出
0x7B4 プロキシ認証方式 AuthScheme

※ 検体によってはプロセスインジェクションを行わない検体も存在します。

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

表 B-1: 送信データのフォーマット
オフセット 長さ 内容
0x00 4 受信データ番号(最初は0xFFFFFFFF)
0x04 4 送信データ長
0x08 4 通信回数
0x0C 4 固定値(最初は0x5322、モジュール受信中は0x5324または0x5325)
0x1C 4 ランダムデータ(RC4キー)
0x20 - 2回目以降の通信はランダムデータ(1回目の通信は表B-2を参照)

※ オフセット0x1Cまでは設定情報に含まれるRC4キーとランダムデータでRC4暗号化されている。

表 B-2: 1回目の送信データのオフセット0x20以降のフォーマット
オフセット 長さ 内容
0x00 4 0x9A65001E
0x04 4 プロセスID
0x08 4 0x5322
0x0C 4 ランダムデータ
0x10 4 オフセット0x14以降のサイズ
0x14 - ランダムデータ

※ オフセット0x14までは設定情報に含まれるRC4キーとランダムデータでRC4暗号化されている。

表 B-3: 受信データのフォーマット
オフセット 長さ 内容
0x00 4 受信データ番号
0x04 4 送信データ長
0x0C 4 -
0x10 4 オフセット0x20以降の暗号化の有無
0x1C 4 RC4キー
0x20 - モジュールデータ

※ オフセット0x1Cまでは設定情報に含まれるRC4キーと受信データ内のRC4キーで暗号化されている。

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

TSCookie Loader
  • 072f24d2691fb3930628be91bc46cefb8bc3364d1d09d72ab0cb3863681cb107
  • f49956f498042feb237c3e898f74a8e14500c27cda2746efca2d973a5390baa8
  • 3e12938df72380e4ae7a2dcb3322e563de3da102f5f32b26a29662ba594e73d1
  • 23ca1a3ca26ada00502bbd1abf4d42302343dafba32cbc0711847d52884ff8e1
  • 6ec56de53ef1ea66c81b3e48f9a9b3cf3dc8e3ebda1ec08bf95cc21228a4c7b3
  • bd89b972de19c8ab2be0fb3e2aa44638a95e465e4b52920c94e6f59c25ce4693
  • c5d7e5a12c8eab9c14f008c93d92e0070f84f358d39f28ac089ee917c652f5a8
  • 85536a139b9d44157aea2908a6a6e53e4ac19077355680b69edd8e84c70254bc
  • 0d00d12d71dd080d2861e9da89906a67bb822c64366b4c6b72a55bb8c26a4ea3
  • 81dfce847a9fd6a3a0080a927bbb740709bdcc099bfe1b0cfc99958f6ddeb52f
  • 48fdc29e7f47e5d38c88a89667ed85740628bf4f4ce95045019f7ebfeb4bbb5c
  • d5909d06ddb394dea114052e9e174fa1e88324d805d153edb6076c53842fd2f2
  • 9e10a1abbff4d421eaee20040fb2a9270c4efb6d75ee6cd728b09bac1042bfa6
  • ae5528cc802c81946f2787c7e884656416acebc89466989eeca9379fa066ad96
  • 69b07aae04af6ca57d6066fdcbfeeb4c4849bfd2cd65b01c1e576f45b1c24d79
  • 784b331d30d46ee9e7a264ecb45e3a39d7cef135d189bf0e712e89935728c13f
  • 0eb9947a1ef4b810517f6cba175a321c4d69c3058d688bdd73492d54e7932c86
≪ 前へ
トップに戻る
次へ ≫