Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
etherblob-explorer — 在以太坊区块链网络上搜索并提取 blob 文件 | Kitploit
工具/GitHubGitHub/litneet64/etherblob-explorer
OSINT (开源情报)取证分析信息收集数据恢复CTF
GitHublitneet64/etherblob-explorer

etherblob-explorer

在以太坊区块链网络上搜索并提取 blob 文件

查看仓库
43115年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

EtherBlob Explorer

GitHub top language GitHub release (latest by date) GitHub

使用 Etherscan.io API 在以太坊网络上搜索和提取 blob 文件。

thumbnail

简介

EtherBlob Explorer 是一款面向研究人员、分析师、CTF 玩家或任何充满好奇、希望在以太坊区块链网络上搜索各种文件或有意义的人工提供数据的工具。它能在用户指定的区块 ID 范围或 UNIX 时间戳内,在 5 个可用网络(MainNet、Görli、Kovan、Rinkeby 和 Ropsten)中的任意一个上进行搜索。

关于真实案例,你可以阅读 2017 年进行的这个实验。区块链的不可变性确实是一把双刃剑。

安装

运行以下命令:

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

现在即可从命令行使用,下面是一些常见用法示例!

特性

网络

在以下五个以太坊网络中的任意一个上搜索:

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

搜索位置

该工具可以在以下位置进行搜索,可以单独使用或在同一次运行中组合使用:

  • 交易输入数据:在交易输入数据中搜索(默认位置)。
  • 区块输入数据:在区块输入数据中搜索。
  • 合约存储:在合约的存储数组中搜索,范围是前 N 个 32 字节大小的位置,将所有数据视为一个大字符串。
  • 目标地址:将“to”地址附加作为可能的输入进行搜索 [*](首先检查文件头,并在使用 binwalk 收集所有数据后重新检查)。

[*] 在以太坊网络上,将数据存储在“to”地址上是可能的,因为向没有关联账户密钥的地址发送交易不会进行验证。这意味着你可以向任意地址发起交易,通过多个 20 字节大小的交易来构建有效载荷(这种情况非常罕见,但某些 CTF 挑战也是如此)。


搜索与提取方法

所有这些方法可以单独使用或任意组合使用:

  • 嵌入式文件:使用 binwalk 搜索数据中嵌入的文件。
  • 文件头/魔数:利用 Linux 工具 file 通过文件头和魔数进行搜索(默认方法)。
  • ASCII 字符串转储:搜索数据中的 ASCII 字符串。
  • 基于熵的搜索:使用香农熵作为衡量工具,搜索自然语言文本(例如 UTF-8 Unicode)、加密/压缩文件或用户通过自定义熵限指定的任何内容。

重要提示:此处显示的顺序在内部用于丢弃其他方法的搜索(例如,如果通过 embedded files 找到了文件,则不会尝试使用 file headers、ascii string dump 或 entropy 进行搜索),因为如果先前的方法已经成功,则不太可能再有其他有意义的发现。


杂项
  • 接受 UNIX 时间戳(代替区块 ID),这些时间戳会解析为对应时间点最接近的已提交区块 ID。
  • 将所有访问过的交易数据保存到文件中,以便后续审查。
  • 将 CLI 显示的日志保存到文件中,以便后续对提取的文件进行分析。
  • 忽略用户指定的文件格式(不区分大小写)进行提取,并接受完整文件格式的子串用于黑名单。
  • 每分钟打印总体进度指标(例如已解析多少区块/交易、剩余多少区块),并在当前运行结束时显示一些有趣的指标。
  • 更多有用的功能见手册(-h)!

用法

常见用例

  • 标准搜索(通过文件头在交易内搜索)在 MainNet 上,API 密钥位于默认位置(.api-key),区块 ID 范围(包含两端)为:
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/
  • 仅在区块提交时间范围 Jan 25 2021 19:00:00 到 Jan 26 2021 19:00:00 内的 'to' 地址中搜索:
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
  • 仅在圣诞夜(24 日到 25 日之间)的区块和交易中转储 ASCII 字符串:
root@kitploit:~
$ etherblob -t 1608836400 1608922800 --blocks --transactions --strings
  • 全局搜索(速度慢,可能出现大量误报):
root@kitploit:~
$ etherblob 4081599 4081600 -U -S -M -H --blocks --transactions --addresses --contracts

高级用例

关于高级用例及其发现的更多说明,请参见 wiki!

手册

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

在以太坊网络上搜索和提取 blob 文件的工具。

位置参数:
  start_block           起始区块 ID 范围。
  end_block             结束区块 ID 范围。

可选参数:
  -h, --help            显示此帮助信息并退出。
  --transactions        在交易输入中搜索 blob 文件。默认搜索模式。
  --blocks              在区块输入中搜索 blob 文件。如果启用,则交易输入检查会被禁用,除非明确启用。
  --addresses           在交易的 'to' 地址中搜索 blob 文件,因为在以太坊上任何人都可以向任意地址发起交易,即使该地址没有关联的所有者(仍不常见)。如果启用,则交易输入检查会被禁用,除非明确启用。
  --contracts           在合约存储中搜索 blob 文件。如果启用,则交易输入检查会被禁用,除非明确启用。
  --network {main,goerli,kovan,rinkeby,ropsten}, -N {main,goerli,kovan,rinkeby,ropsten}
                        选择要搜索的区块链网络。可选网络有 Main、Goerli (Görli)、Kovan、Rinkeby 和 Ropsten。默认网络为 MainNet。不区分大小写。
  -H, --file-header     如果启用,则通过数据(来自区块、交易或地址)中的魔数/文件头搜索文件格式。默认启用,除非同时启用其他方法。
  -M, --embedded        如果启用,则通过 binwalk 在数据(区块、交易、地址)中搜索嵌入式文件。默认禁用,因为解析时间更长。
  -U, --unicode         如果启用,则尝试搜索并转储包含 UTF-8 文本的文件,使用香农熵(3.5 到 5.0)从采集的数据(区块、交易、地址)中提取,前提是该数据中未首先找到其他可识别文件。会产生大量误报。
  -E CUSTOM_ENTROPY CUSTOM_ENTROPY, --custom-entropy CUSTOM_ENTROPY CUSTOM_ENTROPY
                        定义自己的熵范围(最小和最大),用于在采集的数据中搜索文件/数据。
  --encrypted           如果启用,则尝试搜索并转储通过不同搜索方法(区块、交易、地址)找到的加密/压缩数据,使用香农熵(7.0 到 8.0),前提是该数据中未首先找到其他可识别文件。
  -S, --strings         如果启用,则尝试搜索并转储 ASCII 字符串到文件中,从采集的数据(区块、交易、地址)中提取,前提是该数据中未首先找到其他可识别文件。
  -C CONTRACT_POSITION, --contract-position CONTRACT_POSITION
                        搜索合约数据,直到其存储数组的第 (N-1) 个位置。每个位置包含 32 字节数据。从 0 开始计数,如果没有指定自定义位置,默认位置为第 15 个位置(共 16 个索引)。
  -t, --timestamps      如果启用,则起始和结束区块 ID 将被解释为 UNIX 时间戳,然后解析为对应时间最接近的已提交区块。
  -K API_KEY_PATH, --api-key-path API_KEY_PATH
                        包含 Etherscan API 密钥的文件路径,用于查询。默认搜索位置为 '.api-key'。
  -k API_KEY, --api-key API_KEY
                        作为参数的 Etherscan API 密钥。如果提供,则忽略 '--api-key-path'。
  -D OUTPUT_DIR, --output-dir OUTPUT_DIR
                        提取文件的输出目录。默认为 'ext_{起始区块}-{结束区块}'。
  -o OUT_LOG, --out-log OUT_LOG
                        日志的输出文件。默认为 'etherblob_{起始区块}-{结束区块}.log'。
  -s, --save-transactions
                        如果启用,所有交易及其信息将存储在文件 'transactions_{起始区块}-{结束区块}.txt' 中。
  -i [IGNORED_FMT [IGNORED_FMT ...]], --ignored-fmt [IGNORED_FMT [IGNORED_FMT ...]]
                        忽略提取的文件格式。默认忽略的常见文件格式为 'ISO-8859 text' 和 'Non-ISO extended-ASCII text'。'data' 文件格式始终被忽略。接受文件格式子串,不区分大小写匹配。'*' 为通配符,忽略所有文件格式。
  --version             显示程序版本号并退出。

官方 GitHub 仓库:'https://github.com/litneet64/etherblob-explorer'
下载工具