慢霧:Gnosis Safe Multisig用戶被黑分析

慢霧安全團隊建議在訪問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

攻擊步驟

圖片

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

圖片圖片

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

圖片圖片

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

圖片圖片

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

圖片圖片

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

圖片圖片

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

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

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

圖片圖片

圖片圖片

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

圖片圖片

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

MistTrack 分析

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

圖片圖片

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

圖片圖片

總結

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

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

展開全文打開碳鏈價值APP 查看更多精彩資訊

Total
0
Shares
Related Posts