背景
區塊鏈的世界遵循黑暗森林法則,在這個世界我們隨時可能遭受到來自不明的外部攻擊,作為普通用戶不進行作惡,但是了解黑客的作惡的方式是十分必要的。
慢霧安全團隊此前發布了區塊鏈黑暗森林自救手冊
,其中提到了不少關于針對NFT項目方的Discord進行攻擊的手法,為了幫助讀者對相關釣魚方式有更清晰的認知,本文將揭露其中一種釣魚方法,即通過惡意的書簽來盜取項目方Discord賬號的Token,用來發布虛假信息等誘導用戶訪問釣魚網站,從而盜取用戶的數字資產。
釣魚事件
先來回顧一起Discord釣魚事件:2022年3月14日,一則推特稱NFT項目WizardPass的Discord社區被詐騙者入侵,目前已造成BAYC、Doodles、CloneX等NFT被盜,詳情如下:
牽出其中一個解讀:
慢霧:疑似Gemini相關地址在過去5小時內共轉出逾20萬枚ETH:金色財經消息,慢霧監測顯示,疑似加密交易所Gemini相關地址(0xea3ec2a08fee18ff4798c2d4725ded433d94151d)已在過去5小時內歸集并轉出逾20萬枚ETH(超3億美元)。[2022/7/19 2:22:08]
該解讀里說的bookmark就是瀏覽器書簽,這個書簽里的內容可以是一段JavaScript惡意代碼,當Discord用戶點擊時,惡意JavaScript代碼就會在用戶所在的Discord域內執行,盜取DiscordToken,攻擊者獲得項目方的DiscordToken后就可以直接自動化接管項目方的Discord賬戶相關權限。
背景知識
要理解該事件需要讀者有一定的背景知識,現在的瀏覽器都有自帶的書簽管理器,在提供便利的同時卻也容易被攻擊者利用。通過精心構造惡意的釣魚頁面可以讓你收藏的書簽中插入一段JavaScript代碼,當受害者點擊書簽時會以當前瀏覽器標簽頁的域進行執行。
慢霧:Inverse Finance遭遇閃電貸攻擊簡析:據慢霧安全團隊鏈上情報,Inverse Finance遭遇閃電貸攻擊,損失53.2445WBTC和99,976.29USDT。慢霧安全團隊以簡訊的形式將攻擊原理分享如下:
1.攻擊者先從AAVE閃電貸借出27,000WBTC,然后存225WBTC到CurveUSDT-WETH-WBTC的池子獲得5,375.5個crv3crypto和4,906.7yvCurve-3Crypto,隨后攻擊者把獲得的2個憑證存入Inverse Finance獲得245,337.73個存款憑證anYvCrv3Crypto。
2.接下來攻擊者在CurveUSDT-WETH-WBTC的池子進行了一次swap,用26,775個WBTC兌換出了75,403,376.18USDT,由于anYvCrv3Crypto的存款憑證使用的價格計算合約除了采用Chainlink的喂價之外還會根據CurveUSDT-WETH-WBTC的池子的WBTC,WETH,USDT的實時余額變化進行計算所以在攻擊者進行swap之后anYvCrv3Crypto的價格被拉高從而導致攻擊者可以從合約中借出超額的10,133,949.1個DOLA。
3.借貸完DOLA之后攻擊者在把第二步獲取的75,403,376.18USDT再次swap成26,626.4個WBTC,攻擊者在把10,133,949.1DOLAswap成9,881,355個3crv,之后攻擊者通過移除3crv的流動性獲得10,099,976.2個USDT。
4.最后攻擊者把去除流動性的10,000,000個USDTswap成451.0個WBT,歸還閃電貸獲利離場。
針對該事件,慢霧給出以下防范建議:本次攻擊的原因主要在于使用了不安全的預言機來計算LP價格,慢霧安全團隊建議可以參考Alpha Finance關于獲取公平LP價格的方法。[2022/6/16 4:32:58]
慢霧:BXH于BSC鏈被盜的ETH、BTC類資產已全部跨鏈轉至相應鏈:11月3日消息,10月30日攻擊BXH的黑客(BSC: 0x48c94305bddfd80c6f4076963866d968cac27d79)在洗幣過程中,多次使用了 AnySwap、PancakeSwap、Ellipsis 等兌換平臺,其中部分 ETH 代幣被兌換成 BTC。此外,黑客現已將 13304.6 ETH、642.88 BTCB 代幣從 BSC 鏈轉移到 ETH、BTC 鏈,目前,初始黑客獲利地址仍有 15546 BNB 和價值超 3376 萬美元的代幣。慢霧 AML 將持續監控被盜資金的轉移,拉黑攻擊者控制的所有錢包地址,提醒交易所、錢包注意加強地址監控,避免相關惡意資金流入平臺。[2021/11/3 6:28:49]
以上圖為例,受害者打開了discord.com官網,并在這個頁面點擊了之前收藏的惡意的書簽“Hello,World!”從而執行了一個彈窗語句,可以發現執行的源顯示的是discord.com。
這里有一個域的概念,瀏覽器是有同源策略等防護策略的,按理不屬于discord.com做出的操作不應該在discord.com域的頁面有響應,但書簽卻繞過了這個限制。
慢霧:yearn攻擊者利用閃電貸通過若干步驟完成獲利:2021年02月05日,據慢霧區情報,知名的鏈上機槍池yearnfinance的DAI策略池遭受攻擊,慢霧安全團隊第一時間跟進分析,并以簡訊的形式給大家分享細節,供大家參考:
1.攻擊者首先從dYdX和AAVE中使用閃電貸借出大量的ETH;
2.攻擊者使用從第一步借出的ETH在Compound中借出DAI和USDC;
3.攻擊者將第二部中的所有USDC和大部分的DAI存入到CurveDAI/USDC/USDT池中,這個時候由于攻擊者存入流動性巨大,其實已經控制CruveDAI/USDC/USDT的大部分流動性;
4.攻擊者從Curve池中取出一定量的USDT,使DAI/USDT/USDC的比例失衡,及DAI/(USDT&USDC)貶值;
5.攻擊者第三步將剩余的DAI充值進yearnDAI策略池中,接著調用yearnDAI策略池的earn函數,將充值的DAI以失衡的比例轉入CurveDAI/USDT/USDC池中,同時yearnDAI策略池將獲得一定量的3CRV代幣;
6.攻擊者將第4步取走的USDT重新存入CurveDAI/USDT/USDC池中,使DAI/USDT/USDC的比例恢復;
7.攻擊者觸發yearnDAI策略池的withdraw函數,由于yearnDAI策略池存入時用的是失衡的比例,現在使用正常的比例體現,DAI在池中的占比提升,導致同等數量的3CRV代幣能取回的DAI的數量會變少。這部分少取回的代幣留在了CurveDAI/USDC/USDT池中;
8.由于第三步中攻擊者已經持有了CurveDAI/USDC/USDT池中大部分的流動性,導致yearnDAI策略池未能取回的DAI將大部分分給了攻擊者9.重復上述3-8步驟5次,并歸還閃電貸,完成獲利。參考攻擊交易見原文鏈接。[2021/2/5 18:58:47]
可以預見書簽這么個小功能隱含的安全問題,正常添加書簽的方式會明顯看到書簽網址:
動態 | 慢霧:Electrum“更新釣魚”盜幣攻擊補充預警:Electrum 是全球知名的比特幣輕錢包,支持多簽,歷史悠久,具有非常廣泛的用戶群體,許多用戶喜歡用 Electrum 做比特幣甚至 USDT(Omni) 的冷錢包或多簽錢包。基于這種使用場景,Electrum 在用戶電腦上使用頻率會比較低。Electrum 當前最新版本是 3.3.8,而已知的 3.3.4 之前的版本都存在“消息缺陷”,這個缺陷允許攻擊者通過惡意的 ElectrumX 服務器發送“更新提示”。這個“更新提示”對于用戶來說非常具有迷惑性,如果按提示下載所謂的新版本 Electrum,就可能中招。據用戶反饋,因為這種攻擊,被盜的比特幣在四位數以上。本次捕獲的盜幣攻擊不是盜取私鑰(一般來說 Electrum 的私鑰都是雙因素加密存儲的),而是在用戶發起轉賬時,替換了轉賬目標地址。在此我們提醒用戶,轉賬時,需要特別注意目標地址是否被替換,這是近期非常流行的盜幣方式。并建議用戶使用 Ledger 等硬件錢包,如果搭配 Electrum,雖然私鑰不會有什么安全問題,但同樣需要警惕目標地址被替換的情況。[2020/1/19]
稍微有安全意識的讀者應該會直接看到網址信息明顯存在問題。
當然如果是一個構造好誘導你拖拽收藏到書簽欄到頁面呢?可以看到twitter鏈接中的演示視頻就是構造了這么個誘導頁面:”Dragthistoyourbookmarked”。
也就是拖著某個鏈接即可添加到書簽欄,只要釣魚劇本寫得足夠真實,就很容易讓安全意識不足的用戶中招。
要實現拖拽即可添加到書簽欄只需要構造一個a標簽,下面是示例代碼:
書簽在點擊時可以像在開發者工具控制臺中的代碼一樣執行,并且會繞過CSP(ContentSecurityPolicy)策略。
讀者可能會有疑問,類似“javascript:()”這樣的鏈接,在添加進入到瀏覽器書簽欄,瀏覽器竟然會沒有任何的提醒?
筆者這里以谷歌和火狐兩款瀏覽器來進行對比。
使用谷歌瀏覽器,拖拽添加正常的URL鏈接不會有任何的編輯提醒。
使用谷歌瀏覽器,拖拽添加惡意鏈接同樣不會有任何的編輯提醒。
使用火狐瀏覽器如果添加正常鏈接不會有提醒。
使用火狐瀏覽器,如果添加惡意鏈接則會出現一個窗口提醒編輯確認保存。
由此可見在書簽添加這方面火狐瀏覽器的處理安全性更高。
場景演示
演示采用的谷歌瀏覽器,在用戶登錄Web端Discord的前提下,假設受害者在釣魚頁面的指引下添加了惡意書簽,在Discord?Web端登錄時,點擊了該書簽,觸發惡意代碼,受害者的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機器人,在頻道里發布公告等虛假消息進行釣魚。
總結
攻擊時刻在發生,針對已經遭受到惡意攻擊的用戶,建議立刻采取如下行動進行補救:
1.立刻重置Discord賬號密碼。
2.重置密碼后重新登錄該Discord賬號來刷新Token,才能讓攻擊者拿到的Token失效。
3.刪除并更換原有的webhook鏈接,因為原有的webhook已經泄露。
4.提高安全意識,檢查并刪除已添加的惡意書簽。
作為用戶,重要的是要注意任何添加操作和代碼都可能是惡意的,Web上會有很多的擴展看起來非常友好和靈活。書簽不能阻止網絡請求,在用戶手動觸發執行的那一刻,還是需要保持一顆懷疑的心。
本文到這邊就結束了,慢霧安全團隊將會揭露更多關于黑暗森林的攻擊事件,希望能夠幫助到更多加密世界的人。
By:耀@慢霧安全團隊
4月10日,英超將迎來爭冠關鍵一戰——由歐易OKX贊助的曼城主場迎戰利物浦,目前曼城隊積73分位列第一,利物浦隊積72分位列第二.
1900/1/1 0:00:00川觀新聞記者肖姍姍圖片由四川數字出版傳媒有限公司提供4月21日,記者從新華文軒旗下四川數字出版傳媒有限公司獲悉.
1900/1/1 0:00:00以太坊的質押投資目前每年的收益為4-5%,而用戶在新發行的ETH(以太坊)中可以獲得獎勵,以幫助網絡達成共識。 對以太坊生態系統來說,質押是一種公共產品.
1900/1/1 0:00:00你是否曾因害怕錯過一個幣而買在最高點?你是否曾賣掉藍籌而上車了一個垃圾幣?你是否曾在虧了50%的時候不肯割肉導致繼續虧損45%?以上都是認知偏差在作祟,是錯誤的投資思維導致這些結果.
1900/1/1 0:00:00DeFi數據 1.DeFi代幣總市值:1327.57億美元 DeFi總市值數據來源:coingecko2.過去24小時去中心化交易所的交易量:524.
1900/1/1 0:00:00在本文中,鏈捕手將對近期頭部加密風投機構押注的早期項目進行介紹,幫助讀者們進一步了解到未來的潛力項目.
1900/1/1 0:00:00