以前のJPCERT/CC Eyesで攻撃グループBlackTechが使用するマルウエアTSCookieやPLEAD、IconDownについて説明しましたが、この攻撃グループは他にもいくつかのマルウエアを使用することが分かっています。これまで紹介したマルウエアはWindows OSに感染するものでしたが、JPCERT/CCの調査では、Linux OSに感染するTSCookieやPLEADの亜種が存在することを確認しています。

今回は、攻撃グループBlackTech が使用するLinux 版TSCookieについて紹介します。

TSCookie のWindows版とLinux版の違い

Linux 版TSCookieはWindows版と同じコードを多く使用しているため、機能のほとんどが同一です。図1はTSCookie のWindows版とLinux版のコードの一部を比較した結果です。 図 1：TSCookie のWindows版とLinux版のコードの比較(左: Windows版 右: Linux版)

このようにコードを比較すると多くの個所が同じなのですが、Linux版はWindows版と比較すると大きく以下の点で異なります。

設定情報の減少

独自通信のみサポート

複数の機能がデフォルトで使用可能

以下では、これらの違いについて解説します。

設定情報の減少

Windows版TSCookieでは、以前のブログ(Appendix A: TSCookie設定情報を参照) で紹介した通りサイズ0xB78内に17個の設定情報が含まれていました。Linux版TSCookieでは5個まで簡略化されています。Windows版の際に存在したプロキシ通信に関する設定などはなくなっています。詳しくはAppendix Aをご覧ください。

この設定情報はWindows版の場合はRC4暗号化された上で、マルウエア内に埋め込まれていますが、Linux版の場合は、図2のようにメモリ上に確保した領域へ通信先などの平文の情報をコピーし、RC4暗号化したデータを設定情報として使用しています。Linux版TSCookieが初めから暗号化した設定情報保持していない理由は不明ですが、Windows版のコードを流用する過程でLinux版ではうまくコーディングできない部分があったのではないかと考えられます。 図 2：設定情報を作成するコード

独自通信のみサポート

Windows版TSCookieは、複数の通信方式（HTTP通信、HTTPS通信、独自通信）をサポートしていましたが、Linux版では独自通信のみ使用するようになっています。図3はTSCookieの通信を行うコードの一部です。Linux版では独自通信のコードのみに削減されていることが分かります。 図 3：TSCookie のWindows版とLinux版の通信機能の比較(左: Windows版 右: Linux版)

なお、送信データはRC4で暗号化されており、送信するデータのフォーマットについてはWindows版と大きく違いはありません。(詳しくはAppendix B表B-1、B-2をご覧ください。)このリクエストのレスポンスにコマンドが含まれていますが、このフォーマットもWindows版と大きく違いはありません。(詳しくはAppendix B表B-3をご覧ください。)

複数の機能がデフォルトで使用可能

Windows版TSCookieは、モジュールをダウンロードし、そのモジュールの機能によって様々な挙動を行います。Linux版では以下のような機能があらかじめ実装されているため、モジュールのダウンロードを行わなくても不審な挙動を行うことが可能です。(詳しくはAppendix Cをご覧ください。)

任意のシェルコマンド実行

ファイル関連操作 (一覧の表示、削除、移動)

ファイルのアップロード・ダウンロード

おわりに

今回紹介したマルウエアは、ネットワークに侵入した攻撃者によってLinuxサーバ上に設置されたものと考えられます。攻撃グループBlackTechに関連するマルウエアがネットワーク内で発見された場合は、Linux環境も合わせて調査することをお勧めします。なお、今回解説した検体の通信先に関しては、Appendix Dに記載しています。

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

Appendix A: ELF_TSCookie設定情報

表 A-1: 設定情報の一覧 オフセット 説明 備考 0x000 通信先サーバおよびポート番号 ";"で区切ることにより複数指定可能 0x400 RC4キー 通信の暗号化に使用 0x40C キャンペーンID 0x44C 通信モード 設定値はあるが独自通信のみしか行わない 0x454 未使用

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

表 B-1: 送信データのフォーマット オフセット 長さ 内容 0x00 4 受信データ番号 (最初は0xFFFFFFFF) 0x04 4 データ長 0x08 4 パケット番号(データ長が65440を超える場合、分割して送るときに使う) 0x0C 4 コマンド (最初は0x7263BC02) 0x10 4 0x20以降のRC4暗号化の有無 0x14 4 未使用 0x18 4 0x3001 0x1C 4 RC4キー (ランダムデータ) 0x20 - 送信データ (1回目の通信は表B-2を参照)

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

表 B-2: 1回目の送信データのオフセット0x20以降のフォーマット オフセット 長さ 内容 0x00 4 0x9A65001F 0x04 4 プロセスID 0x08 4 コマンド (最初は0x7263BC02) 0x0C 4 未使用 0x10 4 オフセット0x14以降のサイズ 0x14 - ランダムデータ

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

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

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

Appendix C: ELF_TSCookieのコマンド

表 C: コマンド一覧 値 内容 0x7200AC03 リモートシェルの起動 0x7200AC04 リモートシェルへコマンド送信 0x7200AC05 リモートシェルの終了 0x7200AC07 - 0x7200AC0B 0x7263BC06を返す 0x7200AC0C ファイル一覧の表示 0x7200AC0D ファイルダウンロード 0x7200AC0E ファイルアップロード 0x7200AC11 - 0x7200AC13 マルウエアの終了 0x7200AC16 ファイルの削除 0x7200AC1A ファイルの移動 0x7200AC10 コマンドの実行

Appendix D: 通信先

app.dynamicrosoft.com

home.mwbsys.org

Appendix E: ハッシュ値