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 應⽤的時候要確保是官⽅的⽹站,並且在調⽤之前要仔細檢查調⽤的內容,及早的識別出釣⻥⽹站和惡意的交易數據。
本文鏈接:https://www.8btc.com/article/6713308
轉載請註明文章出處