サイト内の現在位置

MEGA CMDによる情報盗み出し時の痕跡について

NECセキュリティブログ

2024年11月22日

NECサイバーセキュリティ戦略統括部 セキュリティ技術センターの大家です。

今回は、クラウドストレージサービス「MEGA」new window[1]のコマンドラインツール「MEGA CMD」new window[2]new window[3]による情報盗み出し(Exfiltration)が行われた際にマシンに残る痕跡を調査しました。
組織のネットワークに侵入した攻撃者は、情報を外部に盗み出す際に正規のクラウドストレージサービスを利用することがあります。その中でもMEGAは情報盗み出しによく使われる正規サービスの一つですnew window[4]。MEGA CMD実行の痕跡を理解しておくと、情報盗み出しの対策検討やフォレンジック実施の際に役に立つのではないかと思います。

目次

検証環境・シナリオ

今回の調査は、仮想環境上に構築したWindows 11 Pro(24H2)上で実施しました。使用したMEGA CMDのバージョンは1.7.0です。想定する状況と攻撃者の操作は以下のとおりです。

想定の状況

  • 攻撃者は情報盗み出しフェーズの目前
  • 盗み出すファイルはすでに一箇所にまとめてある状態

実行する操作

  • MEGA CMDのインストーラーを実行してインストールを行う
  • MEGA CMDを起動して、MEGAのアカウントにログインする
  • MEGA CMDを用いて、まとめておいたファイルをクラウドに一括アップロードする

なお、盗み出すファイルはランダムなデータを複数のファイルに適当に書き込んで作成しました。合計の容量は1,494,537,116バイトです。

図1 盗み出し用ファイル

情報盗み出しの実行

情報盗み出し時のマシンの挙動を記録しておくために、情報収集ツールであるNoribennew window[5]を起動しておきます。NoribenはProcess Monitornew window[6]の記録をわかりやすい形にまとめて出力してくれるツールです。

インストーラーを実行すると、MEGA CMDをすべてのユーザー向けにインストールするか、実行ユーザーのみにインストールするかを尋ねる表示がありましたが、今回は実行ユーザーのみにインストールしました。インストールはセットアップ画面に従って操作を進めると、難なく完了しました。

図2 MEGA CMDのインストール画面

インストールが完了すると、MEGA CMDを起動するかどうかを尋ねる画面が表示されたため、その流れでMEGA CMDを起動しました。

図3 MEGA CMDの起動画面

loginコマンドを実行し、MEGAのアカウントにログインします。

図4 MEGAアカウントへのログイン

putコマンドを実行し、クラウドストレージにファイルをアップロードします。アップロードが完了したことを確認したのち、MEGA CMDの画面を閉じました。

図5 外部転送実施

MEGA CMDの操作を行ったマシンとは別のマシンのブラウザから、MEGAのウェブページを確認してみます。想定どおりファイルがアップロードされていました。

図6 クラウドストレージのウェブ画面

痕跡の調査

一連の操作を終えたあと、Noribenを停止して出力結果を確認・整理しました。その結果を参考にしつつ、痕跡の調査を実施しました。

プロセス

インストーラー(MEGAcmdSetup64.exe)の実行後、インストーラーのプロセスからMEGAcmdShell.exeが起動し、MEGAcmdShell.exeがMEGAcmdServer.exeを起動していることがわかります。その他にアップデート関連のプロセスが起動するようです。

zoom拡大する
図7 プロセスの記録

ファイル生成

MEGA CMDのインストール先は「%LocalAppData%\MEGAcmd」であることが確認できます。

zoom拡大する
図8 インストール時のファイル生成の記録

また、スタートメニューとデスクトップにショートカットが作られることがわかります。

zoom拡大する
図9 ショートカットファイル生成の記録

MEGA CMD関連のコンフィグファイルや状態記憶用のファイルは「%LocalAppData%\MEGAcmd\.megaCmd」に保存されることがわかります。

zoom拡大する
図10 コンフィグ・状態記憶用のファイル生成の記録

実際のファイルの中身を確認してみます。

  • megaclient_statecache13_<英数字の文字列>.db
    SQLiteのDBファイルのようです。
zoom拡大する
図11 ファイル形式の判定

テーブルはnodesとstatecacheの2つで、nodesからはクラウド上のファイル情報が確認できます。

図12 nodesテーブルの内容
図13 nodesテーブルのスキーマ

statecacheの内容は可読性がありませんでした。

図14 statecacheテーブルの内容
  • megaclient_statecache13_status_<英数字の文字列>.db
    このファイルもSQLiteのDBファイルでしたが、内容に可読性はありませんでした。
図15 別のDBファイルの内容1
  • megaclient_statecache13_transfers_<英数字の文字列>.db
    同様にSQLiteのDBファイルでしたが、空のテーブルしかありませんでした。
図15 別のDBファイルの内容2
  • session
    セッショントークンと考えられる文字列が格納されていました。
図16 sessionファイルの内容

レジストリ

Amcacheハイブへの記録の様子が確認できます。

zoom拡大する
図17 Amcacheハイブへの記録の様子

AmcacheParsernew window[7]でAmcache.hveをパースして確認すると、ファイルのフルパス、SHA1ハッシュ値、実行日時などの情報が記録されていることがわかります。

zoom拡大する
図18 Amcacheのパース結果

アップデート用のタスクがタスクスケジュールに登録されていることがわかります。

zoom拡大する
図19 アップデート用のタスクスケジュールの様子

タスクスケジュールへの登録は、Autorunsnew window[8]の実行結果からも確認できます。

zoom拡大する
図20 Autorunsの結果

ネットワーク

MEGAcmdServer.exeから複数の宛先に対して通信が行われていることが確認できます。ファイルの送信はHTTPで行われているものと考えられます。アップデートの確認用とみられる通信も発生していました。

図21 通信の記録

プロセスの通信量がSRUMに記録されている可能性があります。SrumECmdnew window[7]を用いてSRUMをパースし、内容を確認したところ、通信量が確認できました。MEGAcmdServer.exeプロセスによる送信量は合計1,531,844,178バイトとなっていました。実際のファイルサイズは合計1,494,537,116バイトのため、概ね近い数値が記録されていることがわかります。

zoom拡大する
図22 SRUMに記録された通信量のパース結果

今回調査した内容は以上です。

まとめ

本記事では、MEGAのコマンドラインツールであるMEGA CMDによる情報盗み出し時の痕跡の調査結果を紹介しました。紹介した内容が、対策検討やフォレンジック実施の際の参考となれば幸いです。

参考文献

執筆者プロフィール

大家 政胤(おおや まさつぐ)
セキュリティ技術センター リスクハンティング・システムグループ

脆弱性診断、ペネトレーションテスト、インシデント対応に関する業務に従事。
CISSP、CCSP、GPEN、CHFI、RISSを保持。

執筆者の他の記事を読む

アクセスランキング