在具有嚴重漏洞 OpenSSL 0.9.8 CVE-2008-0166 的早期版本的 Bitcoin Core 上搜索 BTC 硬幣
在本文中,我們將創建一個使用 CVE-2008-0166 漏洞生成比特幣地址 (P2PKH) 的工具。這是一個在早期版本的比特幣核心軟件客戶端上尋找比特幣的研究項目。 https://www.youtube.com/embed/zHkXups2I8k 生成可預測 數字的隨機數生成器CVE -2008-0166 VAIM-檢測到 OpenSSL 0.9.8/1.0.0 關鍵漏洞版本 OpenSSL 0.9.8 CVE-2008-0166 僅填充了進程 ID。由於字節順序和 sizeof(long) 之間的差異,輸出依賴於體系結構: 32位大端(例如 i386)、 64位大端(例如 amd64, ia64)、 32位大端(例如 powerpc 、斯巴克)。 PID 0 是核心,並且 PID_MAX (32768)不是通過移植達到的,因此 每個架構有32767 個可能的隨機數流。 比特幣核心軟件客戶端使用 OpenSSL. 具體來說,它使用一個函數 «EC_KEY_generate_key()» 來生成比特幣地址 (如密鑰) 以接收付款。舊版本的比特幣核心生成並存儲 100 個 密鑰 wallet.dat 只有在收到比特幣付款時才會生成新密鑰。因此,Bitcoin Core 軟件客戶端維護著一個包含 100 個 未使用的比特幣密鑰 (地址)的池。內部隨機數生成器的狀態取決於 OpenSSL 調用之前 'EC_KEY_generate_key()'在庫中進行的其他調用。影響 RNG 內部狀態的挑戰: «RAND_add(8)», «RAND_bytes(8)» и «RAND_bytes(32)». 因此研究是通過大量舊的比特幣資源來找出在調用之前進行了哪些調用影響了 RNG 的內部狀態比特幣核心軟件 «EC_KEY_generate_key()». 客戶端版本之間的調用路徑變化 該研究重點關注以下版本: | 發布日期 | 版本| (le32/le64)我們的目標是使用來自關鍵漏洞的隨機數,為每個版本的比特幣核心軟件客戶端、每個架構、每個進程 ID 和比特幣地址 生成私鑰 (P2PKH)。 OpenSSL 0.9.8. 最終,我們將創建一個比特幣地址生成器 (P2PKH) 並將所有內容保存到一個文件中 result.txt 所有內容都將存儲在 Google 雲端硬盤文件存儲中 使 OpenSSL 再次易受攻擊 為此,我們將使用 來自 Google Colab 的分發包“Ubuntu 18.04.5 LTS” 之前,我們錄製了 一個視頻教程: “Google Colab 中的…