# 標的型攻撃グループTA428が防衛・航空関連組織に対して使用したマ ルウェアnccTrojanについて **insight-jp.nttsecurity.com/post/102gr6l/ta428ncctrojan** Hiroki Hada 本日の記事は、SOC アナリスト 小澤 文生、小池 倫太郎の記事です。 -- これまでのブログ[1][2][3] でTmangerとそれに関連するマルウェアについて紹介しました。Tmangerは私達 が2020年2月に、TA428のOperation LagTime ITについて行ったリサーチ で観測したマルウェアです。詳細 はVB2020 localhostでの発表資料[4]を参照していただきたいと思いますが、そのリサーチではTmanger以外 ----- にも未知のマルウェアを観測しました。私達はそのマルウェアをnccTrojanと呼んでおり、これまでに4つの バージョンを確認しています。今回はnccTrojanについて、解析結果を共有します。 ## nccTrojan nccTrojan(あるいはMsmRATとも呼ばれる)はTmangerと同様に、TA428が使用するRATです。私達はロ シアやモンゴルといった東アジアの防衛・航空関連組織に対する攻撃でnccTrojanが使用されていることを 複数観測しています。 nccTrojanは攻撃の初期段階(Royal Road RTF Weaponizerによって生成されたRTFを開くこと)で実行さ れることもありますし、より攻撃が進行した横展開後に実行されることもあります。しかし、TA428が使う 他のRAT(SPIVYやCotx RAT)とは異なり、観測数は極めて少なく、これまでほとんど知られていません でした。私達の調査では、少なくとも2019年3月頃には開発されており、2020年11月にも使用が確認されて います。 nccTrojanにはv1とv2の2つのメジャーバージョンが存在すると考えられます。それぞれの中ではより細かく マイナーバージョンが区切られており、例えばv1はv1.6やv1.7が存在しますが、それらの実装にはそれほど 大きな差は存在しません。しかし、v1とv2の実装はかなり異なっており、一見すると同一のマルウェアフ ァミリであるとは考えられません。私達は「同一の攻撃グループ(TA428)、攻撃キャンペーン (Operation LagTime IT)で使用されていること」「PDBパスの共通点」からv1とv2を同一のマルウェアフ ァミリとして扱っていますが、v2が登場してからもv1が使用されることがあり、v1とv2は独立した関係に あるのかもしれません。そのため、以下ではv1とv2のそれぞれの機能・特徴について、解析結果を示しま す。 ## Analysis Result ### Version 1 私達が発見した最も古いnccTrojanは2019年3月頃のv1.6です。その後、2020年11月にもv1の使用を観測し ました。その際の検体はバージョン情報が含まれていないものの、v1.6と極めて類似しており、ほとんどの 機能は同一でした。そのため、以下ではv1.6について扱います。 ファイル名 **PDBパス** OSE.EXE C:\Users\abc\Desktop\cTrojan\1.6\HK\Release\Microsoft Synchronization Manager.pdb OSE.EXEは起動すると、まずMutexのチェックを行います。msm_1.6_Mutex というMutexが既に作成され ている場合、その時点で終了します。存在しない場合、新たに作成し、処理を継続します。このMutexの値 はバージョンによって異なっており、例えばv1.7の場合は msm_1.7_Mutex というMutexが作成されます。 msm というのはPDBパスに含まれている Microsoft Synchronization Manager の略であると考えています。 Mutexを作成しない検体もあり、例えば2020年11月に観測された検体はMutexを作成しません。 その後、C&Cサーバーと通信を行い、コマンド操作を受け付けます。トラフィックは0x28でXORされてい ます。 ----- v1には以下のようにファイル操作やリモートシェル、プロセス操作など、RATとしての基本的なコマンドが 実装されていることを確認しています。 **Command** **Function** "0000" 何もしない "1000" ディスク情報の送信 "1001" ファイル情報の送信 "1002" ファイルの削除 "1003" プログラムの実行 "2000" リモートシェルの起動 "2001", "2002" リモートシェル上でのOSコマンドの実行 "3000" ファイル転送用接続の確立 "3001" ファイル転送用接続の切断 "3002" ファイル転送用接続上での感染端末へのファイルのアップロード "3003" ファイル転送用接続上での感染端末からのファイルのダウンロード "4000" プロセスリストの送信 "4001" プロセスの停止 ### Version 2 v2はv1とは異なり、攻撃がさらに進行した段階(横展開後でシステム権限を既に持っている状態)で使用 されます。また、起動の方法もv1とは異なっており、v2はインストーラによってサービスに登録されるこ とで動作します。 ----- 私達が観測したnccTrojanはInstsrv.exeとWindowsResKits.dllの2つのファイルから成ります。 ファイル名 **PDBパス** Instsrv.exe C:\Users\abc\Desktop\Service\Release\Instsrv.pdb WindowsResKits.dll C:\Users\abc\Desktop\cTrojan\2.1\HK\Release\Client.pdb Instsrv.exeはその名のとおりインストーラで、WindowsResKits.dllをシステムディレクトリにコピーし、サ ービスとして登録します。 サービス名 イメージパス Microsoft Windows Resource Kits %SYSTEMROOT%\System32\svchost.exe -k WindowsResKits WindowsResKits.dllはServiceMainから起動されると、DLL 内部にある暗号化されたConfigを復号します。 項目 値 C&Cサーバー 45.77.129.213:443 バージョン v2.1[exe] アクティベーションコード ncc その後、C&Cサーバーにアクセスし、 C&Cサーバーから受信したコマンドが14(コマンド制御のアクティ ベート)で、さらにそのコンテンツがConfigデータのアクティベーションコードと一致している場合、バッ クドアとしてのコマンド受信処理が有効化されます。 C&Cサーバーとのアクセスは独自のTCP通信を行 い、TCPペイロードは以下のような形式になっています。 TCPペイロードは、8バイトのSIZEフィールドと暗号化されたDATAフィールドで構成されています。SIZE フィールドは、DATAフィールドの長さを10進数の文字で記載し、無効な桁数は文字「x」で表した、ユニ ークな値となっています。 DATAフィールドはAESによって暗号化されています。鍵とIVは以下のとおりです。 ----- 項目 値 鍵 981511371412780969AFC3AB20720187 09A83A3332466A8B56FF3FAB8E6C3DAA IV 2042123224315117031B1A0A3CCDA53F 暗号化されたDATAフィールドを復号すると、以下のような構造になっています。 復号されたDATAフィールドには、C&Cサーバーからのコマンドとそのコマンドに関連するコンテンツが含 まれています。AESはブロック暗号方式であるため、コンテンツの長さに応じて末尾にPaddingは追記され ています。また、先頭8バイトはコマンドとコンテンツの長さを表していますが、TCPペイロードのSIZEフ ィールドと同じ表記方式が使用されています。 実装・観測されているコマンドとその機能は以下のとおりです。使用されるコマンドの値はv1と大きく異な っていますが、コマンドの機能は概ね同じ内容で構成されています。 **Command** **Function** 2, 29 リモートシェルの起動 3 リモートシェル上でのOSコマンドの実行(マルチバイト) 4 リモートシェル上でのOSコマンドの実行(ASCII) 5 ディスク情報の送信 6 ファイルリストの送信 8 プログラムの実行 10 ファイルやフォルダの削除 12 感染端末からのファイルのダウンロード 14 コマンド制御のアクティベート ----- 15, 17 感染端末へのファイルのアップロード 19 プロセスリストの送信 21 プロセスの停止 22 何もしない 23 ファイルのコピー 26 ファイルの移動 ## ツール nccTrojanはv1でもv2でも、C&Cサーバーと通信する際のデータはエンコードされています。v1は単純な XORであるため復号は容易ですが、v2は多少複雑な構造となっています。そこで、私達はv2のトラフィッ クをデコードして内容をパースするツールを作成しました。関連するマルウェアの解析やインシデント調査 にご活用ください。 [ダウンロード](https://www.nttsecurity.com/ja-jp/Resources) ページの「C&C Traffic Decryption Tools for Tmanger/nccTrojan」からダウンロードいただけ ます。 ## さいごに nccTrojanはv1もv2も両方とも、現在でも継続して開発が続いており、使用されているRATです。ロシアや モンゴルなどの航空・軍事組織に対する攻撃で多用されていますが、Tmangerのように他の攻撃グループと 共有する可能性があります。今後も引き続き警戒していく必要があるでしょう。 ## IOC ### C&Cサーバー custom.songuulcomiss[.]com (103[.]106.250.239) 95[.]179.131.29 45[.]77.129.213 news.niiriip[.]com (51[.]89.133.251) ### ファイル情報 **Version** **SHA256** **PDB** N/A 21d1324c4ff4d68453d6745a1467ef3a cf8a853052e3425d12ad85c9b631f968 N/A ----- 1.6 4c22eb33aa1d10511eaf8d13098e2687 e44eaebc5af8112473e28acedac34bea 2.1 4651c51c86e4fc1a2bcad81936970ea5 49742a89316fa28e26433e94a8f13b66 2.2 3be516735bafbb02ba71d56d35aee8ce 2ef403d08a4dc47b46d5be96ac342bc9 ## 参考文献 C:\Users\abc\Desktop\cTrojan\1.6\HK\Release\Microsoft Synchronization Manager.pdb C:\Users\abc\Desktop\cTrojan\2.1\HK\Release\Client.pdb C:\Users\abc\Desktop\cTrojan\2.2\HK\Release\Client.pdb [1] [NTT Security Japan, Panda’s New Arsenal: Part 1 Tmanger](https://insight-jp.nttsecurity.com/post/102gi9b/pandas-new-arsenal-part-1-tmanger) [2] [NTT Security Japan, Panda’s New Arsenal: Part 2 Albaniiutas](https://insight-jp.nttsecurity.com/post/102gkfp/pandas-new-arsenal-part-2-albaniiutas) [3] [NTT Security Japan, Panda’s New Arsenal: Part 3 Smanager](https://insight-jp.nttsecurity.com/post/102glv5/pandas-new-arsenal-part-3-smanager) [4] [VB2020 localhost, Operation LagTime IT: colorful Panda footprint](https://vblocalhost.com/conference/presentations/operation-lagtime-it-colourful-panda-footprint/) -----