環環相扣 —— Gnosis Safe Multisig 用戶被黑分析

By:Victory@慢霧安全團隊

2021 年 12 ⽉ 3 ⽇,據慢霧區情報,⼀位 Gnosis Safe ⽤戶遭遇了嚴重且複雜的⽹絡釣⻥攻擊。慢霧安全團隊現將簡要分析結果分享如下。

相關信息

攻擊者地址 1:

0x62a51ad133ca4a0f1591db5ae8c04851a9a4bf65

攻擊者地址 2:

0x26a76f4fe7a21160274d060acb209f515f35429c

惡意邏輯實現合約 ETH 地址:

0x09afae029d38b76a330a1bdee84f6e03a4979359

惡意合約 ETH 地址 MultiSendCallOnly 合約:

0x3cb0652856d7eabe51f1e3cceda99c93b05d7cea

受攻擊的代理合約地址:

0xc97f82c80df57c34e84491c0eda050ba924d7429

邏輯合約地址:

0x34cfac646f301356faa8b21e94227e3583fe3f5f

MultiSendCall 合約 ETH 地址:

0x40a2accbd92bca938b02010e17a5b8929b49130d

攻擊交易:

https://etherscan.io/tx/0x71c2d6d96a3fae4be39d9e571a2678d909b83ca97249140ce7027092aa77c74e

攻擊步驟

環環相扣 —— Gnosis Safe Multisig 用戶被黑分析

第一步:攻擊者先是在 9 天前部署了惡意 MultiSendCall,並且驗證了合約代碼讓這個攻擊合約看起來像之前真正的 MultiSendCall。

環環相扣 —— Gnosis Safe Multisig 用戶被黑分析

第二步:攻擊者通過釣⻥⼿段構造了⼀個指向惡意地址 calldata 數據讓⽤戶進⾏簽名。calldata ⾥⾯正確的 to 地址應該是 0x40a2accbd92bca938b02010e17a5b8929b49130d,現在被更改成了惡意合約 ETH 地址 MultiSendCallOnly 合約 0x3cb0652856d7eabe51f1e3cceda99c93b05d7cea。

環環相扣 —— Gnosis Safe Multisig 用戶被黑分析

由於攻擊者獲取的簽名數據是正確的,所以通過了驗證多簽的階段,之後就開始執⾏了攻擊合約的 multiSend 函數

環環相扣 —— Gnosis Safe Multisig 用戶被黑分析

這時候通過查看攻擊合約我們發現此處的修飾器 Payable 有賦值的情況存在。這時候我們通過對源碼的反編譯發現:

環環相扣 —— Gnosis Safe Multisig 用戶被黑分析

當 payment.version < VERSION 這個條件觸發的時候每次調⽤的時候都會對 storage[0x00] 進⾏重新賦值。這個 storage[0x00] 是不是特別眼熟?沒錯我們來看下 Proxy 合約。

環環相扣 —— Gnosis Safe Multisig 用戶被黑分析

當這筆交易執⾏完畢時 Proxy 的 storage[0x00] 已經變成0x020014b037686d9ab0e7379809afae029d38b76a330a1bdee84f6e03a4979359

由於 Proxy 合約執⾏的邏輯合約地址 masterCopy 是從 storage[0x00] 讀取的,所以 Proxy 指向的邏輯合約會被攻擊者更改為攻擊合約。後續攻擊者只需等待⽤戶把⾜夠的代幣放⼊此合約,之後構造轉賬函數把錢取⾛即可。

我們分析了受攻擊的合約的交易記錄后,發現該攻擊者⾮常狡猾。

環環相扣 —— Gnosis Safe Multisig 用戶被黑分析
環環相扣 —— Gnosis Safe Multisig 用戶被黑分析

攻擊者為了避免被發現,在攻擊合約中的邏輯中還實現了保證⽤戶依然能正常使⽤相關的功能。

環環相扣 —— Gnosis Safe Multisig 用戶被黑分析

反編譯攻擊者的邏輯合約發現,在攻擊合約的邏輯保證了攻擊者動⼿前⽤戶都可以正常使⽤多簽功能。只有當攻擊者⾃⼰調⽤的時候才會繞過驗證直接把⽤戶的錢取⾛。

MistTrack 分析

經 MistTrack 反洗錢追蹤系統分析發現,攻擊者地址 1 在 11 ⽉ 23 號開始籌備,使⽤混幣平台 Tornado.Cash 獲得初始資⾦ 0.9384 ETH,在⼏分鐘後部署了合約,然後將 0.8449 ETH 轉到了攻擊者地址 2。

環環相扣 —— Gnosis Safe Multisig 用戶被黑分析

攻擊成功后,攻擊者地址 2 通過 Uniswap、Sushiswap 將獲利的 HBT、DAI 等代幣兌換為 ETH,最後將 56.2 ETH 轉到混幣平台 Tornado Cash 以躲避追蹤。

環環相扣 —— Gnosis Safe Multisig 用戶被黑分析

總結

本次攻擊先是使⽤了釣⻥⼿段獲取了⽤戶的⼀次完整的多簽數據,在利⽤了 delegatecall 調⽤外部合約的時候,如果外部合約有對數據進⾏更改的操作的話,會使⽤外部合約中變量存儲所在對應的 slot 位置指向來影響當前合約同⼀個 slot 的數據。通過攻擊合約把代理合約指向的邏輯指向⾃⼰的攻擊合約。這樣就可以隨時繞過多簽把合約的錢隨時轉⾛。

經過分析本次的事件,⼤概率是⿊客團隊針對 Gnosis Safe Multi-sig 應⽤的⽤戶進⾏的釣⻥攻擊, 0x34cfac64 這個正常的邏輯合約是 Gnosis Safe 官⽅的地址,攻擊者將這個地址硬編碼在惡意合約中,所以這⼀系列的操作是適⽤於攻擊所有 Gnosis Safe Multi-sig 應⽤的⽤戶。此次攻擊可能還有其他受害者。慢霧安全團隊建議在訪問 Gnosis Safe Multisig 應⽤的時候要確保是官⽅的⽹站,並且在調⽤之前要仔細檢查調⽤的內容,及早的識別出釣⻥⽹站和惡意的交易數據。

本文鏈接:https://www.8btc.com/article/6713308

轉載請註明文章出處

(0)
上一篇 2021-12-03 22:21
下一篇 2021-12-03 23:18

相关推荐