ClickFixキャンペーンがAmazonの誘いを利用してマルウェアを展開
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
脅威アクターは、「amazon business」のスポンサー付きGoogle検索結果を悪用して、ユーザーを偽のAmazonログインページにリダイレクトしています。このサイトはClickFixというソーシャルエンジニアリング技術を使用して被害者を騙し、Windowsの実行ダイアログを通じてコマンドを実行させます。そのコマンドは、古い finger ユーティリティを悪用して、Doina、Lumma Stealer、およびNetSupport RMMを含むマルウェアの多層チェーンをダウンロードして起動します。
調査
Huntressは、AmazonをテーマにしたClickFixキャンペーンに関連する複数の事例を調査しました。アナリストは感染チェーンをリバースエンジニアリングして、 finger LOLBINとして悪用されるユーティリティを特定し、危険な .plan ファイルを取得することを確認しました。調査により、IronPython、Doina RAT、最終的にはLumma StealerがNode.jsベースのローダーを通じて展開される経緯が追跡されました。
緩和策
主な防御策は、端末コマンドを実行するように指示する偽のCAPTCHAプロンプトに対するユーザーの認識です。組織は、必要ないユーザーに対してWindowsの実行ダイアログを管理されたエンドポイントセキュリティ制御を通じて無効にすることを検討すべきです。また、 finger が使用するTCPポート79を経由する異常なトラフィックや、ウェブログにおけるマルウェア広告の指標を監視することも、早期検出をサポートします。
対応
この活動が検出された際は、データ流出や横移動を防ぐために影響を受けたエンドポイントを隔離します。バーベキューをテーマにしたC2ドメインや悪意のあるIPアドレスを識別してブロックします。権限のないRMMソフトウェア(NetSupportなど)の徹底的な探索を行い、 C:ProgramData.
攻撃フロー
この部分はまだ更新中です。
検知
PowerShellによる疑わしい .NETメソッドの呼び出し (via powershell)
NodeJSバイナリの珍しい場所からの実行 (via cmdline)
LOLBAS Finger (via cmdline)
LOLBAS Conhost (via cmdline)
疑わしいCURLの使用 (via cmdline)
検出のためのIOC(HashSha256): AmazonをテーマにしたClickFixキャンペーンが指す指先をなめるマルウェア
検出のためのIOC(SourceIP): AmazonをテーマにしたClickFixキャンペーンが指す指先をなめるマルウェア
検出のためのIOC(DestinationIP): AmazonをテーマにしたClickFixキャンペーンが指す指先をなめるマルウェア
ポート79/tcpおよびNetSupportクライアント通信の非標準ポートの検出 [Windowsネットワーク接続]
FingerユーティリティとIronPythonによる悪意のあるスクリプトの実行 [Windowsプロセスの作成]
シミュレーションの実行
-
攻撃の物語とコマンド: 敵対者は初期アクセスを得て、持続性とコマンド&コントロール(C2)の確立を試みています。彼らは一般的な管理トラフィックに紛れ込み、既知のプロトコルの脆弱性を悪用するためにポート79(Fingerプロトコル)で接続を開始するPythonスクリプトを使用します。同時に、既知の悪意のあるIP(172.148.201.106)をターゲットにしたバックドアを維持するために、ツールを転送するNetSupportクライアントを使用しようとします。
-
回帰テストスクリプト:
# 検出ルールをトリガーするシミュレーションスクリプト # 要件: ターゲットにPythonがインストールされていること Write-Host "[+] シミュレーション開始..." # 1. トリガー選択一: ポート79への接続 Write-Host "[+] ポート79(Finger)接続のトリガー..." python -c "import socket; s = socket.socket(socket.AF_INET, socket.SOCK_STREAM); s.connect(('127.0.0.1', 79)); s.close()" # 2. トリガー選択二: ポート725での172.148.201.106への接続 Write-Host "[+] NetSupport(IP: 172.148.201.106, ポート: 725)接続のトリガー..." python -c "import socket; s = socket.socket(socket.AF_INET, socket.SOCK_STREAM); s.connect(('172.148.201.106', 725)); s.close()" Write-Host "[+] シミュレーション完了。" -
クリーンアップコマンド:
# このスクリプトによって生成された持続的なアーティファクトはありませんが、 # 一時的なpythonプロセスが終了されていることを確認してください。 Stop-Process -Name "python" -ErrorAction SilentlyContinue