威胁情报-telegram消息监控
雷石安全实验室
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
威胁情报-telegram消息监控

前言
一般需要监控的威胁情报来源包含以下几个方面:
1、暗网论坛和交易网站
2、黑客论坛
3、聊天群组
4、公共渠道
而需要监控的内容大多都是0day情报、数据泄漏事件等,由于上述内容质量参差不齐,更有内容纯粹是诈骗,所以针对相关数据来源需要进行二次鉴别,并只能做为信息参考。此外,如果有相关情报产生,厂商也应第一时间进行排查,确定消息真伪,并做好防护。
telegram消息监控
telegram上存在很多数据、漏洞、shell贩卖的行为,虽然消息大多都是假的,但是如果我们能对相关群聊进行监控,发现有相关行为,提取关键内容发送到指定地点,可以大大帮助我们做好威胁情报支撑工作。经过查询,telegram 机器人和一些库都可以实现群聊监控功能,这里使用真实用户+telethon库。
1.前置准备
访问my.telegram.org,登陆后创建app,获取app api_id和app api_hash
下载库:pip install telethon
2.脚本编写
官方文档:https://docs.telethon.dev/
from telethon import TelegramClient, events
from telethon.errors.rpcerrorlist import AuthKeyError
from telethon.sync import TelegramClient as SyncTelegramClient
api_id = xxxx
api_hash = 'xxxxxx'
session_name = 'my_session'
chat_names = ['Test', 'groupid']
keywords = ['123', 'keyword2']
try:
client = TelegramClient(session_name, api_id, api_hash)
client.start()
except AuthKeyError:
client = SyncTelegramClient(session_name, api_id, api_hash)
client.start()
@client.on(events.NewMessage(chats=chat_names))
async def handle_new_message(event):
message_text = event.message.message
for keyword in keywords:
if keyword in message_text:
chat = await event.get_chat()
title = chat.title
sender = await event.get_sender()
sender_name = sender.first_name
print(f"Keyword '{keyword}' found in message from {sender_name} in chat '{title}': {message_text}")
print(f"Listening for messages containing {keywords} in chats {chat_names}...")
client.run_until_disconnected()
第一次执行时会让你登陆认证,注意这里手机号是需要加国际区号的,例如+86
最终效果如下图:
Tips:脚本最好放在国外服务器上跑,本地加代理会由于网络不稳定导致脚本中断
总结
这只是一个简单的脚本,我们通过telethon还能做其他很多的事情,另外还有一种监控方式是通过机器人进行监控,但是不推荐,具体原因感兴趣可以去踩踩坑。
本文为 雷石安全实验室 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
对用友NC“任意文件读取”漏洞的分析
2024-01-29
雷石|二进制漏洞之数组越界and缓冲区进行数据同步
2023-09-01
用友NC-ActionHandlerServlet反序列化漏洞分析
2023-08-18