本記事は SOC アナリスト 小池 倫太郎 が執筆したものです。
はじめに
2023年2月にSteelCloverの攻撃が活発化していることを報告しました[1]が、2023年5月末から若干変則的な攻撃オペレーションが観測されており、それと連動するように2023年6月初頭から新たなマルウェアを観測し始めています。
今回新たにSteelCloverが使い始めたマルウェアを、私達はPowerHarborと呼んでいます。PowerShell製のモジュール型マルウェアであり、私達はブラウザなどからクレデンシャルを窃取するモジュールを観測しています。
私達はPowerHarborについてリサーチを行っていますが、本稿執筆時点では今回のSteelCloverの攻撃以外では痕跡を発見することができず、このマルウェアがSteelCloverオリジナルのものなのか、あるいは販売されている新種のマルウェアなのか、判断することができませんでした。いずれの場合にしても、PowerHarborに関する解析レポートは公開されていないと判断し、詳細な情報を共有するために本稿を公開します。
ダウンローダ
まず、SteelCloverはMSIXファイルのPSF(Package Support Framework)を使用して[2]、PowerHarborのダウンローダを実行させます。
ダウンローダはWin32_ComputerSystemProductクラスのUUIDを取得し、C&Cサーバへ送信します。ダウンローダで行われる送受信処理は全てハードコードされたXORキーを用いてエンコードされます。
![](https://cdn.sanity.io/images/1efpsj26/production/e0c028f62942003ba4599c59139330a459501e76-1219x225.png)
その後、何らかの判定(おそらく同一のUUIDに対して複数回攻撃を行わないためのチェック)が行われ、攻撃対象であると判断された場合はメインモジュールがダウンロード・実行されます。
![](https://cdn.sanity.io/images/1efpsj26/production/d6f7fded642e3638c585e3f69e8577072fc6b626-2078x331.png)
メインモジュール
メインモジュールはC&Cサーバと定常的に通信を行い、C&Cサーバから送られてきた追加モジュールを実行・削除します。このとき、C&Cサーバとの通信は、ハードコードされた鍵データを使ってRSA暗号で暗号化してやり取りされます。
![](https://cdn.sanity.io/images/1efpsj26/production/684697163223a880250883a7ae2a5530633a28fc-1505x790.png)
また、メインモジュールにはVM検知機能が存在します。ビデオコントローラやディスプレイ、ディスクなどの様々な情報を使って、VM上で実行されていないかチェックを行います。
![](https://cdn.sanity.io/images/1efpsj26/production/9149ac09c6a5ccd70397e96fb9e2c510b139a94e-958x1245.png)
StealDataモジュール
StealDataモジュールは、Invoke-Stealer関数を中軸とし、システム情報やブラウザに保存されたクレデンシャル、仮想通貨のウォレット情報、TelegramやFileZilla、WinSCPなど様々なアプリケーションのクレデンシャルを窃取します。
![](https://cdn.sanity.io/images/1efpsj26/production/13e6fb18ba2a788e59683b951b867ac68f54d34e-1899x1418.png)
窃取されたデータは、StealDataモジュールを受信したときに同梱されている公開鍵を使ってRSA暗号で暗号化され、C&Cサーバへ送信されます。そのため、トラフィックデータからはデータを復元することはできず、何が窃取されたのか知ることはできません。
![](https://cdn.sanity.io/images/1efpsj26/production/648fbdfc8ded1a78961e89dbceb6853e51e4aea9-1129x389.png)
Schedulerモジュール
SchedulerモジュールはPowerHarborを永続化するためのモジュールです。PowerHarborのダウンローダを $env:localappdata\WindowsPowerShell\ あるいは $env:userprofile\Documents\WindowsPowerShell の配下に Microsoft.PowerShell_profile.ps1 というファイル名で書き込み、HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders に新たなプロパティを追加し、タスクスケジュールに登録するなど、永続化を試みます。
![](https://cdn.sanity.io/images/1efpsj26/production/5f9e1bb8b80150fb55070b08fb3210169f877ab5-2447x1105.png)
GetBrowsersモジュール
GetBrowsersモジュールはインストールされているブラウザの情報を収集するモジュールです。これ単体では悪性挙動とは言えませんが、被害ユーザの統計情報を得る目的があると考えられ、今後の攻撃のための準備に関わるかもしれません。
![](https://cdn.sanity.io/images/1efpsj26/production/509b47e089535f2c212fdc555c74fe42260bda34-1190x633.png)
おわりに
本稿では、SteelCloverが新たに使い始めたPowerHarborというマルウェアについて紹介しました。PowerHarborはPowerShell製のモジュール型マルウェアであり、ブラウザなどのクレデンシャルを窃取するモジュールが実装されています。PowerHarborはモジュール型のため、今後情報窃取以外のモジュールが実装されることも考えられるため、今後増々注意が必要です。
IoC
- 190.14.37.245
参考文献
[1] NTTセキュリティ・ジャパン, "SteelCloverによるGoogle広告経由でマルウェアを配布する攻撃の活発化について", https://techblog.security.ntt/102i7af
[2] Twitter, "nao_sec", https://twitter.com/nao_sec/status/1630435399905705986