- Cisco Talos は CERT.NGOと協力して、Turla APT が使用する新たな悪意のあるコンポーネントを発見しました。この新たな発見により、以前に公開した侵害に利用された WordPress サーバーに展開されたコマンド & コントロール(C2)スクリプトの内部動作が判明しました。
- また、Talos は、感染したエンドポイントにコマンドを発行するために TinyTurla-NG(TTNG)バックドアのオペレータによって実行された侵害後の活動についても明らかにしました。TTNG に対して発行された 3 つの異なる PowerShell コマンドのセットが発見され、攻撃者が関心を持つと判断したファイルを列挙、ステージング、および流出させたことが確認されました。
- また、最初のインプラントである TinyTurla-NG を介して展開された別の 3 つの悪意のあるモジュールによってアクセスを維持し、任意のコマンド実行とログイン情報収集を行っていることも確認されました。
- これらのコンポーネントの 1 つは、オープンソースの攻撃フレームワークである Chisel のエージェント/クライアントを修正したものです。このコンポーネントを使用して別の C2 サーバーと通信し、感染したシステム上で任意のコマンド実行を行います。
- この攻撃で使用された Chisel クライアントの証明書分析によると、Chisel のインプラントの別の修正版(類似した別の証明書を使用している)が作成された可能性が高いことが示されています。この評価は今回の、攻撃で Turla が TinyTurla-NG、TurlaPower-NG などの PowerShell ベースのスクリプトを含む複数のマルウェアファミリの亜種を使用していたことと一致しています。
Talos は CERT.NGO と協力して、以前に公開した侵害において Turla APT が使用した新たな悪意のあるコンポーネントを発見しました。また、継続的な調査により、着信リクエストの処理や、侵害された C2 サーバーをオペレータがリモートで管理できるようにする WebShell コンポーネントなど、C2 スクリプトの内部動作の詳細も明らかになりました。
C2 サーバーの分析
コマンド&コントロール(C2)コードは PHP ベースのスクリプトで、2 つの役割があります。ひとつは TinyTurla-NG インプラントのハンドラー、もう一つは Turla オペレータが侵害された C2 サーバー上でコマンド実行できるようにする Web シェルです。Talos が入手した C2 スクリプトは、TinyTurla-NG(TTNG)および TurlaPower-NG インプラントを補完するもので、感染したシステム上で実行ファイルを配信し、管理コマンドを実行します。
ロードされると、PHP ベースの C2 スクリプトは複数のアクションを実行し、TTNG バックドアを提供するためのファイル構造を作成します。リクエストを受信すると、C2 スクリプトはまずロギングディレクトリが存在するかどうかをチェックし、存在しない場合は作成します。次に、特定の COOKIE ID をチェックします。COOKIE ID が存在し、ハードコードされた値と一致した場合、C2 スクリプトは Web シェルとして動作します。
このスクリプトは、$_COOKIE(認証用の COOKIE ID と混同しないでください)エントリの値を base64 で復号化し、C2 サーバー上でコマンドとして実行します。これらのコマンドは、exec()、passthru()、system()、または shell_exec() 関数のいずれかを使用して実行されます。また、指定された変数がリソースであるかどうかをチェックし、その内容を読み取ります。アクションが完了すると、出力またはリソースがリクエスト送信者に送信され、PHP スクリプトの実行が停止します。
C2 スクリプトの Web シェル機能
C2 サーバーへの HTTP リクエストに「id」が指定されている場合、スクリプトはこれを TTNG や TurlaPower-NG などのインプラントとの通信として扱います。「id」パラメータは、TTNG および TurlaPower-NG インプラントが C2 との通信中に渡す変数と同じもので、C2 サーバー上にロギングディレクトリも作成します。「id」に付随する次のフォーム値に応じて、C2 は以下のアクションを実行します。
- “task“:リクエスタから送信された内容を「<id>/tasks.txt 」ファイルに書き出し、 リクエスト送信者の IP アドレスとタイムスタンプを「<id>/_log.txt」に記録します。このファイルの内容は、「gettask」リクエストに応答してリクエスト送信者に送信されます。攻撃者はこのメカニズムを使用して、各 C2 が配置されたバックドアに送信して感染したエンドポイントで実行する必要のあるタスク/コマンドのリストに、タスクを追加します。
- “gettask“:感染したエンドポイント上で実行する新しいコマンドの要求した感染したシステムに対し、「<id>/tasks.txt」ファイルの内容を送信します。
- “result“:HTTP(S)フォームの内容を取得して「<id>/result.txt」ファイルに記録します。C2 はこのメカニズムを使用して、感染したエンドポイント上で TTNG バックドアによって実行されたコマンドの出力を取得し、ディスク上のファイルに記録します。
- “getresult“:C2 サーバーから「<id>/result.txt」ファイルの内容を取得します。攻撃者はこれを使用し、C2 サーバーにアクセスせずに、感染したエンドポイントで実行されたコマンドの結果を取得します。
- “file” + “name“:C2 サーバーに送信されたファイルの内容の全部または一部を、HTTP フォームで指定されたのと同じ「name」で C2 サーバー上で指定されたファイルに保存します。
- “cat_file“:リクエスト送信者が C2 サーバー上で指定したファイルの内容を読み取り、その内容を応答します。
- “rm_file“:リクエスト送信者が指定したファイルを C2 サーバーから消去/削除します。
C2 スクリプトのリクエスト処理ロジック
C2 サーバーによって受け取った HTTP フォームの値 task、cat_file、rm_file、get_result、およびそれらに対応する C2 サーバー操作から、これらの値が「攻撃者が C2 サーバーにログインせずにリモートから C2 サーバーに新しいコマンドを入力し、C2 サーバーが収集した重要な情報を取得できるようにする」という運用の仕組みの一部を担っていることがわかります。これまでに発見されたすべての C2 サーバーは攻撃者が所有しているものではなく、攻撃者が侵害した Web サイトであることを考えると、これは運用上、攻撃者にとって有益な戦術です。SSH のような他の手段でサーバーに対して再エクスプロイトまたはアクセスすることなく、正当なトラフィックを装ってシンプルに HTTPS で通信して、侵害された C2 サーバーのフィンガープリントを増やせるのは、Turla のオペレータにとってメリットになります。
この戦術は図解すると次のようになります。
TinyTurla-NG をインストルメントして侵害後のアクティビティを実行
攻撃者は TinyTurla-NG を使用して追加の偵察を行い、感染したエンドポイント上の目的のファイルを列挙して、これらのファイルを流出させます。ここで TTNG に対して 3 つの異なるモジュール型 PowerShell コマンドを発行しました。
- 偵察のコマンド:このコマンドを使用して、オペレータが指定したディレクトリ内のファイルを列挙します。ディレクトリ内のファイルリストはオペレータに返され、関心のあるファイルで流出させることができるものを選ぶために使われます。
PowerShell スクリプト/コマンドは、C2 が指定した 4 つの場所のファイルを列挙し、結果を C2 に返します。
- ファイルをコピーするコマンド: 感染したシステムに対して Base64 エンコードされたコマンド/スクリプトを発行し、目的のファイルを元の場所から一時ディレクトリ(通常は C:\windows\temp\)にコピーさせます。
PowerShell スクリプトによる中間場所へのファイルのコピー
- データ漏えいのコマンド/スクリプト(TurlaPower-NG):これらのスクリプトを使用して、選択したファイルを最終的に C2 サーバーに流出させます。
列挙、コピー、およびデータ漏えいのタスクで使用されるスクリプトには、Turla が関心を持つファイルやフォルダのパスがハードコードされています。これらの場所は、ポーランドの NGO が日常業務を遂行するために使用し、管理しているファイルや文書で構成されていました。攻撃者はこれらのスクリプトを使用して Firefox のプロファイルデータも流出させていました。これは、Turla がデータの漏えいだけでなくログイン情報の収集も試みていたという Talos の評価を強く裏付けています。
上記のスクリプトを組み合わせれば、Tinyturla-NG だけでも、感染したシステム上でさまざまな不正行為を行うことは十分に可能ですが、攻撃者は悪意のある操作を支援するため、さらに以下の 3 つのツールを展開することにしました。
- Chisel:Chisel クライアント/エージェントのコピーを修正したもの。
- ログイン情報収集スクリプト:Google Chrome または Microsoft Edge の保存されたログインデータを窃取する PowerShell ベースのスクリプト。
- 昇格した特権でコマンドを実行するツール:親プロセスが指定した任意のコマンドを実行しながら、指定したプロセスの特権レベルになりすますバイナリ。
TTNG が展開された後の全体的な感染活動は以下のようになります。
永続的アクセスのもう一つの手段として Chisel を使用
Talos の調査により、PowerShell ベースのファイル抽出ツールである TurlaPower-NG とは別に、感染したシステム上に別のインプラントも展開されていることが判明しました。GoLang ベースのオープンソースのトンネリングツール Chisel のコピーを修正したもので、C:\Windows\System32\TrustedWorker[.]exe に保存されています。
修正された Chisel マルウェアは、Go バイナリによく見られるように UPX 圧縮されており、C2 URL、ポート、通信証明書、秘密キーがマルウェアサンプルに組み込まれる形で含まれています。これらのアーティファクトを復号すると、R:5000:socks という設定で C2 への SOCKS によるリバースプロキシ接続を作成します。
プロキシの内容は次のとおりです。
- “R”:リモートポート転送の略。
- “5000”:攻撃者のマシン上のポート。感染したシステムからの接続を受信します。
- “socks”:SOCKS プロトコルの使用を指定します。
(Chisel の socks リモートのデフォルトのローカルホストとポートは 127[.]0[.]0[.]1:1080 です)。
Chisel サンプルがアクセスする C2 サーバーは 91[.]193[.]18[.]120:443 です。
TLS 構成は、クライアントの TLS の証明書とキーペアで構成されています。証明書の有効期間は、2023 年 12 月 7 日~2024 年 12 月 16 日です。この有効期間は、攻撃が 2023 年 12 月に開始されたという Talos の評価と一致します。証明書の発行者名は「dropher[.]com」で、サブジェクト名は「blum[.]com」です。
Turla が使用した Chisel マルウェアの TLS 証明書
データ分析中に、別の証明書も確認されました。Talos はこれを Turla のオペレータが生成した可能性が高いと評価しましたが、これが間違いであったのか、またはこの証明書を Chisel インプラントの別の修正版に使用する意図であったのかは不明です。
証明書発行者の DN
新しい証明書も発行者は同じですが、この場合、共通名が blum[.]com で、シリアル番号は 0x1000 です。この証明書は、修正された Chisel クライアント/エージェントで使用された証明書の 1 秒前に生成されました。
昇格されたプロセスの実行とログイン情報収集のための追加ツール
Turla は、感染したシステム上で悪意のある操作を支援するために、さらに 2 つのツールを展開しました。1 つはシステム上で任意のコマンドを実行するためのもので、もう一つは Microsoft Edge ブラウザのログインデータを盗むためのものです。
1 つ目のツールは小さくてシンプルな Windows 実行ファイルで、既存の別のプロセスの特権レベルになりすますことで、システム上に新しいコマンドラインプロセスを作成するためのものです。このツールは、なりすますプロセスの特権レベルを表す標的のプロセス識別子(PID)と、実行する必要のあるコマンドラインを受け取ります。その後、新しい cmd[.]exe が生成され、これを使用して、感染したエンドポイント上で任意のコマンドが実行されます。このバイナリは 2022 年の初めにコンパイルされており、Turla による以前の攻撃で使用された可能性が高いと思われます。
このツールには、埋め込みの cmd[.]exe コマンドラインが含まれています。
Talos が発見した 2 つ目のツールは、次の場所に存在する PowerShell スクリプトです。
C:\windows\system32\edgeparser.ps1
このスクリプトを使用して、次の場所にある Microsoft Edge のログインデータを見つけます。
%userprofile%\AppData\Local\Microsoft\Edge\User Data\Default\Login Data
このデータファイルと、エンドポイントから抽出されたログインデータに対応する復号キーは、次のディレクトリに ZIP ファイルとしてアーカイブされます:C:\windows\temp\<filename>.zip。
このスクリプトを使用して Google Chrome のログイン情報を取得することもできますが、以下の場所のログインデータを解析するように変更されています。
%userprofile%\AppData\Local\Microsoft\Edge
キーとログインデータを取得し、流出の目的でアーカイブに追加する PowerShell
TTNG は特権昇格ツールを使用し、以下のコマンドを使用して PowerShell スクリプトを実行します。
"C:\Windows\System32\i.exe" _PID_ "powershell -f C:\Windows\System32\edgeparser.ps1"
この結果、ツールはコマンドラインで新しいプロセスを生成します。
C:\Windows\System32\cmd.exe /c "powershell -f C:\Windows\System32\edgeparser.ps1"
カバレッジ
今回の脅威は、以下の製品で検出してブロックすることが可能です。
Cisco Secure Endpoint(旧 AMP for Endpoints)は、この記事で説明したマルウェアの実行を阻止するのに最適です。Cisco Secure Endpoint の無料トライアルはこちらからお申し込みください。
Cisco Secure Web Appliance の Web スキャンは、悪意のある Web サイトへのアクセスを防止し、上述したような攻撃で使用されるマルウェアを検出します。
Cisco Secure Email(旧 E メールセキュリティ)は、攻撃の一環として攻撃者が送りつける不正な電子メールをブロックします。Cisco Secure Email の無料トライアルはこちらからお申し込みください。
Threat Defense Virtual、適応型セキュリティアプライアンス、Meraki MX など、Cisco Secure Firewall(旧次世代ファイアウォールおよび Firepower NGFW)アプライアンスは、この脅威に関連する悪意のあるアクティビティを検出できます。
Cisco Secure Malware Analytics(Threat Grid)は、悪意のあるバイナリを特定し、シスコのすべてのセキュリティ製品に保護機能を組み込みます。
Umbrella(シスコのセキュア インターネット ゲートウェイ(SIG))は、社内ネットワークの内外で悪意のあるドメイン、IP、URL への接続をブロックします。Umbrella の無料トライアルはこちらからお申し込みください。
Cisco Secure Web Appliance(旧 Web セキュリティアプライアンス)は、危険性のあるサイトを自動的にブロックし、ユーザーがアクセスする前に疑わしいサイトを検査します。
特定の環境および脅威データに対する追加の保護機能は、Firewall Management Center から入手できます。
Cisco Duo は、ユーザーに多要素認証を提供し、承認されたユーザーのみがネットワークにアクセスできるようにします。
オープンソースの Snort サブスクライバルールセットをお使いであれば、Snort.org で購入可能な最新のルールパックをダウンロードすることで、最新状態を維持できます。
IOC
この調査の IOC は、こちらの GitHub リポジトリでも提供しています。
ハッシュ
267071df79927abd1e57f57106924dd8a68e1c4ed74e7b69403cdcdf6e6a453b
d6ac21a409f35a80ba9ccfe58ae1ae32883e44ecc724e4ae8289e7465ab2cf40
ad4d196b3d85d982343f32d52bffc6ebfeec7bf30553fa441fd7c3ae495075fc
13c017cb706ef869c061078048e550dba1613c0f2e8f2e409d97a1c0d9949346
b376a3a6bae73840e70b2fa3df99d881def9250b42b6b8b0458d0445ddfbc044
ドメイン
hanagram[.]jp
thefinetreats[.]com
caduff-sa[.]ch
jeepcarlease[.]com
buy-new-car[.]com
carleasingguru[.]com
IP アドレス
91[.]193[.]18[.]120
本稿は 2024 年 02 月 22 日に Talos Group のブログに投稿された「TinyTurla-NG in-depth tooling and command and control analysis」の抄訳です。