Ghidra・dnSpy・SpiderFootを装った偽サイトでマルウェアを配布

攻撃者が検索結果を悪用し、Ghidra、dnSpy、SpiderFootといった人気のセキュリティツールを装ったプロフェッショナルな見た目の偽ダウンロードサイトを通じてマルウェアを配布しています。

これらのサイトでは、ユーザーが「ダウンロード」ボタンを最初にクリックした瞬間を捕捉し、トラフィック配布システム(TDS)に密かに誘導します。このTDSは、情報窃取マルウェア(インフォスティーラー)、クリッパー型マルウェア、そして「SessionGate」と名付けられた高度なローダーフレームワークへと被害者を振り分ける機能を持っています。

これらの偽サイトは精巧に作られており、GitHubなどの本物のリソースを参照している場合も多く、関連する検索クエリで驚くほど上位に表示されることもあります。

実際の感染ロジックは可視状態のHTMLには含まれておらず、ページに埋め込まれたCloudFront経由のJavaScriptステージングレイヤーに隠されています。

ユーザーが正規のダウンロードリンクに見えるものをクリックすると、このスクリプトがイベントをハイジャックし、ブラウザをTDSインフラへリダイレクトします。TDSはセッションごとに、正規のソフトウェア、迷惑プログラム(PUA)、または完全なマルウェアのいずれを提供するかを判断します。

偽サイトは元のダウンロードリンク(hrefの値)を保持しており、多くの場合は正規のプロジェクトの場所を指しているため、ステータスバーのプレビューや簡単な目視確認では正常に見えます。

同時に、注入されたCloudFrontスクリプトがブラウザ固有のハンドラ(Chromeではmousedown、Firefoxではclickなど)を通じて最初の有効なクリックを傍受し、キャッシュされたwindow.open、擬似クリック、一時的なブランクタブといった手法を用いてTDS管理下のURLへナビゲーションを差し替えます。

GBhackersと共有されたレポートでCheckpointが報告した内容によると、Ghidra、dnSpy、SpiderFootといったセキュリティ研究者が利用する高信頼性ツールを含む、オープンソースおよびフリーウェアプロジェクトのクローンサイトを中核とした大規模な攻撃基盤が発見されました。

ルーティングの判断はlocalStorageとアンチボットロジックによってステートフルに管理されており、最初のクリックのみが悪意ある挙動をし、繰り返しのアクセスでは表示上の正規リンクにフォールバックする仕組みになっています。これにより、分析者が再現しようとしても困難な状況が生まれています。

TDSはその後、複数のリダイレクターとコンテンツロッカーを経由して分岐し、正規ソフトウェアのアフィリエイトインストール、PUAバンドル、またはマルウェアペイロードへと振り分けられます。

確認されたエントリドメインには、同一のキャンペーンスクリプトを埋め込む100以上のアクティブなサイトの中に、ghidralite.comやdnspy.orgといった偽装ドメインが含まれています。

このTDSスタックの下流では、RemusStealer、AnimateClipper、そして新たに発見されたフレームワーク「SessionGate」を含む複数のマルウェアファミリーが研究者によって確認されています。

SessionGateは、Amazon S3バケットから被害者ごとに短命なURLで配信される多段階ローダーチェーンであり、Windowsの実行ファイルへのアクセスを許可する前に難読化されたJavaScriptで被害者を検証するという特徴を持っています。

SessionGateのローダーには7-ZipのSFXアーカイブが組み込まれており、ゲーティング条件を満たさない場合は無害なインストーラーUIへ切り替わる一方、高度に難読化されたコード、ジャンク命令、暗号化された文字列によって静的解析を困難にしています。

このローダーは広範な環境チェックおよびウイルス対策ソフトのチェックを実行し、署名付きリクエストで専用のC2インフラに接続します。また、最初のDLLが2つ目のコアペイロードモジュール用のワンタイム復号鍵を生成する「キーブローカー」として機能する、2DLLアーキテクチャを採用しています。

復号されたモジュールはサーバー主導のインストーラーフレームワークとして動作し、追加のソフトウェアを静かにダウンロード・実行する機能を持つため、将来的なマルウェアの柔軟な配信手段となっています。

別の経路では、TDSチェーンはパスワード保護されたアーカイブへと到達し、最終的にアンダーグラウンドフォーラムで宣伝されているMaaS(Malware-as-a-Service)型インフォスティーラーであるRemusStealerを起動します。

RemusStealerは暗号化されたタスキングプロトコルを使用し、ChromiumおよびFirefoxからCookie、パスワード、Vaultデータといったブラウザ情報を窃取します。また、数百種類のブラウザ拡張機能を標的としており、特に暗号資産ウォレット、パスワードマネージャー、2FAプラグインに重点を置いています。

3つ目の経路は、ClickFix型のフィッシングページへと誘導します。被害者を騙してmshtaベースの悪意あるダウンローダーチェーンを実行させ、最終的にAnimateClipperと呼ばれる暗号資産クリッパーへと到達します。

このクリッパーは、バンドルされたPython環境を通じてステージングされたシェルコードを使用し、BNBスマートチェーンのテストネット上のスマートコントラクトへのクエリによってC2を解決します。そしてクリップボード上のウォレットアドレスをハイジャックし、バイナリに埋め込まれた攻撃者制御のウォレットアドレスに差し替えます。

Ghidra、dnSpy、SpiderFootを装うことで、攻撃者はセキュリティ研究者、リバースエンジニア、技術に精通したユーザーという特に魅力的な被害者層にアクセスできます。これらのユーザーは多くの場合、高い権限を持ち、機密性の高い環境にアクセスできます。

関連サンプルに対するVirusTotalへの数千件の公開提出件数に反映されるこのキャンペーンの規模は、これが主にトラフィック獲得と収益化のパイプラインであり、そのフィードが選択的にマルウェア配布者に販売または転送されていることを示唆しています。

偽サイトは正規プロジェクトのブランドを忠実に模倣し、本物のリポジトリリンクを保持しているため、「Googleの上位検索結果かつ公式に見えるウェブサイト」はもはや安全の保証にはなりません。

防御側にとって、このキャンペーンはTDSベースのエコシステムがグレーな収益化活動と露骨なマルウェア配布の境界線をいかに曖昧にするかを示す事例であり、よく知られたセキュリティツールであっても、ダウンロード元の厳格な検証、DNSテレメトリー、スクリプトレベルの挙動監視が今や不可欠であることを示しています。

IOC(侵害の痕跡)

種別 指標 説明
SHA-256 598b023e56c45b19173e8f96c1c88036d732fec305cf6bf1b9cf4dbe304beb7f SessionGate ステージ1
SHA-256 74091f5a8746a1c68d73e1fc1e4e1ff514632ee3f632a8b306f35dabae2d2b64 SessionGate ステージ1
SHA-256 15e6df0c95f2147952308e640d55270e9d097639eaebb34d4b352415f1c6bceb SessionGate ステージ1
SHA-256 3bb92771e287aa0a8bdd8e5b5bb697427223eaefded3d9b64b5d5c32ad40f3c2 SessionGate ステージ1
SHA-256 cbad672d9bd06ce91ce465d049e50696fbaec9d209ca0ab1fd814d993d04bc9b SessionGate ステージ1
SHA-256 4cdb1f7ac502289119f7f8256f00baaa994e6ecfb4000dcf5e1c46073508fcb3 SessionGate ステージ2
SHA-256 cbad672d9bd06ce91ce465d049e50696fbaec9d209ca0ab1fd814d993d04bc9b SessionGate ステージ2 DLL #1
SHA-256 ce0888df5e28716432013a8ae002437bd3e993fbe8362c5ff9efbddabfe0ab77 SessionGate ステージ2 DLL #1
SHA-256 26f2abfc254a59c2386dd46dca16744f7147a0f0366cb6008e1d53219175f44c SessionGate ステージ2 DLL #2
SHA-256 e6a1a428a7c09c9946f7c0179d89b263f442dc3208b5144a9146c200e4185bd6 AnimateClipper
SHA-256 87361ba2bb412dcf49f8738f3b8b9b7dccb557ad2e76ea8d98ffa5b098ae3886 AnimateClipper
SHA-256 39dc2327fe1e5a56ac5ad9dc02f0386cff3d83dcfdc558cacba42ebb9dcc5ec2 RemusStealer
SHA-256 2e842eab0c16ddd1a2ec4a56610adb58d115b65a1e08e9b67e7e375f8eed0873 RemusStealer
Domain appfreshstart[.]com SessionGate
Domain appgetonline[.]com SessionGate
Domain webinnosetup[.]com SessionGate
Domain appmakingcenter[.]com SessionGate
Domain yourfastcrc[.]com SessionGate
Domain mobileversioncrc[.]com SessionGate
Domain webcrcprove[.]com SessionGate
Domain integritycrc[.]com SessionGate
URL http://buccstanor[.]pics:28313 RemusStealer
URL http://baxe[.]pics:48261 RemusStealer
URL http://217.156.122[.]75:1378 RemusStealer
URL http://intem[.]lat:9592 RemusStealer
URL http://ropea[.]top:28313 RemusStealer
URL http://forestoaker[.]com:6290 RemusStealer
URL http://buccstanor[.]pics:48261 RemusStealer
URL http://94.231.205[.]229:28313 RemusStealer
URL http://gluckcreek[.]online:48261 RemusStealer
URL https://185.0xA1.0xFB[.]58/navy.7z AnimateClipper
URL http://194.150.220[.]218/4SLEYpfAk57hGubo/fo0suc2ki2.rtf AnimateClipper
URL https://cdn-1415.brightcanvas[.]digital/fo0suc2ki2.rtf AnimateClipper
Domain kr.hugo-lapp[.]co AnimateClipper
Domain io.hugo-lapp[.]lat AnimateClipper
Domain cw.hugo-lapp[.]lat AnimateClipper
Domain st.hugo-lapp[.]lat AnimateClipper
Domain td.hugo-lapp[.]lat AnimateClipper
Domain fd.hugo-lapp[.]lat AnimateClipper
Domain ed.hugo-lapp[.]lat AnimateClipper
Domain flame-guard[.]cc AnimateClipper
Domain carlessclapped[.]com AnimateClipper

注意: IPアドレスおよびドメインは、誤った名前解決やハイパーリンク化を防ぐため、意図的にデファング処理(例:[.])が施されています。MISP、VirusTotal、SIEMなどの管理されたスレットインテリジェンスプラットフォーム内でのみリファング(元の形式への復元)を行ってください。

翻訳元: https://gbhackers.com/fake-ghidra-dnspy-spiderfoot-sites/

ソース: gbhackers.com