用Python实现Telegram自动化OSINT威胁情报监控

admin 2024年10月10日10:12:17评论83 views字数 3161阅读10分32秒阅读模式

Telegram因为其加密和高隐私性,成为很多组织或个人传播信息的渠道,一些企业的内部信息可能会在Telegram的群组中流转。对企业可能会勾层安全威胁。本文将介绍如何使用Telethon构建Python Telegram抓取工具,用于OSINT和威胁情报监控。

用Python实现Telegram自动化OSINT威胁情报监控

要设置Telegram爬虫,我们将使用Telethon Python库。在深入研究代码之前,请务必注意,如果你使用任何库来自动执行Telegram(或任何其他应用程序)上的操作,请确保你熟悉该应用程序的条款和条件。切勿违反任何规则,否则可能会导致你的帐户被禁止。

步骤 1:获取 API ID 和 Hash

在与 Telegram 的 API 交互之前,你需要一个 API ID 和 API 哈希。这些是验证应用程序所需的唯一凭证。

https://my.telegram.org/auth

用Python实现Telegram自动化OSINT威胁情报监控

输入电话号码后,确认码将直接发送到你的Telegram 应用程序。它不会以短信形式发送。

登录后,导航到“API 开发工具”。

用Python实现Telegram自动化OSINT威胁情报监控

用Python实现Telegram自动化OSINT威胁情报监控

也有官方的api:

"app_id": 2040"app_hash": "b18441a1ff607e10a989891a5462e627"

关于Telethon的文档:

https://github.com/LonamiWebs/Telethonhttps://docs.telethon.dev/

需要pip安装telethon库:

sudo pip install telethon -i https://pypi.org/simple

使用以下脚本测试一下:

from telethon.sync import TelegramClient, eventswith TelegramClient('name', '2040', 'b18441a1ff607e10a989891a5462e627') as client:   client.send_message('me', 'Hello, myself!')   print(client.download_profile_photo('me'))   @client.on(events.NewMessage(pattern='(?i).*Hello'))   async def handler(event):      await event.reply('Hey!')   client.run_until_disconnected()

用Python实现Telegram自动化OSINT威胁情报监控

ok,可以发收信息。

第 2 步:加入频道并抓取消息

现在,我们的客户端已初始化并成功接收到测试消息,我们已准备好进行下一步。现在的重点转移到确定我们想要监控和抓取有用数据的 Telegram 频道上。有几个 Telegram 搜索引擎可用于查找感兴趣的频道。在本次练习中,这里将使用 tlgrm.eu

用Python实现Telegram自动化OSINT威胁情报监控

from telethon import TelegramClientfrom telethon.tl.functions.channels import JoinChannelRequestimport osfrom colorama import Fore, Back, Style # add some color to the terminal printapp_api_id = '2040'app_api_hash = 'b18441a1ff607e10a989891a5462e627'client = TelegramClient('session', app_api_id, app_api_hash)async def join_channel(client, channel_link):    try:        await client(JoinChannelRequest(channel_link))        print(f"{Fore.CYAN}Joined channel: {channel_link}")    except Exception as e:        print(f"Failed to join channel: {e}")async def get_messages(client, channel, limit=5):    async for message in client.iter_messages(channel, limit):        if message.text:            # Print the message in a structured format            print(Fore.BLUE + (message.text)) # <--- we addeed stringify to format the messages             print(Fore.WHITE + '------------------------------------------------------------------------------------')async def main():     # Define the Telegram channel link to monitor (in this case, Durov's channel)    channel_link = 'https://t.me/Durov'    await join_channel(client, channel_link)    await get_messages(client, channel_link)##async def main():    # Simple example: send a message to yourself  ##  await client.send_message('me', 'We are good to go!')with client:    client.loop.run_until_complete(main())

这个脚本的主要功能是使用 Telethon 库连接到 Telegram,加入一个指定的 Telegram 频道,并获取该频道中的一些消息。

  1. 导入库

    • Telethon: 用于连接 Telegram API 和操作 Telegram 帐户(如加入频道、获取消息等)。

    • os: 用于与操作系统交互。

    • colorama: 用于在终端输出中添加颜色,以便更清晰地展示信息。

  2. API 相关信息

    • app_api_id 和 app_api_hash:用于认证 Telegram 客户端。这些是 Telegram 提供的 API 令牌。

  3. 创建 Telegram 客户端

    • 使用 TelegramClient('session', app_api_id, app_api_hash) 创建一个客户端会话,用于与 Telegram 服务器通信。

  4. 异步函数

    • join_channel(client, channel_link):这个函数用于通过给定的链接加入指定的 Telegram 频道。如果成功加入,打印出成功信息;否则,打印错误信息。

    • get_messages(client, channel, limit=5):从指定的频道中获取最新的 limit 条消息,并且打印出每条消息的内容,使用颜色来格式化输出。

  5. 主函数

    • main():调用 join_channel() 加入 https://t.me/Durov 频道,然后获取该频道的最新消息并打印出来。

  6. 运行

    • 脚本使用 with client 语句启动 Telegram 客户端,并使用 client.loop.run_until_complete(main()) 来执行主任务。

来看看效果:

用Python实现Telegram自动化OSINT威胁情报监控

第 3 步:其他功能和注意事项

运营安全 (OpSec):

当你抓取 Telegram 频道时,保持强大的 OpSec 至关重要。远离抓取非法或敏感频道,并始终遵守 Telegram 的服务条款和法律。

事件触发器:
你可以通过添加事件触发器将脚本提升到一个新的水平。例如,你可以将其设置为抓取包含特定关键字的消息,或者在频道中发生特定事件时采取进一步措施。这为你的监控设置提供了更大的灵活性和智能性。

原文始发于微信公众号(赛哈文):用Python实现Telegram自动化OSINT威胁情报监控

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月10日10:12:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   用Python实现Telegram自动化OSINT威胁情报监控https://cn-sec.com/archives/3247557.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息