Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
etherblob-explorer — Поиск и извлечение blob-файлов в сети Ethereum Blockchain | Kitploit
Инструменты/GitHubGitHub/litneet64/etherblob-explorer
OSINT (Разведка открытых источников)ФорензикаСбор информацииВосстановление ДанныхCTF
GitHublitneet64/etherblob-explorer

etherblob-explorer

Поиск и извлечение blob-файлов в сети Ethereum Blockchain

Репозиторий
43115 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

EtherBlob Explorer

GitHub top language GitHub release (latest by date) GitHub

Поиск и извлечение blob-файлов в сети Ethereum с использованием API Etherscan.io.

thumbnail

Введение

EtherBlob Explorer — это инструмент, предназначенный для исследователей, аналитиков, участников CTF или любого любопытного, кто хочет искать различные типы файлов или любые осмысленные данные, предоставленные человеком, в блокчейне Ethereum. Он выполняет поиск в заданном пользователем диапазоне идентификаторов блоков или временных меток UNIX в любой из 5 доступных сетей: MainNet, Görli, Kovan, Rinkeby и Ropsten.

О практическом применении можно прочитать в этом эксперименте, проведённом в 2017 году. Неизменность блокчейна действительно может быть палкой о двух концах.

Установка

Выполните следующую команду:

root@kitploit:~
$ pip install git+https://github.com/litneet64/etherblob-explorer.git

Теперь инструмент готов к использованию из командной строки. Ниже вы найдёте несколько распространённых примеров использования!

Возможности

Сети

Поиск в любой из пяти сетей Ethereum:

  • MainNet
  • Görli
  • Kovan
  • Rinkeby
  • Ropsten

Места поиска

Этот инструмент может выполнять поиск в следующих местах, по отдельности или в любой комбинации в рамках одного запуска:

  • Входные данные транзакций — поиск во входных данных транзакции (место по умолчанию).
  • Входные данные блока — поиск во входных данных блока.
  • Хранилище контракта — поиск в массиве хранилища контракта на первых N 32-байтовых позициях, рассматривая всё как одну большую строку данных.
  • Адреса 'to' — поиск с использованием адресов получателей в качестве возможных входных данных [*] (сначала проверка заголовков файлов, затем повторная проверка всех собранных данных с помощью binwalk).

[*] Хранение данных в адресах 'to' возможно в сети Ethereum, так как нет проверки, отправляется ли транзакция на адрес, не связанный с каким-либо ключом. Это означает, что можно совершать транзакции на произвольные адреса, формируя полезную нагрузку из нескольких транзакций размером по 20 байт (это очень редко, но некоторые CTF-задачи именно такие).


Методы поиска и извлечения

Все эти методы могут использоваться как по отдельности, так и в любой комбинации:

  • Встроенные файлы — поиск файлов, встроенных в данные, с помощью binwalk.
  • Заголовки файлов / магические байты — поиск с использованием заголовков и магических байтов через утилиту Linux file (метод по умолчанию).
  • Дамп ASCII-строк — поиск ASCII-строк внутри данных.
  • Поиск на основе энтропии — использование энтропии Шеннона в качестве меры для поиска текста на естественном языке (например, UTF-8 Unicode), зашифрованных/сжатых файлов или всего, что пользователь сочтёт подходящим, с заданными пользователем границами энтропии.

ВАЖНО: Порядок, указанный здесь, используется под капотом для отбрасывания поиска другими методами (например, если файл найден через встроенные файлы, то не будет предпринята попытка поиска с помощью заголовков файлов, дампов ASCII-строк или энтропии), так как маловероятно, что будет найдено что-то осмысленное, если предыдущие методы уже были успешны.


Разное
  • Принимает временные метки UNIX (вместо идентификаторов блоков), которые преобразуются в ближайшие идентификаторы блоков, зафиксированных в эти моменты времени.
  • Сохраняет все данные из посещённых транзакций в файл для последующего просмотра.
  • Сохраняет логи, отображаемые в CLI, в файл для последующего анализа извлечённых файлов.
  • Позволяет игнорировать заданные пользователем форматы файлов (без учёта регистра) при извлечении и принимать подстроки полного имени формата для чёрного списка.
  • Выводит общую статистику выполнения (например, сколько блоков/транзакций обработано, сколько блоков осталось) каждую минуту, а также отображает интересные метрики по окончании текущего запуска.
  • Больше полезных возможностей — в руководстве (-h)!

Использование

Типовые случаи

  • Стандартный поиск (внутри транзакций по заголовкам файлов) в MainNet с ключом API в расположении по умолчанию (.api-key) и между этими двумя идентификаторами блоков (включительно):
root@kitploit:~
$ etherblob 4081599 4081600
  • Более глубокий поиск (поиск встроенных файлов + обычный метод) в сети goerli с ключом в произвольном файле:
root@kitploit:~
$ etherblob -K api.key 3134050 3145570 -M -H --network goerli
  • Поиск одновременно по заголовкам блоков и транзакциям с сохранением извлечённых файлов в папку 'extracted':
root@kitploit:~
$ etherblob 4081599 4081600 --blocks --transactions -D extracted/
  • Поиск только внутри адресов 'to' в диапазоне блоков, зафиксированных между Jan 25 2021 19:00:00 и Jan 26 2021 19:00:00:
root@kitploit:~
$ etherblob -t 1611601200 1611687600 --addresses
  • Поиск строк только в хранилищах контрактов для первых 4 позиций массива хранилища (128 байт данных):
root@kitploit:~
$ etherblob 3911697 3912697 -S --contracts -C 4
  • Поиск только внутри транзакций зашифрованных/сжатых данных (игнорируя все остальные форматы):
root@kitploit:~
$ etherblob 4081599 4081600 --encrypted
  • Поиск внутри транзакций файлов с произвольной энтропией с сохранением транзакций в файл:
root@kitploit:~
$ etherblob  3911697 3912697 -E 4.0 5.0 -s
  • Только дамп ASCII-строк по блокам и транзакциям, совершённым в канун Рождества (между 24 и 25 числами):
root@kitploit:~
$ etherblob -t 1608836400 1608922800 --blocks --transactions --strings
  • Полный поиск (медленно, ожидайте много ложных срабатываний):
root@kitploit:~
$ etherblob 4081599 4081600 -U -S -M -H --blocks --transactions --addresses --contracts

Продвинутые сценарии

Дополнительные объяснения продвинутых сценариев и того, что было найдено с их помощью, находятся на вики!

Руководство

root@kitploit:~
usage: etherblob [-h] [--transactions] [--blocks] [--addresses] [--contracts]
                 [--network {main,goerli,kovan,rinkeby,ropsten}] [-H] [-M] [-U] [-E CUSTOM_ENTROPY CUSTOM_ENTROPY]
                 [--encrypted] [-S] [-C CONTRACT_POSITION] [-t] [-K API_KEY_PATH] [-k API_KEY] [-D OUTPUT_DIR]
                 [-o OUT_LOG] [-s] [-i [IGNORED_FMT [IGNORED_FMT ...]]] [--version]
                 start_block end_block

Tool to search and extract blob files on the Ethereum Network.

positional arguments:
  start_block           Start of block id range.
  end_block             End of block id range.

optional arguments:
  -h, --help            show this help message and exit
  --transactions        Search for blob files on transaction inputs. Default search mode.
  --blocks              Search for blob files on block inputs. If enabled then transaction input check is disabled unless
                        explicitly enabled.
  --addresses           Search for blob files on 'to' transaction addresses, as on Ethereum anyone can make transactions
                        to an arbitrary address even if it has no related owner (still not very common). If enabled then
                        transaction's input check is disabled unless explicitly enabled.
  --contracts           Search for blob files on contract's storage. If enabled then transaction input check is disabled
                        unless explicitly enabled.
  --network {main,goerli,kovan,rinkeby,ropsten}, -N {main,goerli,kovan,rinkeby,ropsten}
                        Choose blockchain network to search in. Available choices are Main, Goerli (Görli), Kovan, Rinkeby
                        and Ropsten. MainNet is the default network. Case-insensitive.
  -H, --file-header     If enabled, search for file formats via magic bytes/file headers on data (from blocks,
                        transactions or addresses). Enabled by default unless another method is enabled too.
  -M, --embedded        If enabled, search for embedded files on data (from blocks, transactions or addresses) via
                        binwalk. Disabled by default as parsing now takes longer.
  -U, --unicode         If enabled, attempt to search and dump files containing UTF-8 text from harvested data (blocks,
                        transactions, addresses) using Shannon's Entropy (between 3.5 and 5.0) if no other discernible
                        file is found first on that data. Yields many false positives.
  -E CUSTOM_ENTROPY CUSTOM_ENTROPY, --custom-entropy CUSTOM_ENTROPY CUSTOM_ENTROPY
                        Define your own entropy limits (min and max) to search for files/data on harvested data.
  --encrypted           If enabled, attempt to search and dump encrypted/compressed data found via different search
                        methods (blocks, transactions, addresses) using Shannon's Entropy (between 7.0 and 8.0) if no
                        other discernible file is found first on that data.
  -S, --strings         If enabled, attempt to search and dump ASCII strings into files found inside harvested data
                        (blocks, transactions, addresses) if no other discernible file is found first on that data.
  -C CONTRACT_POSITION, --contract-position CONTRACT_POSITION
                        Search inside contract's data until reaching the (N-1)th position on its storage array. Positions
                        contain 32 bytes worth of data. Count starts at 0 and default pos is the 15th pos (16 indexes in
                        total) if no custom position is given.
  -t, --timestamps      If enabled, then start and end block IDs are interpreted as UNIX timestamps that are then resolved
                        to the closest commited blocks for those specific times.
  -K API_KEY_PATH, --api-key-path API_KEY_PATH
                        Path to file with Etherscan API key for queries. Default search location is '.api-key'.
  -k API_KEY, --api-key API_KEY
                        Etherscan API key as parameter. If given then '--api-key-path' is ignored.
  -D OUTPUT_DIR, --output-dir OUTPUT_DIR
                        Out-dir for extracted files. Default is 'ext_{start block}-{end block}'.
  -o OUT_LOG, --out-log OUT_LOG
                        Out-file for logs. Default is 'etherblob_{start block}-{end block}.log'.
  -s, --save-transactions
                        If enabled, all transactions and their info are stored at file 'transactions_{start-block}-{end-
                        block}.txt'
  -i [IGNORED_FMT [IGNORED_FMT ...]], --ignored-fmt [IGNORED_FMT [IGNORED_FMT ...]]
                        Ignored file formats for extraction. Default ignored/common file formats are 'ISO-8859 text' and
                        'Non-ISO extended-ASCII text'. The 'data' file format is always ignored. Accepts file format
                        substrings and makes case-insensitive matches. '*' is a wildcard to ignore all file formats.
  --version             show program's version number and exit

Official GitHub repo 'https://github.com/litneet64/etherblob-explorer'
Скачать инструмент