為什麼官方 Discord 帳號總是被駭?慢霧揭露駭客陷阱
而本次會引用資安團隊慢霧的概念,和讀者說明 Discord Token 的漏洞,並且揭露駭客如何利用瀏覽器的惡意書籤中盜取用戶的 Discord Token。
使用瀏覽器的惡意書籤釣魚,盜取Discord Token
時間倒轉到 2022 年,一則在 X 關於 NFT 專案 Wizard Pass 的 Discord 群組被駭客入侵,造成 BAYC、Doodles、Clone X 等 NFT 被盗取。
而貼文出來後,底下有人回覆
廣告 - 內文未完請往下捲動
回覆裡說到:「Bookmark 是瀏覽器(如 Google Chrome)中的書籤,書籤內容可以包含 JavaScript 程式碼。當 Discord 用戶點擊後,惡意程式會在 Discord 上執行,盜取 Token。駭客取得 Token 後,便能輕易控制專案的 Discord 帳戶及權限。」
慢霧實際拆解案例
實現這個功能只需要建立一個 a 標籤。以下是範例程式碼:
點擊書籤時可以像在網頁後台程式碼一樣執行,還會繞過內容安全策略(Content Security Policy)。
利用 Google 和 FireFox 瀏覽器進行對比
左邊是拖曳正常的 URL 網址變成書籤時,瀏覽器不會跳出任何編輯提醒。
而右邊是拖曳惡意網址也同樣不會提醒。
那 FireFox 呢?
左邊是拖曳正常的 URL 網址和 Google 瀏覽器相同,也不會跳出任何編輯提醒。
反倒右邊,是拖曳惡意網址時,FireFox竟會跳出提醒,讓用戶確認。
代表 FireFox 針對添加書籤這方面安全性較高。
慢霧使用 Google 瀏覽器示範,假設使用者已登入網頁版 Discord,並在釣魚網站引導下加入惡意書籤。
當他點擊書籤後,就會觸發惡意程式碼,使用者的 Token 等個資會透過駭客設定的 Discord webhook ,再傳送到駭客的頻道。
補充可能讓人產生疑問的攻擊細節
- 為什麼受害者點一下就中招?
綜合上述可得知,書籤可以插入一段 JavaScript 程式碼,這幾乎可以做任何事情,包括透過 Discord 的 webpackChunkdiscord_app 前端程式碼模組來獲取資訊。不過,為了避免惡意行為,詳細的攻擊程式碼團隊不會提供。 - 為什麼攻擊者會選擇用 Discord webhook 接收資料?因為 Discord webhook 的格式為https://discord.com/api/webhooks/xxxxxx,直接使用 Discord 的主域名,這樣可以繞過同源政策等問題。讀者可以自行建立一個 Discord webhook 測試看看。
- 拿到 Token 之後能做什麼?
拿到 Token 就等於登入了 Discord 帳號,也就是能以登入狀態做任何事,像是建立 Discord webhook 機器人,在頻道裡發布公告或假消息進行釣魚攻擊。
建議受害者應立刻採取以下行動補救
- 立刻重設 Discord 帳號密碼。
- 重設密碼後,重新登入 Discord 並刷新 Token,這樣駭客手上的 Token 才會失效。
- 刪除並更換原有的 webhook 連結,因為舊的 webhook 已經外洩。
- 提高安全意識,檢查可疑書籤並刪除已加入的惡意書籤。
而如果對慢霧針對區塊鏈釣魚詐騙等資安問題感到有興趣,並且想從技術出發的讀者,可以參考慢霧的「區塊鏈黑暗森林自救手冊。」
我們也必須保持警覺,謹慎使用或添加任何的程式碼,以及來路不明的連結。網路上有許多看起來很方便且實用的擴充功能,但書籤無法攔截惡意行為,因此每次手動執行時,都應該保持謹慎,以免遭到駭客入侵。