Milk Sad уязвимость в Libbitcoin Explorer 3.x. крупная кража на $ 900 000 у пользователей Биткоин Кошельков
Исследователи компании “Slowmist” проводят регулярное исследование сферы безопасности блокчейна Биткоин. Они обнародовали уязвимость в библиотеке Libbitcoin Explorer 3.x, которая позволила злоумышленникам украсть более $ 900 000 у пользователей Биткоин Кошельков (BTC)
По данным аналитиков, эта уязвимость может также затронуть пользователей Ethereum, Ripple, Dogecoin, Solana, Litecoin, Bitcoin Cash и Zcash, которые используют Libbitcoin для создания учетных записей.
Исследователи дали кодовое название для данной уязвимости «Milk Sad»
Техническое описание CVE-2023-39910
Cлабая энтропия в Cake Wallet
Средства каждого кошелька, созданного с помощью браузерного расширения Trust Wallet, могли быть украдены без какого-либо вмешательства пользователя.
Совсем недавно, Donjon группа исследований безопасности в Ledger обнаружил критическую уязвимость в этом расширении браузера Trust Wallet, позволяющую злоумышленнику украсть все активы любого кошелька, созданного с помощью этого расширения, без какого-либо взаимодействия с пользователем. Зная адрес учетной записи, можно немедленно вычислить ее закрытый ключ, а затем получить доступ ко всем ее средствам. Ниже приведены подробные сведения об уязвимости, о том, как Ledger Donjon обнаружил ее, ее влияние с течением времени, оценка уязвимых активов и то, как Trust Wallet отреагировал на ее исправление. Но начнем с напоминания основ.
Cложно продемонстрировать, что случайные числа верны, а плохой, но не смертельно ошибочный генератор случайных чисел может легко обмануть наблюдателя. Для хорошей случайности нам нужно равномерное распределение битов и байтов (и даже всех размеров кусков) и непредсказуемость. Для наблюдателя последовательности должно быть невозможно иметь какую-либо информацию о следующей части генерируемой последовательности.
Поскольку достичь этих свойств невероятно сложно, криптовалютное пространство старается максимально избегать зависимости от случайности, но на одном этапе она нам все равно понадобится: когда мы создаем новый кошелек.
Вы, вероятно, уже знакомы со своей мнемоникой — от 12 до 24 английских слов, которые позволяют вам создавать резервные копии вашего кошелька (если нет, вы можете прочитать статью Ledger Academy по этой самой теме).
Эта мнемоника кодирует от 16 до 32 байтов энтропии в соответствии со стандартом BIP 39. Качество этой энтропии имеет решающее значение, поскольку она будет исходным кодом всех ключей, используемых вашим кошельком во всех цепочках, после детерминированного процесса вывода, определенного стандарты BIP 32 и BIP 44 .
Полную развернутую документацию теоретической части можно изучить в блоге: Ledger Donjon , а также в документации: Milk Sad
Перейдем к практической части:
(Вы можете открыть готовый файл от Jupyter Notebook и загрузить в блокнот Google Colab )
Рассмотрим реальные примеры извлечение приватного ключа Биткоин Кошелька с помощью уязвимости в библиотеке Libbitcoin Explorer 3.x,
Первый Биткоин Кошелек: В сентябре 2023 года была кража на сумму: 40886.76 долларов США // БИТКОИН: 1.17536256 BTC
Vulnerability_in_Libbitcoin_Explorer_3_x_library.ipynb
Откроем сервис Google Colab по ссылке: https://colab.research.google.com
Установим Ruby в Google Colab
Установим Metasploit Framework и воспользуемся MSFVenom
Установим Metasploit Framework из GitHub и воспользуемся инструментом MSFVenom для создания полезной нагрузки.
Посмотрим содержимое папки "metasploit-framework"
Опции:
Откроем обнаруженную уязвимость CVE-2023-39910
В примечание мы видим ссылку на файл: pseudo_random.cpp
libbitcoin-system Bitcoin Cross-Platform C++ Development Toolkit
Установим libbitcoin-system в Google Colab:
Откроем уязвимый файл: pseudo_random.cpp через утилиту cat
Перейдем по каталогу: /ExploitDarlenePRO/
Нам необходимо определить наш LHOST (Local Host) наш IP-address атакующей виртуальной машины.
Воспользуемся инструментом для создания полезной нагрузки MSFVenom
Для эксплуатации выбираем Биткоин Кошелек: 12iBrqVPpQ2oNeDgJu1F8RtoH1TsD1brU2
Полученный бинарный формат нам необходимо сохранить в файл: binary.txt воспользуемся утилитой echo
Воспользуемся кодом:
Запустим код для проверки соответствие Биткоин Адреса:
Откроем bitaddress и проверим:
Рассмотрим второй пример:
Рассмотрим второй пример извлечение приватного ключа Биткоин Кошелька с помощью уязвимости в библиотеке Libbitcoin Explorer 3.x,
Второй Биткоин Кошелек: В сентябре 2023 года была кража на сумму: 19886.91 долларов США // БИТКОИН: 0.58051256 BTC
Снова воспользуемся уязвимым файлом: pseudo_random.cpp
Полученный бинарный формат нам необходимо сохранить в файл: binary.txt воспользуемся утилитой echo
Воспользуемся кодом:
Откроем bitaddress и проверим:
References:
- [2] RFC 8682 TinyMT32 Pseudorandom Number Generator [PRNG] (M. Saito Hiroshima University M. Matsumoto Hiroshima University V. Roca, Ed. INRIA E. Baccelli)
- [3] Introduction to Mersenne Twister Pseudorandom number generator Qiao Zhou [June 30, 2016]
- [4] High-Performance Pseudo-Random Number Generation on Graphics Processing Units (Nimalan Nandapalan , Richard P. Brent , Lawrence M. Murray , and Alistair Rendell)
- [5] The Mersenne Twister Output Stream Postprocessing (Yurii Shcherbyna , Nadiia Kazakova , Oleksii Fraze-Frazenko)
- [6] Cellular Automaton–Based Emulation of the Mersenne Twister (Kamalika Bhattacharjee, Nitin More, Shobhit Kumar Singh, Nikhil Verma)
- [7] Generating Efficient and High-Quality Pseudo-Random Behavior on Automata Processors (Jack Wadden, Nathan Brunelle, Ke Wang, Mohamed El-Hadedy, Gabriel Robins, Mircea Stan and Kevin Skadron)
Данный материал создан для портала CRYPTO DEEP TECH для обеспечения финансовой безопасности данных и криптографии на эллиптических кривых secp256k1 против слабых подписей ECDSA в криптовалюте BITCOIN. Создатели программного обеспечения не несут ответственность за использование материалов.
Комментарий удален автором поста
ExploitDarlenePro не устанавливается.
Здравствуйте. Репозитория эксплойта выдается только по лицензии от автора.