作者:耀@慢霧安全團隊
背景
區塊鏈的世界遵循黑暗森林法則,在這個世界我們隨時可能遭受到來自不明的外部攻擊,作為普通用戶不進行作惡,但是了解黑客的作惡的方式是十分必要的。
慢霧安全團隊此前發布了區塊鏈黑暗森林自救手冊,其中提到了不少關于針對NFT項目方的Discord進行攻擊的手法,為了幫助讀者對相關釣魚方式有更清晰的認知,本文將揭露其中一種釣魚方法,即通過惡意的書簽來盜取項目方Discord賬號的Token,用來發布虛假信息等誘導用戶訪問釣魚網站,從而盜取用戶的數字資產。
釣魚事件
先來回顧一起Discord釣魚事件:2022年3月14日,一則推特稱NFT項目WizardPass的Discord社區被詐騙者入侵,目前已造成BAYC、Doodles、CloneX等NFT被盜,詳情如下:
基于StarkNet的瀏覽器插件錢包Argent X下載量突破19萬次:7月4日消息,基于StarkNet的瀏覽器插件錢包Argent X下載量突破19萬次。此前Argent X已支持發送和接收NFT,同時支持Firefox瀏覽器。
4月28日,Argent宣布完成4000萬美元B輪融資,本輪融資由Fabric Ventures和Metaplanet領投,Paradigm、Index Ventures、Creandum、Starkware、Jump Trading、Animoca Brands等參投。本輪資金將用于開發產品,和在拉丁美洲擴大其業務。[2022/7/4 1:49:51]
來源:https://twitter.com/sentinelwtf/status/1496293768542429187
該解讀里說的bookmark就是瀏覽器書簽,這個書簽里的內容可以是一段JavaScript惡意代碼,當Discord用戶點擊時,惡意JavaScript代碼就會在用戶所在的Discord域內執行,盜取DiscordToken,攻擊者獲得項目方的DiscordToken后就可以直接自動化接管項目方的Discord賬戶相關權限。
Foundry向開源比特幣區塊鏈瀏覽器mempool.space捐贈1比特幣:為北美加密貨幣礦工提供服務的Foundry已捐贈1BTC,用于資助開源比特幣區塊鏈瀏覽器mempool.space的開發。這筆贈款代表了其對比特幣生態系統進一步去中心化的投資。在日本運行的項目mempool.space允許用戶運行其區塊瀏覽器的本地版本,與Blockchain.com或Etherscan這樣的中心化服務托管有所不同。(CoinDesk)[2021/8/5 1:37:22]
背景知識
要理解該事件需要讀者有一定的背景知識,現在的瀏覽器都有自帶的書簽管理器,在提供便利的同時卻也容易被攻擊者利用。通過精心構造惡意的釣魚頁面可以讓你收藏的書簽中插入一段JavaScript代碼,當受害者點擊書簽時會以當前瀏覽器標簽頁的域進行執行。
以上圖為例,受害者打開了discord.com官網,并在這個頁面點擊了之前收藏的惡意的書簽“Hello,World!”從而執行了一個彈窗語句,可以發現執行的源顯示的是discord.com。
動態 | 攻擊者通過假冒版本Tor瀏覽器竊取4萬美元的比特幣:ESET研究人員最近發現一個虛假的“特洛伊木馬”版本Tor瀏覽器,它總共竊取了4萬美元的比特幣。這并不意味著Tor或Tor瀏覽器本身以任何方式受到威脅。這只意味著攻擊者找到了一種新的、陰險的方式來創建和分發假冒版本的Tor瀏覽器。在這種情況下,攻擊者還使用修改后的manifest.json文件偽造了EFF自己的HTTPS Everywhere擴展,并對其進行了一些設置更改。攻擊者在其活動中使用了一個假的HTTPS Everywhere擴展,因為Tor實際上將HTTPS Everywhere和No Script擴展打包到其瀏覽器中。在Tor的特洛伊木馬版本中包含像普通擴展這樣的細節,可以防止眼尖的用戶捕捉到表明他們在使用假瀏覽器的紅色提醒標志。(EFF)[2019/11/1]
這里有一個域的概念,瀏覽器是有同源策略等防護策略的,按理不屬于discord.com做出的操作不應該在discord.com域的頁面有響應,但書簽卻繞過了這個限制。
動態 | 數字貨幣瀏覽器Brave向谷歌提出投訴:據irishtimes報道,數字貨幣瀏覽器Brave對谷歌提出投訴,稱其對數據保護隱私進行了侵犯。用戶每次訪問網站時,他們的數據在不知不覺中被發送幾十到數百家企業。[2018/9/13]
可以預見書簽這么個小功能隱含的安全問題,正常添加書簽的方式會明顯看到書簽網址:
稍微有安全意識的讀者應該會直接看到網址信息明顯存在問題。
當然如果是一個構造好誘導你拖拽收藏到書簽欄到頁面呢?可以看到Twitter鏈接中的演示視頻就是構造了這么個誘導頁面:「Dragthistoyourbookmarked」。
也就是拖著某個鏈接即可添加到書簽欄,只要釣魚劇本寫得足夠真實,就很容易讓安全意識不足的用戶中招。
要實現拖拽即可添加到書簽欄只需要構造一個a標簽,下面是示例代碼:
Hello,World!
書簽在點擊時可以像在開發者工具控制臺中的代碼一樣執行,并且會繞過CSP策略。
讀者可能會有疑問,類似「javascript:()」這樣的鏈接,在添加進入到瀏覽器書簽欄,瀏覽器竟然會沒有任何的提醒?
筆者這里以谷歌和火狐兩款瀏覽器來進行對比。
使用谷歌瀏覽器,拖拽添加正常的URL鏈接不會有任何的編輯提醒。
使用谷歌瀏覽器,拖拽添加惡意鏈接同樣不會有任何的編輯提醒。
使用火狐瀏覽器如果添加正常鏈接不會有提醒。
使用火狐瀏覽器,如果添加惡意鏈接則會出現一個窗口提醒編輯確認保存。
由此可見在書簽添加這方面火狐瀏覽器的處理安全性更高。
場景演示
演示采用的谷歌瀏覽器,在用戶登錄Web端Discord的前提下,假設受害者在釣魚頁面的指引下添加了惡意書簽,在DiscordWeb端登錄時,點擊了該書簽,觸發惡意代碼,受害者的Token等個人信息便會通過攻擊者設置好的Discordwebhook發送到攻擊者的頻道上。
下面是演示受害者點擊了釣魚的書簽:
下面是演示攻擊者編寫的JavaScript代碼獲取Token等個人信息后,通過DiscordServer的webhook接收到。
筆者補充幾點可能會產生疑問的攻擊細節:
1.為什么受害者點了一下就獲取了?
通過背景知識我們知道,書簽可以插入一段JavaScript腳本,有了這個幾乎可以做任何事情,包括通過Discord封裝好的webpackChunkdiscord_app前端包進行信息獲取,但是為了防止作惡的發生,詳細的攻擊代碼筆者不會給出。
2.為什么攻擊者會選擇Discordwebhook進行接收?
因為Discordwebhook的格式為
“https://discord.com/api/webhooks/xxxxxx”,直接是Discord的主域名,繞過了同源策略等問題,讀者可以自行新建一個Discordwebhook進行測試。
3.拿到了Token又能怎么樣?
拿到了Token等同于登錄了Discord賬號,可以做登錄Discord的任何同等操作,比如建立一個Discordwebhook機器人,在頻道里發布公告等虛假消息進行釣魚。
總結
攻擊時刻在發生,針對已經遭受到惡意攻擊的用戶,建議立刻采取如下行動進行補救:
立刻重置Discord賬號密碼。
重置密碼后重新登錄該Discord賬號來刷新Token,才能讓攻擊者拿到的Token失效。
刪除并更換原有的webhook鏈接,因為原有的webhook已經泄露。
提高安全意識,檢查并刪除已添加的惡意書簽。
作為用戶,重要的是要注意任何添加操作和代碼都可能是惡意的,Web上會有很多的擴展看起來非常友好和靈活。書簽不能阻止網絡請求,在用戶手動觸發執行的那一刻,還是需要保持一顆懷疑的心。
Gate.iowilllaunchaDailyBTC&USDTSharkFinwithanannualizedyieldof3%~16%.
1900/1/1 0:00:00一、項目介紹 我們正在進入一個新時代,一個不斷變化的時代。從元宇宙到NFT,一切都是新的,并且正在快速向我們襲來。Web2.0開始看起來像是一個遙遠的記憶,我們仍在為心靈和喜好贈送藝術.
1900/1/1 0:00:00尊敬的XT.COM用戶:因GTC錢包升級維護,XT.COM現已暫停GTC充提業務。給您帶來的不便,請您諒解!感謝您對XT.COM的支持與信任.
1900/1/1 0:00:00一名黑客顯然對成功盜竊感到非常興奮,留下了超過100萬美元的智能合約,該合約將被破壞,永久確保加密貨幣永遠無法移動.
1900/1/1 0:00:00金色財經消息,國際貨幣基金組織表示,隨著俄烏沖突繼續引發關于逃避制裁行為的擔憂,各國政府應確保自己有權對加密貨幣和傳統資產實施資本管制.
1900/1/1 0:00:00撰文:凱爾 短短5天的時間里,Moonbirds系列NFT在市場躥紅,這個由10000個裝飾、形態各異的卡通貓頭鷹組成的NFT系列,以超3.1億美元的銷售額登上交易榜首.
1900/1/1 0:00:00