bikemazzell/telegram-processor

GitHub: bikemazzell/telegram-processor

一个面向 Telegram 频道的自动化文件采集、解压、去重与窃密日志处理 Python CLI 工具,专为威胁情报分析师设计。

Stars: 0 | Forks: 1

# Telegram 频道处理器 用于从 Telegram 频道收集文件、提取压缩包、对结果进行去重并生成频道级别输出的 Python CLI 工具。它支持使用已知静态密码的频道,也支持在 Telegram 帖子本身中写有压缩包密码的漏斗频道。 ## 功能 - 使用 `tdl` 的顺序频道下载工作流 - 使用 `7z` 进行压缩包提取 - 通过 `password`、`password1`、`password2` 及类似的 CSV 列提供静态密码 - 通过 `password_source=password_in_post` 获取从帖子提取的密码 - 为漏斗频道提供同消息密码匹配 - 使用 `rdfind` 进行跨频道和频道内的去重 - 文本聚合和排序后的唯一组合输出 - 可选的窃密日志(stealer-log)处理,生成 `credentials.csv` 和 `autofills.csv` - 频道验证模式,可以注释掉不活跃的 CSV 行 ## 环境要求 ### Python - Python 3.10+ - 可选:`tqdm`(用于显示进度条) ### 外部工具 - `tdl` - `7z` - `rdfind` - `sort` 在正常处理模式下,这四个工具都是必需的。在 `--process-only` 模式下不需要 `tdl`,因为脚本仅处理已存在于下载目录中的文件。 ## 用法 ### 处理频道 ``` python3 telegram_processor.py \ --input channels.csv \ --start 01-04-2026 \ --end 22-04-2026 ``` 实用选项: - `--output-dir`:最终结果的输出目录 - `--download-dir`:用于存放下载和提取的频道文件的目录 - `--settings`:`settings.json` 的路径 - `--verbose`:记录 `tdl` 和提取命令的详细信息 - `--process-only`:跳过 Telegram 下载,仅处理已在 `--download-dir` 中的文件 - `--auto-clean`:无需提示即可删除已处理的频道目录 ### 仅检查频道 ``` python3 telegram_processor.py \ --input channels.csv \ --check-channels ``` 要原地注释掉不活跃的行: ``` python3 telegram_processor.py \ --input channels.csv \ --check-channels \ --comment-missing ``` `--check-channels` 不需要 `--start` 或 `--end`。 不活跃的频道会根据 `tdl` 的输出分类为: - `not_found`:频道用户名或目标不再存在 - `inaccessible`:私密、被禁止或当前账户无法访问 - `error`:检查时发生意外故障 使用 `--comment-missing` 时,不活跃的行将被重写如下: ``` # SomeChannel,@somechannel,secret # 无法访问 ``` ## 输入 CSV 格式 CSV 必须以以下列开头: - `name` - `channel` 支持的可选列: - `password_source` - `password`、`password1`、`password2`,以及 `channel` 之后的任何其他密码列 静态密码示例: ``` name,channel,password Channel1,@channel1,password123 Channel2,@channel2, ``` 漏斗频道示例: ``` name,channel,password_source OnlyLogsCloud,@OnlyLogsCloud,password_in_post ``` ### `password_in_post` 行为 - 处理器会读取每个已下载压缩包对应的导出 Telegram 消息。 - 它只接受与压缩包文件在同一消息中找到的密码。 - 它会查找不区分大小写的 `pass` 或 `password` 标记,后跟如 `:`、`=`、`-` 或空格等分隔符。 - 支持的示例包括: - `pass: 123` - `Password: @OnlyLogsCloud` - `Password FULL LOGS - @BurnCloudLogs` - 未标记的推广链接和备用频道链接将被忽略。 - 如果一条消息包含多个压缩包和一个匹配的密码,该密码将应用于该消息中的每个压缩包。 - 当设置 `password_source=password_in_post` 时,将忽略静态密码列。 - 如果未找到同消息密码,或者提取仍然失败,将跳过该压缩包并继续处理。 已被注释的 CSV 行会被频道检查器忽略。 ## 处理流程 1. 从 CSV 加载频道定义。 2. 在正常模式下,使用 `tdl chat export` 导出频道消息并下载匹配的文件。 3. 使用 `rdfind` 对跨频道的已下载文件进行去重。 4. 使用 `7z` 提取压缩包。 5. 对于有密码的压缩包,尝试以下顺序: - 配置的静态密码,然后尝试无密码 - 或在启用 `password_in_post` 时使用同消息的帖子密码 6. 在每个频道目录内对提取的文件进行去重。 7. 当存在压缩包时,处理窃密日志输出。 8. 将排序后的唯一文本输出合并到 `*-combo.csv` 文件中。 9. 将最终结果文件移动到输出目录。 10. 可选地清理频道工作目录。 ## 输出文件 根据频道内容,脚本可能会生成: - `{channel_name}-{month-year}-combo.csv` - `{channel_name}-{month-year}-credentials.csv` - `{channel_name}-{month-year}-autofills.csv` 所有最终输出都将写入配置的输出目录。 ## 配置 `settings.json` 控制下载、提取、排序和子进程的行为。此仓库中跟踪的文件是一个示例配置;如果您使用该集成,请为您的机器更新 `stealer_log_processor.path`。 当前部分: - `stealer_log_processor` - `tdl` - `sort` - `archive` - `processing` - `logging` - `subprocess` 重要键值: - `tdl.max_parallel_downloads` - `tdl.export_channel_threads` - `tdl.excluded_extensions` - `archive.extract_patterns` - `archive.supported_extensions` - `archive.extract_timeout` - `archive.max_parallel_extractions` - `sort.temp_dir` - `processing.max_workers` ## 备注 - `channels.csv` 已被刻意设置在 gitignore 中,并被视为本地操作员数据。 - 如果未安装 `tqdm`,脚本仍可正常运行;它只会回退到普通日志记录。
标签:7z, CLI, HTTP工具, Python, rdfind, RedTeaming, tdl, Telegram, URL抓取, WiFi技术, 信息窃密, 去重, 威胁情报, 安全测试, 密码提取, 开发者工具, 归档解压, 攻击性安全, 数字取证, 数据抓取, 数据泄露, 数据聚合, 文件下载, 无后门, 暗网情报, 渠道监控, 窃密木马, 组合文本, 网络犯罪, 自动化爬虫, 自动化脚本, 账号密码, 黑产