macOSのClickFix犯罪キットがPolygonスマートコントラクトを悪用しAMOS StealerとXMRigマイナーを展開

macOSを標的とするClickFixキャンペーンが、Polygonスマートコントラクトを悪用してライブのコマンド&コントロール(C2)インフラを隠蔽しながら、Atomic macOS Stealer(AMOS)の亜種、永続化バックドア、XMRigクリプトマイナーを展開していることが分かりました。

この攻撃は、偽のCAPTCHAを使ったソーシャルエンジニアリングとEtherHidingを組み合わせており、従来のハードコードされたC2方式と比べてインフラのローテーションに対する耐性が大幅に高まっています。

このコマンドをデコードするとcurl | bashパイプラインとなり、Cloudflare Workerからペイロードを取得して、通常のダウンロード型アプリケーションを介さずに実行します。

これにより、macOSユーザーが信頼できないソフトウェアの警告として認識する、いわゆる「ダウンロードしてダブルクリック」という一連の流れを回避します。

このWorkerは、正規のmacOSユーティリティであるosascriptを通じて難読化されたAppleScriptを起動します

デコードされた各レイヤーは、永続化のためのLaunchAgentを書き込み、静的検査を回避するために1文字ずつ文字列を構築し不要な値を混在させて設計されたAppleScriptローダーをインストールします。

生成される永続化アーティファクトはLaunchAgentラベルcom.ifipbqmfnnywqguzを使用し、RunAtLoadKeepAliveによって、再起動後やプロセス終了後もマルウェアが再起動するようにしています。

Malwareremoval tool

このローダーにはC2ドメインが埋め込まれていません。代わりに、公開されているPolygon RPCサービスに読み取り専用のeth_callリクエストを送信し、スマートコントラクト0xA3a603F8a454a9c905b4c579Bb72628F7C15C2A0からC2のホスト名を取得します。

これがEtherHidingです。攻撃者が制御する設定情報を公開ブロックチェーンの状態として保存し、実行時にのみ取得する手法です。

セレクタ0x2686eceaを通じて呼び出されるこのコントラクトのgetter関数は、調査時点で有効なC2として67sixcebeh[.]surfを返しました。

Image

読み取り専用のコントラクト照会ではウォレットのトランザクションやガス代が発生しないため、被害者側の活動はオンチェーン上には現れません。

しかし、攻撃者側によるC2の変更はsetterトランザクションとして永続的に記録されるため、防御側はこれを手掛かりに過去のインフラを復元し、今後のローテーションを監視できます。

最初に取得されるモジュールbmoduleは、最終的なStealerではなく、永続化されたエージェントとして機能します。IOPlatformUUIDとユーザー名を使ってシステムを識別し、Polygon経由でC2を再解決した上で、ホストを攻撃者側に登録します。

また、偽の「System Preferences」パスワードダイアログを表示し、dscl . authonlyを通じて入力された認証情報を繰り返し検証した上で、成功した認証情報を~/.passphraseに保存します。

NetbyteSECの研究者によると、同様のmacOS ClickFixキャンペーンでは、DNSベースの妨害策への耐性を持たせ、ペイロードのインフラを迅速に変更するために、ブロックチェーンで解決されるC2サービスが使われてきたとのことです。

犯罪キットがPolygonスマートコントラクトを利用する仕組み

このエージェントは60秒ごとにC2へポーリングを行い、フルバージョンのAMOSペイロード(smodule)、軽量版のAMOS亜種(lmodule)、XMRig展開スクリプト(ledger)、あるいは対話型シェルを展開できるコマンドを受け付けます。

このキャンペーンは、Cloudflare Pages上でホストされた偽の「TrustKey」人間検証サイトから始まります。訪問者にはおなじみの「私はロボットではありません」というプロンプトが表示されますが、これをクリックすると悪意のあるコマンドが密かにクリップボードにコピーされ、被害者はSpotlightからターミナルを開き、この「トークン」を貼り付けてリターンキーを押すよう指示されます。

Image

また、tccutil reset Allを使ってmacOSのTCC権限をリセットすることも可能で、プライバシー制御の状態を混乱させ、その後の悪意ある活動を助長する恐れがあります。

この仕組みは運用上重要な意味を持ちます。XMRigやStealerペイロードだけを除去しても不十分だという点です。永続化されたエージェントは新たなタスクを受け取り、必要に応じてコンポーネントを再インストールできるためです。

被害者を登録する際、エージェントは&connectリクエストを送信し、侵害されたホストを登録します。newconnectを受信すると、tccutil reset Allを実行し、そのマシンのTCCプライバシー権限をリセットします。

Image

フルバージョンのAMOSモジュールは、ブラウザのCookie、保存された認証情報、閲覧履歴、Keychainデータベース、ブラウザのSafe Storageキー、Telegramのセッションデータ、Appleのメモ、Safariのcookie、デスクトップ型暗号資産ウォレット、ブラウザ拡張機能のウォレットデータを標的とします。

また、DesktopディレクトリとDocumentsディレクトリも検索した上で、収集したデータをdittoで圧縮し、curlでアップロードします。

このStealerには、AMOSに関連付けられたtxid427e8b573407f6029923cdb4686b5f77が含まれており、収集したデータを攻撃者側のインフラへ経由させるために使用されます。

90MBを超えるアーカイブはhttp://62.60.226.0/upload.phpに送信され、それより小さいアーカイブはC2がホストするアップロードエンドポイントに送信されます。

認証情報の窃取に加えて収益化を図るため、ledgerタスクは既存のXMRigプロセスを終了させた上で、有効なC2からXMRigスクリプトをダウンロードします。

このスクリプトはApple SiliconかIntel製ハードウェアかを判別し、公式のGitHubソースからXMRig 6.26.0を取得して隔離属性を除去した上で、TLS対応のMoneroマイニングプールに対して実行します。

本来は正規のマイナーを利用している点により、単純なシグネチャベースの検知は複雑になります。とはいえ、悪意ある設定内容、永続化のチェーン、持続的なCPU消費といった要素は、より有効な検知の手掛かりとなります。

防御側は、ターミナルから起動されるcurl | bashコマンド、不審なosascript -eの実行、新規のLaunchAgent、エンドポイントから公開Polygon RPCへの通信、そして特定されたコントラクトを対象とするeth_callクエリを監視すべきです。

コントラクトとそれを制御するウォレットを監視することは、C2ドメインがローテーションされても有効な、持続的な調査の切り口となります。EtherHidingは、防御側の焦点を単一ドメインのブロックから、永続的なオンチェーンインフラの追跡と、常駐するバックドアエージェントの排除へとシフトさせるものです。

★ どのセキュリティツールを削減すべきか?1ページでスコアリング – 「継承されたセキュリティスタック」ガイドをダウンロード

Securityconsulting services

翻訳元: https://gbhackers.com/crimekit-uses-polygon-smart-contracts/

本記事は gbhackers.com の記事を翻訳・要約したものです。