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

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

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

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

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/paulpierre/informer
OSINT (开源情报)冒充工具数据泄露信息收集社会工程学网络爬虫
GitHubpaulpierre/informer

informer

一个用Python编写的Telegram大规模监控机器人

查看仓库
1.7k24310个月前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
informer — 一个用Python编写的Telegram大规模监控机器人 | Kitploit
网站

image

Informer - Telegram 大规模监控

更新 2025-10-20

  • 安全性: 修复了 mysql-connector-python 中的高危漏洞 CVE-2022-1941
  • 安全性: 从已弃用的 oauth2client 迁移至 google-auth
  • 将所有依赖更新至最新安全版本
  • 修复了 quick_start.sh 脚本的 bug(venv 创建和 account_id 参数)
  • 修复了 Docker MySQL 连接问题,实现跨平台兼容
  • 改进了 Google Sheets 设置文档

更新 2021-08-23

  • 更新至最新的 Telethon 1.23.0
  • 通过迁移到 docker-compose 修复了数据库问题
  • 在设置中使 Google Spreadsheets 变为可选
  • 为设置增加了安全的环境变量文件
  • 简化了设置流程
  • 因 App Engine 体验不佳,用 docker-compose 取代了它

关于

Informer (TGInformer) 是一个机器人库,允许你伪装成多个真实的 Telegram 用户,并监控 500+ 个 Telegram 频道 每个账号。详细信息记录到 MySQL 数据库、私密 Google Sheet 以及你自己的私人频道中,便于分析。

这是一个存在已知 bug 的功能性概念验证项目。欢迎 fork、分享,也欢迎与我联系。

image

潜在商业应用

  • 操纵马甲账号以推翻专制政权
  • 品牌监控与情感分析
  • 随时炒作加密货币以获取经济利益
  • 影响热点话题的舆论走向
  • 提前入场利用价格波动获利
  • 对 Telegram 频道进行分析

功能特性

  • 将所有机器人部署在云端运行,你只需安心睡觉。支持 Docker Compose

image

  • 将所有通知写入私密 Google Sheet

image

  • 支持基于正则表达式的关键词过滤

  • 使用 SQLAlchemy 实现数据持久化,与数据库无关

image

  • 将上下文消息和频道数据记录到私人频道和数据库

  • 存储消息发送者、频道、频道参与人数等元信息

image

  • 从包含 Telegram 频道 URL 的 CSV 列表自动加入频道

image

  • 持久化已加入频道的会话

  • 只需登录一次,机器人永久保持登录状态,无需重新进行双因素认证

  • 每个账号最多可加入 500 个频道

image

  • 使用真实账号,避免被检测为机器人。这不是一个 Telegram 机器人,而是一个真实自动化的用户账号。这是一个重要区别,因为官方机器人 API 功能受限,且机器人在公共频道中常受到限制。

要求

操作系统/基础设施

  • Python 3+
  • Docker (可选)
  • Telegram (桌面版、网页版或移动版,下载地址:https://www.telegram.org/)
  • Burner 应用

Python 包

  • SQLAlchemy (1.4.54)
  • sqlalchemy-migrate (0.13.0)
  • Telethon (1.36.0)
  • mysql-connector-python (8.4.0)
  • gspread (6.1.4)
  • google-auth (2.37.0) - 替代已弃用的 oauth2client
  • python-dotenv (1.0.1)

快速开始

设置环境变量

编辑 informer.env 文件,其中包含 informer 所需的所有环境变量。

你可以在此处获取必要的 Telegram 相关信息:

设置 Telegram 应用

  1. 前往 https://my.telegram.org/auth 进行身份验证,提供手机号码以及发送到手机(或 Telegram)的验证码。 image

image

  1. 验证通过后,点击 "API Development Tools" image

  2. 创建一个新的应用程序,填写下方所示的表单 image

  3. 现在你应该获得了 informer.env 文件中 TELEGRAM_API_HASH 和 TELEGRAM_API_APP_ID 字段所需的参数值。

image

  1. 替换这些值,包括 TELEGRAM_ACCOUNT_PHONE_NUMBER,然后继续下一部分。

image

获取你的 Telegram ID

到目前为止,我们已经有了 Telethon 和 Informer 访问 Telegram API 所需的内容。接下来,我们需要获取你机器人账号的标识符。

  1. 打开 Telegram,搜索用户 userinfobot。

image

  1. 你会看到多个结果,请确保选择拼写正确的账号。

image

  1. 点击该用户,底部会出现一个对话框选项,写着 "Start"。点击它。

image

  1. 这个机器人只有一个用途:向你反馈你当前 Telegram 账号的信息。

你会收到你的 Telegram 用户名和账号 ID。这很重要。

image

  1. 编辑 informer.env 文件,填入 TELEGRAM_ACCOUNT_ID(即上一步获取的 Telegram 账号 ID)和 TELEGRAM_ACCOUNT_USER_NAME。

你也可以选择性地使用你的用户名或频道 ID 来填写 TELEGRAM_NOTIFICATIONS_CHANNEL_ID。

  1. 确保已填写 TELEGRAM_ACCOUNT_PHONE_NUMBER,因为这是生成会话的关键。如需创建多个账号,请参阅下方的 Burner App 说明。

初始化并验证会话

确保你正在运行 Python 3,然后在目录中直接运行 ./quick_start.sh。

你必须先运行此脚本,以便首次运行时与 Telegram 进行身份验证,并生成本地的会话文件。

之后,你可以将这些文件复制到不同账号的 app/session 目录中,并在使用 Docker 时挂载它们(如果你选择这样做)。

image

系统会提示你输入验证码,这要么是通过 Telegram 发送(如果你之前登录过),要么是通过 SMS 发送。

image

按回车键,你的会话将生成在 app/session 文件夹中,文件名是你提供的国际电话号码,带有 .session 扩展名。

继续下一部分,我们将使用 Docker Compose 设置数据库。

设置通知频道

此步骤可选,但如果你想创建一个私密群组频道并获取群组 ID,请执行以下操作:

  • 创建一个群组(或频道),并设置为私密或公开。
  • 确保获取 Telegram URL。 image

在 informer.env 文件的 TELEGRAM_NOTIFICATIONS_CHANNEL_URL 参数中设置该 URL。

要获取频道 ID,只需在 app 目录中运行 python3 bot.py <TELEGRAM_ACCOUNT_ID>,其中 <TELEGRAM_ACCOUNT_ID> 是你之前生成的账号 ID。

当脚本加载时,它会显示你所在的所有频道,复制此值并放入 informer.env 文件的 TELEGRAM_NOTIFICATIONS_CHANNEL_ID 参数中,然后终止脚本。现在你已经准备好运行 Informer。

运行 Docker Compose

运行 quick_start.sh 后,你可以通过以下命令运行 Docker Compose:

  • 运行 ./start.sh 构建 Docker 容器,其中包括 MySQL 数据库。

image

  • 运行 ./stop.sh 停止容器。

  • 运行 ./clean.sh 移除所有悬空的容器和卷。注意:这会重置数据库,你将丢失所有数据。

需要注意几点:

之前你需要自己运行 MySQL 实例,这导致了一些连接字符串兼容性和版本问题。在此次更新中,MySQL 会自动为你创建并持久化到磁盘。

此外,Dozzle 已集成,你可以在浏览器中查看日志,只需访问 http://localhost:9999 并点击 app_informer 容器即可。

使用 Burner App 创建 Telegram 账号

如果你不想使用自己的手机号码,并希望以某种程度的匿名性运行 Informer 机器人,可以使用 Burner App。该应用在 iOS 和 Android 上均可使用。

  1. 安装 Burner 应用

    • Android - https://play.google.com/store/apps/details?id=org.thunderdog.challegram&hl=en_US
    • iOS - https://apps.apple.com/us/app/telegram-x/id898228810

image

  1. 按照上述相同步骤,在 https://my.telegram.org/auth 提供新手机号码。

  2. 使用 Burner 验证。你会通过 SMS 收到一个验证码,需要提供该验证码。

image

  1. 登录 Telegram。

  2. 通过运行 python3 bot.py <api_user_id>(在 app 目录中)尝试使用该应用登录。

  3. 由于你使用 Telethon 登录,它会像之前一样在终端中询问你的验证码。

该验证码会通过 Telegram 消息或 SMS 发送。

提供验证码后,它将会话凭据保存在下面提到的会话文件中。只要你有会话文件,就无需再次进行身份验证。

会话保存在 app/session/ 文件夹中,文件名为 <telegram_phone_number>.session。

重复此过程,直到你拥有所有必要的会话文件,然后只需在 Docker 中挂载它们即可。

扩展 Telegram 账号数量

如何扩展账号数量曾让我头疼不已,因为我需要一个自动化的流程。Telegram 要求你使用一个真实的手机号码,并且能够接收来自短号码的短信。

不幸的是,Twilio 等带有 API 的服务由于防欺诈原因,在美国、加拿大和英国被禁止接收来自短号码的短信 https://support.twilio.com/hc/en-us/articles/223181668-Can-Twilio-numbers-receive-SMS-from-a-short-code-。这本来是理想的选择,唉,可惜不行。

我为此浪费了一整个晚上,直到我想起以前用过的一个很棒的应用:Burner (https://www.burnerapp.com/) —— 巧合的是,它确实有 API (https://developer.burnerapp.com/api-documentation/incoming-webhooks/)。这意味着你可以动态生成号码,创建新账号,并通过 Telegram 的 Python 客户端 SDK (Telethon: https://docs.telethon.dev/en/latest/) 完成身份验证。

最棒的是,Burner 号码在前14天是免费的。通过客户端 API 连接的 Telegram 账号只需登录一次,会话就会永久保存。我还没有集成 Burner API,但过程很直接。

Telethon SDK

该机器人基于 Telethon Python SDK 构建 (https://docs.telethon.dev/en/latest/)

在构建此概念验证时,遇到了一些需要注意的事项和陷阱:

  1. 速率限制 Telegram 会进行严格的速率限制,并触发 FloodWaitErrors。 根据我的研究,似乎没人知道具体的算法,但你需要让退避等待时间按比例增加,因为当你违反并超出未知的速率限制时,等待时间会呈指数增长。我找到了一种折中的等待方法。

当你在短时间内向 API 提交过多请求时(无论是查询用户信息还是过快加入过多频道),都可能触发 FloodWaitErrors。

  1. Telethon 会话 Telethon 会创建一个会话文件。你可以在实例化 Telethon 客户端时设置会话文件的名称:

TelegramClient(<session_file_name>, <api_user_id>, <api_user_hash>)

root@kitploit:~
这个文件恰好是一个 SQLite 数据库,你可以连接它。它充当缓存,存储历史数据以及你的会话认证信息,这样你就不必再次通过 Telegram 的双因素认证。请注意,首次使用 API 时,你需要登录并进行身份验证。

管理多个机器人账号

当机器人运行并加入频道时,你会看到客户端实时更新,并显示你新加入的频道。

image

提示:TelegramX 是迄今为止最适合这些用途的客户端,因为它支持多账号登录。下载地址:

  • Android - https://play.google.com/store/apps/details?id=org.thunderdog.challegram&hl=en_US
  • iOS - https://apps.apple.com/us/app/telegram-x/id898228810

Google Sheets 集成

注意:Google Sheets 集成完全是可选的。 应用程序仅使用 MySQL 数据库即可完美运行。

如果你想启用 Google Sheets 日志记录:

  1. 按照 app/credentials/README.md 中的详细设置指南操作。
  2. 该指南包含获取 Google Cloud 服务账号凭据(JSON 密钥文件)的最新说明。
  3. Google 仍然提供 JSON 凭据文件——只是自2020年以来流程略有变化。

快速概述:

  • 创建一个 Google Cloud 项目
  • 启用 Google Sheets API 和 Google Drive API
  • 创建一个服务账号并下载 JSON 密钥
  • 将 JSON 文件放在 app/credentials/google_credentials.json
  • 将你的 Google Sheet 与服务账号邮箱共享

这是可选的,机器人无需它也能运行。

已知 Bug

  • 目前,频道必须已经加入,才能开始监控关键词。你可能需要运行两次 bot.py:一次让它加入频道,另一次监控它们。我知道这个明显的 bug,将在下一版本中修复。

待办事项

  • 创建用于机器人管理的用户界面仪表盘
    • 创建新账号
    • 添加/移除频道
    • 添加/移除要监控的关键词
    • 查看通知
    • 接收 Web 推送通知
  • 自动轮询数据库,以更新内存中的监控关键词
  • 通过 Burner API 和验证码流程自动创建电话号码

联系我

你觉得这个项目有趣吗?如果觉得不错,请给它点个星。

这个项目是在两天内为一位加密货币领域的朋友制作的概念验证。如果你发现任何有趣或有利可图的应用,我很乐意合作。你可以通过以下方式联系我:

Twitter: @paulpierre 或 hi (at) paulpierre (dot) com

我大多数有趣的项目在 GitHub 上是私密的,但欢迎查看:http://www.github.com/paulpierre 或过往作品:http://www.paulpierre.com

开源许可证


版权所有 (c) 2020 Paul Pierre 特此免费授予任何获得本软件及相关文档文件(“软件”)副本的人,不受限制地处理本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售本软件副本的权利,并允许获得本软件的人这样做,前提是符合以下条件: 上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。 本软件按“原样”提供,不提供任何明示或暗示的担保,包括但不限于适销性、特定用途适用性和非侵权性的担保。在任何情况下,作者或版权持有人均不对因本软件或本软件的使用或其他交易引起的任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权诉讼还是其他诉讼中。

下载工具