controllocked/TeleScope

GitHub: controllocked/TeleScope

TeleScope 是一款针对 Telegram 平台的实时威胁情报与 OSINT 检测平台,可将匹配到的威胁信号结构化推送至 SIEM 及事件响应系统。

Stars: 7 | Forks: 1

![logo](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/7764976d7a081542.png) # Telescope **针对 Telegram 的威胁情报与 OSINT 检测平台。** ![Python](https://img.shields.io/badge/python-3.10+-3776ab?logo=python&logoColor=white) ![Release](https://img.shields.io/github/v/release/controllocked/TeleScope) ![Threat Intelligence](https://img.shields.io/badge/Threat%20Intelligence-platform-cc0000) ![OSINT](https://img.shields.io/badge/OSINT-detection-e86000) ![Telegram](https://img.shields.io/badge/Telegram-MTProto-2ca5e0?logo=telegram&logoColor=white) ![Webhook](https://img.shields.io/badge/webhook-Splunk%20%7C%20MISP%20%7C%20TheHive-5a2d82) ![SQLite](https://img.shields.io/badge/storage-SQLite-003b57?logo=sqlite&logoColor=white) ![Async](https://img.shields.io/badge/async-Telethon-0f5f5f) Telescope 会监控你已有权限访问的 Telegram 频道,实时应用你的 规则,并将结构化的匹配结果推送到你的 SIEM、聊天应用或 工单处理 pipeline 中。它专为将 Telegram 视为 一等情报收集来源的安全团队而构建——涵盖 0-day 讨论、初始访问经纪人(IAB)挂牌、 勒索软件泄露站点、CVE 讨论、凭证泄露以及恶意软件即服务 生态系统。 它是**向**你的 SIEM(Splunk、Elastic、Sentinel)或事件响应栈(MISP、TheHive、 PagerDuty、Slack)输送数据的收集与检测层。 ## 为什么选择 Telegram Telegram 在 2025 年 3 月突破了 **10 亿月活跃用户**,并且继续 以每天约 250 万新用户的速度增长,截至 2026 年日活跃用户达到 **约 5 亿**。仅此规模就使其成为 Tier-1 收集源——但对于威胁情报而言, 供给侧发生的更具决定性的转变。 在 **2025 年 BreachForums 被查封**以及传统地下论坛(RaidForums、RAMP 等)面临更广泛打击之后,犯罪活动几乎在一夜之间转移到了 Telegram——频道和机器人在几周内填补了真空。 尽管 Telegram 在 2025 年移除了 **4350 万个**频道和群组,但相同的 操作者会在几天内以新的用户名重新出现。来自 [Flare](https://flare.io/learn/resources/blog/the-undergrounds-favorite-messenger-telegrams-reign-continues/)、 [CYFIRMA](https://www.cyfirma.com/research/telegram-as-the-new-operational-layer-of-cyber-threat-activity/) 和 [The Hacker News](https://thehackernews.com/expert-insights/2026/03/telegrams-crackdown-changed-how-threat.html) 的行业共识 是,Telegram 已成为**网络犯罪生态系统的 操作层**——它并非暗网的替代品,而是其主要的 实时通信和商业平台。 具体来说,Telegram 汇聚了 TI 团队关注的各种活动: - **初始访问经纪人(IAB)**发布企业 VPN/RDP/AD 访问权限挂牌, 附带受害者所属行业、收入和地理位置特征 - **勒索软件团伙**(LockBit、Cl0p、BlackCat、Akira、RansomHub 等) 运营泄露站点公告频道和招募附属成员的机器人 - **漏洞市场讨论**——较低层级的直接出售报价、经纪人 收购帖子,以及对公开 PoC / 在野 利用的讨论。(Telescope 捕获的是商业级别的讨论层,而非国家级 的私下交易。) - **窃密日志经济**——按企业 SSO 目标(Okta、Azure AD、M365、AWS、Salesforce)分类的 RedLine、Lumma、Vidar、Stealc 日志 - **凭证转储与组合列表**——UHQ/HQ 组合列表、新数据库 泄露、会话/cookie 交易市场(Genesis Market 关闭后) - **钓鱼基础设施**——钓鱼工具包销售、AitM 面板(EvilGinx、Tycoon 2FA、 EvilProxy)、防弹 SMTP、短信钓鱼工具包、域名抢注协调 - **恶意软件即服务**——RedLine/Lumma 订阅服务、Cobalt Strike 破解版、FUD 加密器服务、RAT 面板 - **供应链入侵二次传播**——关于恶意 npm/PyPI 包、维护者账户劫持、植入木马的 GitHub 仓库的讨论。 (初步发现通常发生在 [Socket](https://socket.dev/)、 [Phylum](https://www.phylum.io/)、Snyk、GuardDog 和 Unit 42——例如, Socket 在 2025 年将 1700 多个恶意包归因于 DPRK 行为者。 Telegram 是二次放大平台;Telescope 捕获的是 Telegram 上的讨论,而非原始检测。) 三个结构特性使 Telegram 对双方(恶意行为者和防御者)都具有特别的吸引力: - **广播优先格式**——可以通过 API 抓取公共频道, 任何拥有链接的人都可以加入,不像 Discord 或封闭论坛那样需要邀请。这正是使大规模 TI 收集成为可能的原因。 - **机器人生态系统与自动化**——托管机器人、市场列表机器人、 附属成员入职机器人完全在 Telegram 内部运行,因此完整的 交易链路都是可观察的。 - **持久的表面积**——即使在 2025 年进行了 **4350 万次审核操作**,行为者也能通过快速重新创建来持久存在。市场并没有 分散到竞争对手那里;它依然留在 Telegram。 客观地讲:Telegram 是**主要的 TI 来源,但不是唯一的来源**。它 与暗网市场、粘贴网站和传统的地下论坛并存。Telescope 的输出会输送到你的 SIEM 或 TIP ([Splunk](https://splunkbase.splunk.com/)、[MISP](https://www.misp-project.org/)、 [TheHive](https://thehive-project.org/) 等),在那里它将与你 其他来源的信号汇聚。 ## 它的功能 - 对跨越多个频道的传入消息进行**实时规则匹配** - **基于标签的严重性**(`severity:critical|high|medium|low`)和自由格式 分类(`category:`、`actor:`、`family:`、`mitre:`,任何你想要的) - **三种投递路径**:Telegram 收藏夹、Telegram 机器人或通用的 **HTTP webhook**,支持结构化 JSON(Slack / Discord / Splunk HEC / Sentinel / TheHive / 自定义接收端) - 针对最常见 TI 场景的**精选威胁包**(见下文) - 每次匹配的 **SQLite 审计日志**——`id`、来源、规则、原因、标签、 摘要、永久链接——可导出为 JSON 或 CSV - **内容去重**,确保二次传播和复制粘贴不会生成 重复工单 - **论坛话题感知**——监控大型超级群组中的单个话题 - 启动时进行**补漏扫描**,确保你不会错过停机期间的匹配 - **TUI**(`telescope config`),无需修改 JSON 即可编辑规则、来源和通知 设置 ## 用例 | 用例 | 威胁包 | |---|---| | 漏洞市场与 0-day 讨论(出售报价、经纪人、公开 PoC、0-click) | `examples/threat-packs/0day-marketplace.json` | | 初始访问经纪人(IAB)挂牌(VPN/RDP/AD/窃密日志访问权限) | `examples/threat-packs/iab-listings.json` | | 勒索软件泄露站点与附属活动(LockBit、Cl0p、BlackCat、Akira、RansomHub 等) | `examples/threat-packs/ransomware-leaks.json` | | CVE 讨论与在野利用信号(针对你的技术栈) | `examples/threat-packs/cve-chatter.json` | | 凭证转储与组合列表泄露(UHQ/HQ 组合、数据库泄露、会话/cookie 店铺) | `examples/threat-packs/credential-leaks.json` | | 恶意软件即服务(窃密木马、加载器、加密器、RAT) | `examples/threat-packs/malware-raas.json` | | 钓鱼基础设施(工具包、AitM/MFA-bypass、SMTP、短信钓鱼、域名抢注) | `examples/threat-packs/phishing-infrastructure.json` | | 品牌 / 高管 / 客户数据监控(模板 - 填入你的标识符) | `examples/threat-packs/brand-monitoring.json` | | 供应链入侵二次传播(npm / PyPI / GitHub) | `examples/threat-packs/supply-chain-compromise.json` | | ICS / SCADA / OT / 关键基础设施定向攻击 | `examples/threat-packs/ics-scada.json` | | 非 TI 监控(招聘、故障、诈骗、审核) | `examples/general-purpose-rules.json` | 每个包都是一个部分配置——将这些规则放入你的 `config.json` 的 `rules[]` 数组中(或通过 TUI 合并它们)。 ## 架构 ![architecture](https://raw.githubusercontent.com/controllocked/TeleScope/main/diagram.svg) Telethon 使用你自己的用户会话通过 MTProto 连接到 Telegram,因此 Telescope 只能看到你的账户已经加入的频道。每一条传入的 消息都会流经一个小型 SIEM 风格的核心:源白名单 → 单源幂等性 → 多信号规则引擎(带有 `severity:` 和 `mitre:` 标签)→ 内容去重 → SQLite 中的只追加审计日志 → 通知器。三个可插拔的投递适配器(收藏夹、机器人、Webhook) 位于单个 `NotifierPort` 之后,因此结构化的匹配结果可以扇出到 你的 SIEM、MISP/TheHive 或任何 HTTP endpoint,而无需改动核心。 三个显式的分层使检测核心独立于 Telegram 和 SQLite: ``` src/core/ - rules engine, dedup, message processor, models src/adapters/ - Telegram (Telethon) mapping/notifiers, SQLite storage, webhook src/app.py - CLI, wiring, lifecycle src/frontend/ - Textual TUI (rules editor, data browser, settings) ``` 添加新的投递渠道 = 在 `src/adapters/` 中添加一个实现 `NotifierPort` 的文件。添加新的存储 = 添加一个实现 `StoragePort` 的文件。 ## 安装 对于 Linux ``` python -m venv .venv source .venv/bin/activate pip install -r requirements.txt pip install -e . ``` 对于 Windows ``` python -m venv .venv .\.venv\Scripts\activate pip install -r requirements.txt pip install -e . ``` ## 配置 1. 复制并填写 env 文件: cp .env.example .env 从 获取 `API_ID` 和 `API_HASH`。 2. 复制示例配置并进行编辑: cp config.example.json config.json `config.json` 已被 gitignore 忽略,因此你的来源和 token 永远不会离开你的本地机器。 最小化配置结构: { "sources": [ { "source_key": "@example_channel", "alias": "Example", "enabled": true } ], "rules": [ { "name": "CVE mention", "regex": ["\\bCVE-\\d{4}-\\d{4,7}\\b"], "tags": ["severity:medium", "category:cve"], "enabled": true } ], "notifications": { "notification_method": "saved_messages", "snippet_chars": 400 }, "dedup": { "mode": "per_source", "only_on_match": true, "ttl_days": 30 }, "catch_up": { "enabled": true, "messages_per_source": 50 } } 3. (可选)合并一个或多个威胁包: cat examples/threat-packs/cve-chatter.json # 将 rules[] 条目复制到 config.json 的 rules[] 数组中 或者使用 TUI:`telescope config` → Rules 标签页 → Add rule。 ### 源标识 | 格式 | 使用场景 | |---|---| | `@channel_username` | 公共频道 / 群组(小写) | | `chat_id:-100123…` | 私有超级群组 / 频道 | | `@channel#topic:42` | 公共聊天中的单个论坛话题 | | `chat_id:-100…#topic:42` | 私有聊天中的单个论坛话题 | 要为你已归档的私有群组查找 `chat_id:` 值: ``` telescope discover ``` ### 标签约定 标签是自由格式的字符串,但可以识别两个前缀: - `severity:critical|high|medium|low` → 在告警标题中添加 `[CRITICAL]` / `[HIGH]` 等 - 其他所有标签(`category:cve`、`actor:lockbit`、`family:lumma`、 `mitre:T1566`、`priority:p1`)会传播到告警、SQLite 行和 webhook payload 中——但不会触发任何内置行为 这使得 schema 保持扁平化,并让每个团队决定自己的分类法。 ## 运行 ``` telescope run ``` ## TUI ![配置_tui](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/d3774512b9081553.png) ``` telescope config ``` 标签页: - **Sources** - 添加/编辑/禁用频道,设置别名 - **Rules** - 带有内联测试器的完整规则编辑器(粘贴文本,查看匹配的规则) - **Settings** - 去重、通知方式、webhook URL/headers/timeout、日志记录 - **** - 浏览历史匹配记录,按标签过滤(例如 `severity:critical`), 导出为 JSON/CSV ## 投递:webhook 集成 将 `notification_method` 设置为 `webhook` 并配置目标: ``` "notifications": { "notification_method": "webhook", "webhook_url": "https://hooks.example.com/intake", "webhook_headers": { "Authorization": "Bearer ..." }, "webhook_timeout": 5.0, "snippet_chars": 400 } ``` 每个匹配项都作为 JSON 进行 POST: ``` { "source_key": "@channel", "source_alias": "Underground channel", "chat_id": 1234567890, "message_id": 42, "date": "2026-06-04T10:15:00+00:00", "rule_name": "Initial Access Broker listings", "reason": "keyword(s): vpn access for sale\nregex: \\b(vpn|rdp)...", "tags": ["severity:critical", "category:iab"], "text_snippet": "Selling Fortinet VPN access to a US manufacturing company...", "text": "Selling Fortinet VPN access...", "permalink": "https://t.me/c/1234567890/42" } ``` ### 集成方案 - **Splunk HEC**:将 `webhook_url` 指向 `https://splunk.example/services/collector/event` 并在 `webhook_headers` 中设置 `Authorization: Splunk `。 - **Slack**:直接使用 Slack webhook URL。(要实现更丰富的格式,请通过一个 小型桥接器运行 webhook,将 Telescope 的 payload 映射到 Slack blocks。) - **MISP / TheHive**:转发到一个小型中继器(例如 n8n、Pipedream 或 30 行代码的 Flask 应用),将 Telescope 的 JSON 映射到 MISP 事件或 TheHive 告警。 - **自定义**:任何接受 JSON POST 的 HTTP endpoint 都可以工作。 ### Telegram 投递(替代方案) - `notification_method: "saved_messages"` - 发送到你自己的 Saved Messages (零配置,适合单人使用)。 - `notification_method: "bot"`,并在 `.env` 中设置 `BOT_API` 以及 设置 `notifications.bot_chat_id` - 通过 Telegram 机器人路由(适合 团队频道)。 ## 会话登录 Telescope 使用你的**用户会话**(而非机器人 token)进行身份验证,以便它可以 读取你个人账户所在的频道。首次运行时,它会通过 Telethon 创建一个本地 `.session` 文件。 登录方式: - **二维码**(默认,推荐) - **手机验证码**(短信 / Telegram 验证码) 可选的环境变量覆盖: - `LOGIN_METHOD=qr` 或 `LOGIN_METHOD=phone` - `PHONE=+1234567890` - `2FA=your_password` 如果短信验证码未收到(在某些地区这是已知问题),请使用二维码流程。 ## 路线图 可能的补充功能,由社区反馈驱动: - STIX 2.1 / MISP 事件导出格式 - 可插拔的富化钩子(GeoIP、WHOIS、Tor onion 查询) 如果你需要其中某项功能,请提交一个 issue 并说明你的使用场景。 ## 许可证 Apache-2.0。详见 `LICENSE`。使用受 [`ETHICAL_USE.md`](ETHICAL_USE.md) 约束。
标签:ESC4, OSINT, Python, Telegram监控, 云计算, 威胁情报, 实时处理, 开发者工具, 无后门, 规则引擎, 逆向工具