インビジブルマイナー:GHOSTENGINEの暗号マイニング事業の公開

Elastic Security Labsは、複数の悪意のあるモジュールを組み込み脆弱なドライバーを利用して、クリプトマイニングの既知のセキュリティソリューション (EDR) を無効にする侵入セットであるREF4578を特定しました。

25分で読めます攻撃パターン
見えないマイナー:GHOSTENGINEのクリプトマイニング事業を公開

前文

Elastic Security Labsは、複数の悪意のあるモジュールを組み込み、脆弱なドライバーを利用して暗号マイニングの既知のセキュリティソリューション(EDR)を無効にする侵入セットを特定しました。 さらに、チームは永続性を確立し、これまで文書化されていなかったバックドアをインストールし、暗号マイナーを実行する機能を発見しました。 この侵入セットを REF4578 U と呼び、プライマリ ペイロードを GHOSTENGINE と呼んでいます (Antiy のチームによる接線研究では、この侵入セットの一部を HIDDENSHOVEL と名付けています)。

重要なポイント

  • マルウェアの作成者は、多くの不測の事態と重複のメカニズムを組み込んでいました
  • GHOSTENGINEは、脆弱なドライバーを活用して、デプロイされた有名なコインマイナーに干渉する可能性のある既知のEDRエージェントを終了および削除します
  • このキャンペーンには、XMRIGマイナーのインストールと永続性の両方を確保するために、非常に複雑な量が含まれていました

コード分析

On May 6, 2024, at 14:08:33 UTC, the execution of a PE file named Tiworker.exe (masquerading as the legitimate Windows TiWorker.exe file) signified the beginning of the REF4578 intrusion. The following alerts were captured in telemetry, indicating a known vulnerable driver was deployed.

実行すると、このファイルは、侵入の実行フロー全体を調整する PowerShell スクリプトをダウンロードして実行します。 分析の結果、このバイナリはハードコードされたPowerShellコマンドラインを実行して難読化されたスクリプトを取得し、 get.png, 、以下のスクリーンショットに示すように、攻撃者C2からさらにツール、モジュール、および構成をダウンロードするために使用されることが明らかになりました。

GHOSTENGINE

GHOSTENGINEは、マシン上のモジュールを取得して実行する責任があります。 主に HTTP を使用して、構成されたドメインからファイルをダウンロードし、ドメインが利用できない場合のバックアップ IP を使用します。 さらに、資格情報が埋め込まれたセカンダリプロトコルとしてFTPを採用しています。 以下は、実行フローの概要です。

このスクリプトは、 clearn.pngをダウンロードして実行します。これは、同じファミリーで異なるキャンペーンに属する以前の感染の残骸をシステムからパージするように設計されたコンポーネントです。 C:\Program Files\Common Files\System\adoC:\PROGRA~1\COMMON~1\System\ado\ の下にある悪意のあるファイルを削除し、次のスケジュールされたタスクを名前で削除します。

  • Microsoft Assist Job
  • System Help Center Job
  • SystemFlushDns
  • SystemFlashDnsSrv

これらのスケジュールされたタスクアーティファクトの証拠は、以前の感染の指標である可能性があります。

実行中に、Windows Defender を無効にし、次の Windows イベント ログ チャネルを消去しようとします。

  • Application
  • Security
  • Setup
  • System
  • Forwarded Events
  • Microsoft-Windows-Diagnostics-Performance
  • Microsoft-Windows-AppModel-Runtime/Operational
  • Microsoft-Windows-Winlogon/Operational

get.png Windows Defender を無効にし、リモート サービスを有効にし、次の内容をクリアします。

  • C:\Windows\Temp\
  • C:\Windows\Logs\
  • C:\$Recycle.Bin\
  • C:\windows\ZAM.krnl.trace

get.png また、 C:\ ボリュームにファイルをダウンロードするための少なくとも 10 MB の空き領域があることを確認し、ファイルを C:\Windows\Fonts. そうでない場合は、十分なスペースを持つ別の適切なボリュームを探して、 $RECYCLE.BIN\Fontsの下にフォルダを作成する前に、システムから大きなファイルを削除しようとします。

C2ドメイン名の現在のDNS解決を取得するために、GHOSTENGINEはDNSサーバー、 1.1.1.1 、および 8.8.8.8のハードコードされたリストを使用します。

次に、永続性を確立するために、 get.png は次のスケジュールされたタスクを次のように作成します SYSTEM

  • OneDriveCloudSyncmsdtc を使用して悪意のあるサービス DLL C:\Windows\System32\oci.dll を 20 分ごとに実行する (後述)
  • DefaultBrowserUpdate を実行して C:\Users\Public\run.bat, を実行すると、 get.png スクリプトをダウンロードして 60 分ごとに実行します。
  • OneDriveCloudBackup は 40 分ごとにC:\Windows\Fonts\smartsscreen.exeを実行します

get.png すべての curl.exe プロセスと、コマンド ラインに *get.png* が含まれるすべての PowerShell プロセス (現在のプロセスを除く) を終了します。 これは、マルウェアの同時に実行中のインスタンスを終了する方法です。

次に、このスクリプトは、取得した PE ファイルのハッシュを含む JSON ファイルを config.txtにダウンロードします。 このファイルは、過去の感染から以前にダウンロードされたファイルのハッシュをチェックすることにより、更新されたバイナリをダウンロードするかどうかを確認します。

最後に、 get.png はすべてのモジュールとさまざまな PE ファイルをダウンロードします。 次の表に、ダウンロードした各ファイルの説明を示します。

パスタイプ説明
C:\Windows\System32\drivers\aswArPots.sysカーネルドライバーアバストの脆弱なドライバー
C:\Windows\System32\drivers\IObitUnlockers.sysカーネルドライバーIObitの脆弱なドライバー
C:\Windows\Fonts\curl.exePE 実行可能ファイルcURL経由でファイルをダウンロードするために使用されます
C:\Windows\Fonts\smartsscreen.exePE 実行可能ファイルコアペイロード(GHOSTENGINE)は、その主な目的は、セキュリティ機器を非アクティブ化し、初期感染を完了し、マイナーを実行することです。
C:\Windows\System32\oci.dllサービス DLLPersistence/updates module
backup.pngPowershell スクリプトBackdoor module
kill.pngPowershell スクリプトセキュリティ センサーの強制終了を担当する PE ファイルを挿入して実行する PowerShell スクリプト

GHOSTENGINEモジュール

GHOSTENGINEは、セキュリティツールを改ざんしたり、バックドアを作成したり、ソフトウェアの更新をチェックしたりできるいくつかのモジュールをデプロイします。

EDRエージェントコントローラおよびマイナーモジュール:smartsscreen.exe

このモジュールは、主に、クリプトマイナーをダウンロードしてインストールする前に、アクティブなEDRエージェントプロセスを終了します。

このマルウェアは、実行中のすべてのプロセスをスキャンして、既知のEDRエージェントのハードコードされたリストと比較します。 一致するものがある場合は、まず IOCTL 0x7299C004と共にaswArPots.sysされたアバスト アンチルートキット ドライバー ファイルを利用してセキュリティ エージェントを終了し、PID によってプロセスを終了します。

smartscreen.exe 次に、IObit から iobitunlockers.sys された別の脆弱なドライバーを含むセキュリティ エージェント バイナリを削除するために使用されます。IOCTL 0x222124.

smartscreen.exe 次に、XMRigクライアントマイニングプログラム(WinRing0x64.png)をC2サーバーからダウンロードします taskhostw.png。 最後に、XMRig、そのドライバー、および構成ファイル config.jsonを実行し、マイニングプロセスを開始します。

Update/Persistence module: oci.dll

PowerShell スクリプトは、msdtcによって読み込まれたファントム DLL であるサービス DLL (oci.dll) を作成します。DLL のアーキテクチャはマシンによって異なります。32 ビットまたは 64 ビットにすることができます。 その主な機能は、C2から get.png スクリプトをダウンロードして実行することにより、システムの永続性を作成し、C2サーバーから更新をダウンロードすることです。

msdtc サービスが開始されるたびに、oci.dll が読み込まれ、get.png を実行する PowerShell ワンライナーが生成されます。

EDRエージェント終了モジュール: kill.png

kill.png は、現在のプロセスにシェルコードを挿入し、PEファイルを復号化してメモリにロードするPowerShellスクリプトです。

このモジュールは C++ で書かれており、著者はその操作に冗長性を統合しています。 この冗長性は、 smartsscreen.exe でEDRエージェントバイナリを終了および削除するために使用された手法の複製で明らかです。新しいプロセスを継続的にスキャンします。

Powershellバックドアモジュール: backup.png

PowerShellスクリプトはバックドアのように機能し、システム上でのリモートコマンド実行を可能にします。 Base64 でエンコードされたコマンドを待っている間、現在の時刻とコンピューター名から派生した一意の ID を含む Base64 でエンコードされた JSON オブジェクトを継続的に送信します。 これらのコマンドの結果は、その後送り返されます。

この例では、Base64 でエンコードされた JSON オブジェクトが eyJpZCI6IjE3MTU2ODYyNDA3MjYyNiIsImhvc3QiOiJhbmFseXNpcyJ9 です。

$ echo "eyJpZCI6IjE3MTU2ODYyNDA3MjYyNiIsImhvc3QiOiJhbmFseXNpcyJ9" | base64 -D
{"id":"171568624072626","host":"analysis"}

マイナーの構成

XMRigは正当な暗号マイナーであり、構成ファイルの使用方法と要素を ここに文書化しています。 本書の冒頭で述べたように、REF4578侵入セットの最終的な目標は、環境にアクセスし、永続的なMonero暗号マイナーであるXMRigをデプロイすることでした。

マイナーから設定ファイルを抽出したところ、Monero Payment IDのレポートを作成し、ワーカーとプールの統計、マイニングされた暗号通貨、トランザクションID、出金を追跡することができ、非常に価値がありました。

以下は、REF4578 XMRig 設定ファイルからの抜粋です。

{
    "autosave": false,
    "background": true,
    "colors": true,

...truncated...

    "donate-level": 0,
    "donate-over-proxy": 0,
    "pools": [
        {
            "algo": "rx/0",
            "coin": "monero",
            "url": "pool.supportxmr[.]com:443",
            "user": "468ED2Qcchk4shLbD8bhbC3qz2GFXqjAUWPY3VGbmSM2jfJw8JpSDDXP5xpkMAHG98FHLmgvSM6ZfUqa9gvArUWP59tEd3f",
            "keepalive": true,
            "tls": true

...truncated...

    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36",
    "verbose": 0,
    "watch": true,
    "pause-on-battery": false,
    "pause-on-active": false
}

Monero支払いID

Moneroは、匿名性とプライバシーを確保するために難読化と代替可能性に焦点を当てたブロックチェーン暗号通貨です。 Payment IDは、 32 バイト(64桁の16進数)または 8 バイト(統合アドレスの場合)で構成される任意のオプションのトランザクションアタッチメントです。

上記の構成の抜粋(468ED2Qcchk4shLbD8bhbC3qz2GFXqjAUWPY3VGbmSM2jfJw8JpSDDXP5xpkMAHG98FHLmgvSM6ZfUqa9gvArUWP59tEd3f)の支払いIDを使用して、構成にリストされている Moneroマイニングプールサイトの1つのワーカーとプールの統計を表示できます。

さらに、トランザクションハッシュを見ることができ、Moneroブロックチェーンエクスプローラーで調べることができます。 取引は4か月前にさかのぼりますが、これはこの特定の労働者とアカウントによる 潜在的な 金銭的利益を示しているだけであることに注意してください。

Blockchain ExplorerとPayment IDから取得した トランザクションハッシュ の1つを使用して、公開鍵、引き出しられた金額、およびいつ引き出されたかを確認できます。 これらの公開鍵は、ワンタイムアドレス、または敵対者が資金のロックを解除するために秘密鍵を使用するステルスアドレスで使用されることに注意してください。

In the above example for transaction 7c106041de7cc4c86cb9412a43cb7fc0a6ad2c76cfdb0e03a8ef98dd9e744442 we can see that there was a withdrawal of 0.109900000000 XMR (the abbreviation for Monero) totaling $14.86 USD. The Monerao Mining Pool site shows four transactions of approximately the same amount of XMR, totaling approximately $60.70 USD (January - March 2024).

この調査の公開時点では、REF4578 Payment IDに接続されたアクティブなマイナーがまだいます。

この特定の支払いIDは大きな稼ぎ手ではないように見えますが、REF4578この侵入セットをうまく操作できることは明らかです。 このキャンペーンの他の被害者は、侵入を追跡するために異なる支払いIDを使用している可能性があり、それらを組み合わせることで、全体的な収集量を増やすことができます。

マルウェアと MITRE ATT&CK

Elasticは、 MITRE ATT&CK フレームワークを使用して、脅威がエンタープライズネットワークに対して使用する一般的な戦術、手法、手順を文書化します。

戦術(Tactics)

戦術は、テクニックまたはサブテクニックの理由を表します。 それは敵の戦術的な目標であり、行動を実行する理由です。

手法

手法は、敵対者がアクションを実行することによって戦術的な目標を達成する方法を表します。

GHOSTENGINE の軽減

検知

GHOSTENGINEマルウェアの最初の目的は、エンドポイントセキュリティソリューションを無力化し、プロセスの作成とサービス登録を記録するセキュリティログやシステムログなどの特定のWindowsイベントログを無効にすることです。 したがって、これらの初期アクションの検出と防止に優先順位を付けることが重要です。

  • 不審なPowerShell実行
  • 通常とは異なるディレクトリからの実行
  • システム整合性への特権の昇格
  • 脆弱なドライバーをデプロイし、関連するカーネル モード サービスを確立します。

脆弱なドライバーがロードされると、検出の機会は大幅に減少し、組織はSIEMへのログの送信を停止する侵害されたエンドポイントを見つける必要があります。

DNS レコードの検索が HTTP (80) や HTTPS (443) などの既知のポートを介して既知のマイニング プール ドメインを指している場合、ネットワーク トラフィックが生成され、識別可能になる可能性があります。Stratum は、デフォルトでポート 4444を介して、マイナー向けの別の一般的なネットワーク プロトコルでもあります。

この侵入セットの分析により、次の検出ルールと動作防止イベントが明らかになりました。

予防

悪意のあるファイルの防止:

シェルコードインジェクションの防止:

脆弱なドライバーファイル作成防止(Windows.VulnDriver.ArPot および Windows.VulnDriver.IoBitUnlocker )

ヤラ

Elasticセキュリティは、このアクティビティを識別するためのYARAルールを作成しました。

観測

すべてのオブザーバブルは、ECS形式とSTIX形式の両方で ダウンロード することもできます。

この研究では、次の観測量について議論しました。

Observableタイプ名前参考
2fe78941d74d35f721556697491a438bf3573094d7ac091b42e4f59ecbd25753SHA-256のC:\Windows\Fonts\smartsscreen.exeGHOSTENGINE EDRコントローラーモジュール
4b5229b3250c8c08b98cb710d6c056144271de099a57ae09f5d2097fc41bd4f1SHA-256のC:\Windows\System32\drivers\aswArPots.sysアバストの脆弱なドライバー
2b33df9aff7cb99a782b252e8eb65ca49874a112986a1c49cd9971210597a8aeSHA-256のC:\Windows\System32\drivers\IObitUnlockers.sysIobit の脆弱なドライバー
3ced0552b9ecf3dfecd14cbcc3a0d246b10595d5048d7f0d4690e26ecccc1150SHA-256のC:\Windows\System32\oci.dllアップデート/永続化モジュール (64 ビット)
3b2724f3350cb5f017db361bd7aae49a8dbc6faa7506de6a4b8992ef3fd9d7abSHA-256のC:\Windows\System32\oci.dllアップデート/永続化モジュール (32 ビット)
35eb368c14ad25e3b1c58579ebaeae71bdd8ef7f9ccecfc00474aa066b32a03fSHA-256のC:\Windows\Fonts\taskhostw.exeマイナークライアント
786591953336594473d171e269c3617d7449876993b508daa9b96eedc12ea1caSHA-256のC:\Windows\Fonts\config.jsonマイナー設定ファイル
11bd2c9f9e2397c9a16e0990e4ed2cf0679498fe0fd418a3dfdac60b5c160ee5SHA-256のC:\Windows\Fonts\WinRing0x64.sysマイナードライバー
aac7f8e174ba66d62620bd07613bac1947f996bb96b9627b42910a1db3d3e22bSHA-256のC:\ProgramData\Microsoft\DeviceSync\SystemSync\Tiworker.exe初期ステージャー
6f3e913c93887a58e64da5070d96dc34d3265f456034446be89167584a0b347eSHA-256のbackup.pngGHOSTENGINEバックドアモジュール
7c242a08ee2dfd5da8a4c6bc86231985e2c26c7b9931ad0b3ea4723e49ceb1c1SHA-256のget.pngGHOSTENGINEローダー
cc4384510576131c126db3caca027c5d159d032d33ef90ef30db0daa2a0c4104SHA-256のkill.pngGHOSTENGINE EDRターミネーションモジュール
download.yrnvtklot[.]comドメインC2サーバー
111.90.158[.]40IPv4-アドレスC2サーバー
ftp.yrnvtklot[.]comドメインC2サーバー
93.95.225[.]137IPv4-アドレスC2サーバー
online.yrnvtklot[.]comドメインC2サーバー

参照資料

上記の研究を通じて、以下のことが参照されました。

この記事を共有する