Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
telegram-bot-dumper — 🔪 通过 token 对 Telegram 机器人进行转储与提取。带有 Web 界面的取证 CLI 工具 | Kitploit
工具/GitHubGitHub/soxoj/telegram-bot-dumper
OSINT (开源情报)数据泄露信息收集
GitHubsoxoj/telegram-bot-dumper

telegram-bot-dumper

🔪 通过 token 对 Telegram 机器人进行转储与提取。带有 Web 界面的取证 CLI 工具

查看仓库
249346214天前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

telegram-bot-dumper

轻松转储所有 Telegram 机器人内容。

输入:仅需机器人 token。

输出:机器人名称与信息、所有聊天的文本历史与媒体、机器人的用户信息与照片。


这是一个 Python 实现。

🚀 由 ScBoln 提供的快速 Golang 版本。

Web 查看器

一个类似 Telegram-Web 的浏览器 UI,用于查看转储:聊天列表、带内联媒体的完整消息历史、带照片轮播的用户资料,以及跨所有对话的全局搜索。支持实时模式:它在后台运行转储器,并将新消息实时流式传输到浏览器。

使用场景——对泄露的机器人 token 进行渗透测试。 Telegram 机器人 token 在渗透测试中经常出现——硬编码在移动/桌面应用中、提交到仓库中,或存在于 CI 日志、配置文件或客户端 bundle 中。单独来看,一个 token 看起来像是低危发现;在这里加载它就能显示真正的爆炸半径。对于内部机器人(支持台、IT/DevOps 助手、AI 助手),那就是每位员工与它的对话——内部主机名、VPN 配置、凭据和基础设施细节——可浏览、可搜索,因此你可以评估影响范围并在报告中为发现提供证据。

Web 查看器——内部机器人的转储

从预构建镜像运行(Docker Hub)

docker run --rm -p 8010:8010 -v "$PWD:/data" soxoj/telegram-bot-dumper-web

或在本地构建

docker compose up --build      # builds and serves on http://127.0.0.1:8010

或不用 Docker

pip install -r requirements.txt
python webapp/server.py        # serves the current directory's dumps on :8010

打开 http://127.0.0.1:8010 并粘贴一个机器人 token 以选择其转储文件夹。只读查看无需认证、本地运行,且不需要 API 凭据。实时模式额外需要来自 my.telegram.org 的 API_ID/API_HASH,通过环境变量传入——绝不烘焙到镜像中:

# one-off container
docker run --rm -p 8010:8010 -v "$PWD:/data" \
  -e API_ID=123456 -e API_HASH=abc... soxoj/telegram-bot-dumper-web

# or with docker compose: put them in a local .env (see .env.example)
cp .env.example .env && $EDITOR .env && docker compose up

PORT 和 HOST 环境变量会覆盖默认值(8010、127.0.0.1)。

功能

  • 通过向上(默认)或向下(--down / --start-from-id)遍历消息 id 来转储机器人的消息及媒体内容。
  • 实时监听模式(--listen-only):实时接收新消息,并提供从观察到的第一个 id 向下转储历史记录的选项。
  • 解析传入消息以及传出机器人回复的用户信息。
  • 用于快速用户枚举的轻量模式:跳过媒体、跳过每个聊天的文本历史、将用户写入单个 CSV。
  • 群组/超级群组消息会标记为 [from:USER][group:CHAT]。传出的机器人私信会标记为 [to:USER]。
  • 群组监控:如果机器人已被添加到群组/超级群组,且其隐私模式已禁用,机器人会接收所有群组消息——而不仅仅是命令和回复——并且 --listen-only 会实时转储它们。启用隐私模式(默认)时,机器人只能看到命令、提及和回复。

要求

  • Python >= 3.6
  • Telethon(固定版本见 requirements.txt)
  • 注册一个 Telegram 应用以获取 API_ID 和 API_HASH

作为 CLI 工具使用

pip install -r requirements.txt

# Telegram API credentials from https://my.telegram.org (read from the environment)
export API_ID=123456
export API_HASH=abc...

快速开始——完整转储(默认行为)

以每批 200 个向上遍历 id 1..∞,下载每条消息、所有媒体和所有用户资料照片。默认情况下,转储器在转储完成后会继续监听新的传入消息。要在历史转储后立即退出(非常适合脚本和 cron 任务),请传入 --no-listen。

./dumper.py --token 12345678:ABCe2rPVteUWZ7wLeCqCb3CH3ilUY_fLabc

从最新消息向下转储

对于活跃的机器人,向上遍历会遇到一长段已被清理(删除/过期)的旧 id 并放弃。从最近的 id 向下遍历效率要高得多。--down 会自动探测上界(10 的幂,最高到 10⁹),并从找到的最高非空 id 开始:

./dumper.py --token TOKEN --down

注意。 Telegram 不会永久保留机器人消息历史。根据经验,只有最近几十万条消息仍然可访问——在我们的测试中,一个繁忙的机器人暴露了大约最近 500K 条消息,之后 messages.getMessages 对更旧的 id 开始只返回 MessageEmpty。如果你的机器人历史上处理了超过这个量的流量,更旧的历史在服务器端已经消失,任何标志都无法恢复。

如果你已经知道一个较近的消息 id(例如你实时看到的一个),可以跳过探测并直接从它开始:

./dumper.py --token TOKEN --start-from-id 11922524

监听模式

不转储任何内容;只观察到达的内容。在收到第一条传入消息时,脚本会提供从该 id 开始向下转储的选项:

./dumper.py --token TOKEN --listen-only

轻量用户枚举(CSV,无媒体,无每个聊天的历史)

当你只需要与机器人交谈过的人员名单时很有用——没有 zip、没有 jpeg、没有每个聊天的 *_history.txt。

./dumper.py --token TOKEN --down --users-csv --no-photos --no-media --no-history

输出:<bot_id>/users.csv,列包括 id, username, first_name, last_name, phone, lang_code, bot, premium, verified, scam, fake。

崩溃 / FloodWait 后恢复

向下遍历会为每一批打印 Requesting message ids X..Y ...。如果运行被中断,请从最后打印的下界重新开始:

./dumper.py --token TOKEN --start-from-id <Y>

调整批大小

更小的批次 → 日志中更快的反馈,以及 FloodWait 后更短的重试窗口。更大的批次 → 在扫描稀疏/已清理的 id 范围时更少的往返次数。实践中,最高 1000 的值都可以正常工作。

./dumper.py --token TOKEN --down --batch-size 50
./dumper.py --token TOKEN --down --batch-size 500
./dumper.py --token TOKEN --down --batch-size 1000

其他标志

标志作用
--lookahead N在一个全空批次之后,继续扫描 N 个批次再放弃。当 id 稀疏时很有用。
--no-photos跳过下载用户资料照片(头像)。
--no-media跳过下载消息内的照片和文档;元数据仍会写入文本历史。
--no-history不写入每个聊天的 <chat_id>_history.txt。与 --users-csv 结合可实现最轻量的运行。
--users-csv将用户写入单个 <bot_id>/users.csv,而不是 <user_id>/<user_id>.json 目录。
--tor通过 127.0.0.1:9050 上的本地 Tor SOCKS5 代理路由(绕过 Telegram 封锁)。

运行 ./dumper.py --help 查看完整列表。

目前已知问题

  1. 机器人在历史完全转储之前退出。 如果某些消息已被用户删除,一个批次可能返回完全为空,脚本可能会过早停止。此外,如果机器人处理了非常大量的流量,旧消息根本不再由 Telegram 服务器返回——它们已被清理,任何标志都无法恢复。对于稀疏但存在的历史,请提高 --lookahead 以继续扫描越过空段:

    # check additionally 5*200 = 1000 ids
    ./dumper.py --token TOKEN --lookahead 5
    

    或者直接使用 --down,它受旧 id 间隙的影响要小得多。

  2. 未转储群聊(基本群组、超级群组)的历史。 messages.getMessages 只返回机器人的私信历史;超级群组历史需要按频道调用,而机器人通常无法进行此类调用。如果群组隐私已关闭(见功能),群组消息仍会在 --listen-only 模式下实时捕获。

测试

离线单元测试(无网络、无 token):

pip install -r test-requirements.txt
pytest tests/ --ignore=tests/bot_test.py

针对真实机器人的集成测试(需要可用的机器人 token):

TEST_TOKEN=12345678:... pytest tests/bot_test.py

Token 泄露

Dorks 示例:telepot.bot

下载工具