Как найти приватный ключ в бинарном коде от Bitcoin Lightning Wallet уязвимость в Quasar Framework
В этой статье мы заострим внимание на приложение для смартфонов iOS и Android популярный Биткоин Кошелек с поддержкой быстрых платежей через (Lightning network) BLW: Bitcoin Lightning Wallet. К большому сожалению многие автономные ноды мобильных приложении с открытым исходным кодом от LNbits Node Manager и Core Lightning подвергает ВЫСОКЕМУ РИСКУ потери всех денежных средств в различных криптовалютных монетах.
Разберем теоретическую основу: LNbits – это бесплатная система учетных записей для многих мобильных приложении которые работают с различными криптовалютными кошельками. Изначально широкую популярность LNbits Node Manager получила с развитием Bitcoin Lightning Wallet (BLW) т.к. развитие некастодиальных и автономных нодов для Bitcoin SPV, предназначенный для Android и iPhone с функциональностью Node.js. Благодаря автономным нодам вы имеете полный контроль над своим средством и вам необходимо самостоятельно управлять своими платежными средствами (в отличие от других мобильных приложении с криптовалютными кошельками).
Node Manager с открытым исходным кодом LNbits решает несколько задач, таких как:
- Сбор бумажных цен на монет BTC, ETH, LTC, USDT, XLM, BNB, и.т.д
- Ведение списка общедоступных нодов LNbits, которые Bitcoin Lightning Wallet (BLW) использует для открытия платежных каналов.
- Предоставление частичной оплаты платежных маршрутов.
- Хранение зашифрованной резервной копии вашего платежного канала.
Согласна примерам Salvador Guerrero многие кто установил LNBits на полноценный Биткоин-узел (Bitcoin Node) может работать на Raspberry Pi, чтобы отправлять и получать Bitcoin без комиссий за транзакции. Это возможно только в том случае, если все криптокошельки от LNbits находятся в одном экземпляре Core Lightning.
После детального изучение всех материалов из хронологического списка мы обратили внимание на уязвимость в фреймворке и на процесс работы в коде quasar.umd.js
Quasar – это фреймворк на основе Vue.js с открытым исходным кодом, который позволяет создавать адаптивные сайты и мобильные приложение для различных криптовалютных кошельков.
Как нам известно из источника Snyk Vulnerability Database в последних версиях Vue.js содержались уязвимости, что позволило версии LNbits v0.11.0 запустить серию циклических ошибок в коде quasar.umd.js
Ошибка в коде quasar.umd.js
(Вы можете открыть готовый файл от Jupyter Notebook и загрузить в блокнот Google Colab )
Рассмотрим реальный пример извлечение приватного ключа Биткоин Кошелька из слабого генератора псевдослучайных чисел (PRNG) в коде quasar.umd.js
Биткоин Кошелек: В сентябре 2023 года была кража на сумму: 11032.77 долларов США // БИТКОИН: 0.30412330 BTC
Откроем сервис Google Colab по ссылке: https://colab.research.google.com
Установим Ruby в Google Colab
Для запуска необходимых нам программ установим объектно-ориентированный язык программирования Ruby
Установим Metasploit Framework и воспользуемся MSFVenom
Посмотрим содержимое папки "metasploit-framework"
Опции:
Откроем код GitHub в воспользуемся уязвимым файлом: quasar.umd.js
В примечание мы видим ссылку на файл: quasar.umd.js
LNbits, free and open-source Lightning wallet and accounts system
Установим lnbits в Google Colab:
Откроем уязвимый файл: quasar.umd.js через утилиту cat
Загрузим "ExploitDarlenePRO" по каталогу: /modules/exploits/
Перейдем по каталогу: /ExploitDarlenePRO/
Нам необходимо определить наш LHOST (Local Host) наш IP-address атакующей виртуальной машины.
Воспользуемся инструментом для создания полезной нагрузки MSFVenom
Для эксплуатации выбираем Биткоин Кошелек: 1qzgi39y33HrM7mHsZ6FaNspHCraJe62F
Результат:
Команда:
Запустим код для проверки соответствие Биткоин Адреса:
Откроем файл: privtoaddr.txt
Результат:
Откроем bitaddress и проверим:
References:
- [1] A Cryptoeconomic Traffic Analysis of Bitcoins Lightning Network (Ferenc Beres, Istvan A. Seres, Andras A. Benczur)
- [2] Flood & Loot: A Systemic Attack On The Lightning Network (Jona Harris, Aviv Zohar)
- [3] Short Paper: A Centrality Analysis of the Lightning Network (Philipp Zabka, Klaus-T. Foerster, Christian Decker, Stefan Schmid)
- [4] Congestion Attacks in Payment Channel Networks (Ayelet Mizrahi, Aviv Zohar)
- [5] A Deep Dive Into Lightning as a Bitcoin Scaling Solution (George Kaloudis, Teddy Oosterbaan)
- [6] The Lightning Network is an overlay network powered by Bitcoin smart contracts it is NOT a blockchain (George Kaloudis, Teddy Oosterbaan)
- [7] Lightning Network Scalability Solutions (Joseph Poon, Thaddeus Dryja)
- [8] The Bitcoin Lightning Network DRAFT Version 0.5 (Joseph Poon, Thaddeus Dryja)
- [9] CoinPool efficient off-chain payment pools for Bitcoin (Gleb Naumenko, Antoine Riard)
Данный материал создан для портала CRYPTO DEEP TECH для обеспечения финансовой безопасности данных и криптографии на эллиптических кривых secp256k1 против слабых подписей ECDSA в криптовалюте BITCOIN. Создатели программного обеспечения не несут ответственность за использование материалов.