慢霧安全團隊聯合 Rabby Wallet 團隊對利用谷歌廣告釣魚的手法展開深入分析。

作者:耀

事件背景

近日,慢霧安全團隊和 Rabby Wallet 團隊發現一種利用 Google 廣告進行釣魚的攻擊手法。 隨後,慢霧安全團隊聯合 Rabby Wallet 團隊對該攻擊手法展開深入分析。

根據 Rabby Wallet 團隊的描述,團隊並未購買任何 Google 廣告,然而這個假廣告卻跳轉到了真正官網,莫非釣魚團夥花錢推廣真錢包?

從 Google 搜尋關鍵字情況來看,排在前兩位的搜尋結果都為釣魚廣告,然而第一條廣告的連結卻很反常,它顯示的明明是 Rabby Wallet 的官方網站位址 https://rabby.io,釣魚團夥為什麼要這麼做呢?

通過跟蹤發現,釣魚廣告有時會跳轉到真正官方位址 https://rabby.io,而在多次更換代理到不同地區後,則會跳轉到釣魚位址 http://rebby.io,並且該釣魚位址會更新改變。 在編寫本文時,該連結跳轉到釣魚位址 https://robby.page[.] link/Zi7X/?url=https://rabby.io?gad_source=1。

技術分析

我們先說下什麼是 302,302 是一種 HTTP 狀態代碼,代表臨時重定向(Found)。 當伺服器收到用戶端的請求后,如果需要臨時將請求的資源轉移到另一個位置,就會返回 302 狀態碼,同時在回應頭中包含一個 Location 欄位,指示客戶端應該重定向到的新位置。 這種重定向是臨時性的。

經過分析發現,該釣魚廣告的連結會經過多次的 302 跳轉,如下圖所示,使用 curl 命令請求該連結,第一次會 302 跳轉到釣魚位址 https://rabby.iopost.ivsquarestudio.com,然而在第二次 302 跳轉時卻出現了兩種情況:

1. 當我們使用 curl 命令請求上述 Location 位址 https://rabby.iopost.ivsquarestudio.com,會 302 跳轉到真正官方地址 https://rabby.io。

2. 但是,在我們使用 curl 命令類比正常瀏覽器請求上述 Location 位址 https://rabby.iopost.ivsquarestudio.com 的情況下(攜帶請求頭包括 User-Agent、Accept、Referer、Accept-Encoding 等字段),則會 302 跳轉到一個新的 Location 位址 https:// dnovomedia.com?uid=087aa42d-724b-4a1e-bae7-f1f700ce71e6。

由此可見,釣魚連結在第二次 302 跳轉時會進行一次判斷,當檢測到非正常瀏覽器的請求時,會重定向到官方位址; 而檢測到正常瀏覽器的請求行為並且地區合理,則重定向到釣魚位址。

我們跟蹤發現最後一次跳轉的釣魚位址為 https://rabbyo.com/index.php?uid=087aa42d-724b-4a1e-bae7-f1f700ce71e6。

打開該釣魚連結,發現這個釣魚頁面幾乎克隆了真官網網頁的大部分內容:

通過跟蹤 302 跳轉,我們發現以下釣魚鏈接位址:

https://robby.page.link/Zi7X
https://rabby.iopost.ivsquarestudio.com
https://dnovomedia.com?uid=087aa42d-724b-4a1e-bae7-f1f700ce71e6
https://rabbyo.com
https://rebby.io

通過威脅情報平臺查詢 rebby.io 和 rabbyo.com 這兩個釣魚域名,發現它們的註冊時間均在 2024 年 1 月份。

木馬分析

查看代碼,發現攻擊者使用的是俄語:

釣魚部署後台程式使用 Fastpanel(Fastpanel 是俄語地區主機商開發的虛擬主機管理面板):

接著對釣魚網頁的原始碼進行審查發現,點擊下載桌面版本會進行一次用戶端校驗:

如果檢查發現當前環境為 Mac 電腦,則會跳轉到下載位址 https://brandsrocket.com/data/rabby-wallet-desktop-installer-x64-latest.dmg。

可以發現該木馬程式佔用的存儲空間非常小,只有 1.1 MB:

將木馬程式上傳到在線威脅分析網站上進行分析,發現該木馬樣本在編寫本文 19 天前已經被分析過,並被多個殺毒引擎識別為木馬後門程式。

 (https://www.virustotal.com/gui/file/ce6169ae0efe851473a189add9c88f96fdebe1ff3f549c457339e25d9e6feca8/detection)

釣魚背後的技術

可以看到,從廣告投放到釣魚網站製作,再到木馬製作,釣魚團夥一套操作下來行雲流水。 讓人看不懂的是,為何谷歌搜索的廣告信息顯示的是官方位址? 又為何後續經過了多次的 302 跳轉? 分析發現,關鍵操作在於釣魚團夥利用了 Google 自家的 Firebase 短連結服務的 302 跳轉來欺騙谷歌的展示。

為了使這個過程更清楚,我們還需要先瞭解 Google 廣告的投放機制(只要擁有谷歌帳號,就可以登錄谷歌的廣告管理網站 https://ads.google.com 進行推廣設置):

1. 首先,需要在廣告管理網站新建一個目標為網站流量,類型為搜索的廣告系列。

2. 設置廣告投放的價格和投放次數資訊后,選擇廣告投放的地區和語言。 這裡也解釋了為什麼在不同地區或者不同語言環境下搜索關鍵字不一定會出現廣告。

3. 到了關鍵一步,設置跟蹤模版。 跟蹤範本是 Google Ads 的一項高級功能,允許第三方跟蹤廣告連結。

我們注意到釣魚頁面用的第一個跳轉連結域名為 page.link,這個其實是谷歌的 Firebase 的一個短位址服務,該服務允許綁定任意的重定向位址到 page.link 的一個子功能變數名稱中。

由於第三方跟蹤連結需要是經過谷歌認證過的位址,而 page.link 剛好是谷歌自家的域名,於是釣魚團夥繞過了這個限制。

4. 廣告投放出去后,由於谷歌並不會即時檢查 302 跳轉的連結是否發生了改變,也不會即時修改廣告資訊,因此釣魚團夥會在廣告投放一段時間后,修改重定向到釣魚網址。

類似的釣魚套路還出現在各種聊天軟體上。 以 Telegram 這款聊天軟體為例,當聊天時發送一個 URL 連結,Telegram 後台會抓取 URL 連結功能變數名稱、標題和圖示進行預覽展示。

(此圖僅供演示)

然而,在抓取預覽資訊時,Telegram 並沒有阻止 302 跳轉。 因此,如果使用者只根據頁面的信息判斷,然後點擊連結,則可能跳轉到預設的釣魚位址中。

總結

請廣大用戶認准 Rabby 錢包官方地址 https://rabby.io,不可相信任何搜索結果顯示出來的廣告投放位址; 如果不幸中招,請第一時間轉移錢包資金,並對個人電腦進行全面的殺毒排查; 平常在點擊網站連結前要保留一份懷疑; 更多的安全知識建議閱讀慢霧安全團隊出品的《區塊鏈黑暗森林自救手冊》:https://github.com/slowmist/Blockchain-dark-forest-selfguard-handbook/blob/main/README_CN.md。

免責聲明:作為區塊鏈資訊平臺,本站所發佈文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。 文章內的資訊僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。