后偷渡時代的盜幣方式之爆破攻擊區塊鏈

區塊鏈安全檔案 2018-08-25 00:01
分享到:
導讀

對于暫時無法關閉對公網暴露的RPC接口的節點,在不使用personal.unlockAccount()的情況下,仍然存在被盜幣的可能。

對于暫時無法關閉對公網暴露的RPC接口的節點,在不使用personal.unlockAccount()的情況下,仍然存在被盜幣的可能。

漏洞復現

被攻擊節點啟動參數為:geth–testnet–rpc–rpcaddr 0.0.0.0–rpcapi eth,personal console

攻擊者的攻擊步驟為:

1.攻擊者探測到目標開放了RPC端口->獲取當前節點的區塊高度、節點上的賬戶列表以及各賬戶的余額。根據蜜罐捕獲的數據,部分攻擊還會通過personal_listWallets接口進行查詢,尋找當前節點上已經unlocked的賬戶。

2.調用personal_unlockAccount接口嘗試解密用戶賬戶。假如用戶使用了弱口令,攻擊者將會成功解鎖相應賬戶。

3.攻擊者可以將解鎖賬戶中的余額全部轉給自己。

攻擊流程如下圖所示:

升級的爆破方式

根據偷渡漏洞的原理可以知道該攻擊方式有一個弊端:如果有兩個攻擊者同時攻擊一個節點,當一個攻擊者爆破成功,那么這兩個攻擊者都將可以取走節點中的余額。

誰付出了更多的手續費,誰的交易將會被先打包。這也陷入了一個惡性循環,盜幣者需要將他們的利益更多地分給打包的礦工才能偷到對應的錢。也正是因為這個原因,蜜罐捕獲到的爆破轉賬請求從最初的 personal_unlockAccount 接口逐漸變成了 personal_sendTransaction 接口。

personal_sendTransaction接口是Geth官方在2018/01新增了一個解決偷渡漏洞的RPC接口。使用該接口轉賬,解密出的私鑰將會存放在內存中,所以不會引起偷渡漏洞相關的問題。攻擊者與時俱進的攻擊方式不免讓我們驚嘆。

蜜罐捕獲攻擊JSON‐RPC相關數據分析

探測的數據包

對蜜罐捕獲的攻擊流量進行統計,多個 JSON-RPC 接口被探測或利用:

其中eth_blockNumber、eth_accounts、net_version、personal_listWallets等接口具有很好的前期探測功能,net_version可以判斷是否是主鏈,personal_listWallets則可以查看所有賬戶的解鎖情況。

personal_unlockAccount、personal_sendTransaction、eth_sendTransaction等接口支持解鎖賬戶或直接進行轉賬。

可以說,相比于第一階段的攻擊,后偷渡時代針對JSON-RPC的攻擊正呈現多元化的特點。

爆破賬號密碼

蜜罐在2018/05/24第一次檢測到通過unlockAccount接口爆破賬戶密碼的行為。截止2018/07/14蜜罐一共捕獲到809個密碼在爆破中使用。

攻擊者主要使用personal_unlockAccount接口進行爆破,爆破的payload主要是:

在所有的爆破密碼中有一個比較特殊:ppppGoogle;該密碼在personal_unlockAccount和personal_sendTransaction接口均有被多次爆破的痕跡。

轉賬的地址

蜜罐捕獲到部分新增的盜幣地址有:

攻擊來源 IP

區塊鏈技術與虛擬貨幣的火熱,賦予了鏈上貨幣們巨大的經濟價值,每個人都想在區塊鏈浪潮中分得一杯羹。黑客們更是如此,他們作為盜幣者,絞盡腦汁的想著各個角度攻擊區塊鏈與合約。當黑客棲身于礦工,他們不但能挖出區塊,也能挖出漏洞。

攻擊 接口 賬戶 爆破 節點
分享到:

1.TMT觀察網遵循行業規范,任何轉載的稿件都會明確標注作者和來源;
2.TMT觀察網的原創文章,請轉載時務必注明文章作者和"來源:TMT觀察網",不尊重原創的行為TMT觀察網或將追究責任;
3.作者投稿可能會經TMT觀察網編輯修改或補充。


專題報道