作者: 耀
事件背景
近期,慢霧安全團隊和 Rabby 錢包團隊發現了一種利用 Google 廣告進行釣魚的攻擊手法。此外,慢霧安全團隊聯合 Rabby 錢包團隊對該攻擊手法展開深入分析。
根據 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狀態碼,同時在回應頭中包含一個位置字段,指示客戶端應該重定向到的新位置。這種重定向是臨時性的。
經過分析發現,該釣魚廣告的鏈接會經過多個 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等字段時) ,它會跳到新的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.1MB:
該木馬被上傳到線上威脅分析網站進行分析,發現該木馬樣本在撰寫本文前19天就已經被分析過,並被多個防毒引擎識別為木馬後門。
(https://www.virustotal.com/gui/file/ce6169ae0efe851473a189add9c88f96fdebe1ff3f549c457339e25d9e6feca8/檢測)
釣魚背後的技術
可以看到,是從廣告投放到釣魚網站製作,再到木馬製作,釣魚團夥一套操作下來行雲流水。讓人看不懂,為何谷歌搜尋的廣告訊息顯示的是官方地址?又為何後續經過了多次的302 截圖?分析發現,關鍵操作是釣魚團夥利用了Google 自家的Firebase 短鏈接服務的302 截圖來欺騙谷歌的展示。
為了讓這個過程更清晰,我們還需要先了解Google廣告的投放機制(只要擁有Google帳號,就可以登入Google的廣告管理網站https://ads.google.com進行推廣設定):
1.首先,需要在廣告管理網站新建一個目標為網站流量,類型為搜尋的廣告活動。
2. 設定廣告價格和頻率後,選擇廣告區域和語言。 這也解釋了為什麼在不同地區或不同語言環境中搜尋關鍵字時,廣告不一定會出現。
3. 現在到了關鍵的一步,設定追蹤範本。 追蹤模板是 Google Ads 的高級功能,可讓第三方追蹤廣告連結。
我們注意到,釣魚頁面使用的第一個跳躍連結網域是page.link。 這其實是Google 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。