欢迎来到 无奈人生 安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

窃听Telegram Bots

来源: 作者: 时间:2019-02-24 21:26 点击: 我要投稿
广告位API接口通信错误,查看德得广告获取帮助


Forcepoint Security Labs一直在关注威胁行为者用来规避现有保护措施的方法。通过其中一项调查,我们研究了Telegram 加密消息服务作为恶意软件的命令和控制(C2)基础架构的用法。
使用Telegram作为C2通道的恶意软件通常使用Telegram Bot API进行通信。在调查一个恶意软件的过程中,我们发现Telegram处理通过其Bot API发送的消息的方式存在重大缺陷。
基于Bot API的工作原理,之前所有的bot消息都可被能够拦截和解密HTTPS流量的攻击者重放。实际上,这可以为对手提供目标bot发送或接收的所有消息的完整历史记录。通常包括常规用户之间的消息,因为bot经常与他们共享群组聊天。
一、获取Telegram C2消息的访问权限
Telegram使用其内部MTProto加密来保护常规用户之间的消息,因为它(理所当然地)认为TLS本身对于加密的消息传递应用程序来说不够安全。
不幸的是,这并不适用于使用Telegram Bot API的程序,因为以这种方式发送的消息仅受HTTPS层保护。更糟糕的是,任何能够获得在每条消息中传输一些关键信息的对手不仅可以窥探传输中的消息,还可以恢复目标bot的完整消息传递历史记录。
其中一个关键信息是bot API令牌,它嵌入所有消息(以及任何使用Telegram Bot API的二进制文件中,无论恶意或合法)。因此,对目标HTTPS连接上执行MiTM的对手来说,获取此数据轻而易举。
这个难题的另一个关键部分是随机生成的Telegram chat_id。在单个聊天的情况下,这是用户自己的唯一ID,而群组聊天在创建时生成自己的chat_id。但是,此信息也会在任一Bot API请求中发送,因为bot需要知道要向哪个用户或组聊天发送信息。
配备这些信息,可以从Telegram Bot API调用许多方法。在我们的例子中,forwardMessage()方法特别有用,因为它允许给定的bot有权将来自任何聊天的任何消息转发给任意Telegram用户。要做到这一点,我们需要API令牌和'源'chat_id(从bo t先前发送的消息中提取,或者在恶意软件中从自身提取)以及'目标'chat_id(这是我们自己的用户ID),最后是我们想要转发的消息ID。
对我们来说,幸运的是,message_id从0逐渐增长,因此一个简单的Python脚本可以转发所有已发送到bot当前所属的Telegram聊天的消息。
一个特定的恶意软件被证明是一个很好的案例研究,说明为什么这是危险的,威胁行为者显然没有在他们的测试/开发和操作环境之间进行必要的隔离。这意味着我们可以跟踪他们创建和部署恶意软件的第一步(请参阅下面的活动时间表),以及与受害者和测试机器之间当前的通信形式。
在一个非常糟糕的操作安全性显示中,这些测试机器中的一个是攻击者自己的,包括了他的IP地址和许多其他敏感的个人信息。
二、GoodSender
有问题的恶意软件是一个相当简单的.NET恶意软件,运营者称之为'GoodSender'并使用Telegram作为C2。它以相当简单的方式运行:一旦释放恶意软件,它就会创建一个新的管理员用户并启用远程桌面,并确保它不被防火墙阻止。新管理员用户的用户名是固定的,但密码是随机生成的。
所有这些信息(受害者的用户名、密码和IP地址)都通过Telegram网络发送给操作人员,从而使操作人员可以通过RDP访问受害者的计算机。

图1  –  GoodSender中构建Telegram Bot URL的代码

图2  –  Telegram Bot的配置文件屏幕
三、活动时间表,威胁行为者和受害者
该攻击者最初使用Telegram bot来处理他正在开发的另一个恶意软件。这个早期的恶意软件被称为“RTLBot”,并且在几个月的时间里(在放弃开发之前)添加了许多其他功能,转而支持上述恶意软件“GoodSender”。
下面的时间线和所包含的屏幕截图的详细信息是从恶意软件的历史C2通信中获取到的,并演示了使用所描述的方法从Telegram频道获取历史消息的能力。
· 2018年2月4日 – Telegram bot上线。
· 2018年2月18日 – 攻击者开始将Telegram C2功能纳入RTLBot,并将开发转移到Telegram上。
· 2018年2月20日 – 攻击者将他的基础设施从个人计算机转移到AWS(亚马逊网络服务)上。
· 2018年4月1日 –  GoodSender处于活动状态并发送其第一个受害者信息。
· 2018年6月6日 – 攻击者租用另一个VPS作为Telegram 代理。
· 2018年7月5日 –  GoodSender发送其最后的真实受害者信息。
· 2018年9月29日 –  GoodSender发送其最后一次测试受害者信息。
2018年11月23日,攻击者将相同的bot API密钥和C2频道合并到一个工具中,该工具从Instagram帐户收集图像。鉴于元素经常命名为测试(例如下面的图3中的testbot),在将API密钥和通道更改为“生产”之前,该通道可用于测试机器人。

图3  – 显然是作者开发机器的截图,由bot上传到Telegram频道

图4  – 作者开发环境的另一个屏幕截图,其中显示了2018年6月6日首次观察到的新代理
虽然我们没有发现攻击者必须用来释放恶意软件的攻击媒介的明确答案,但是一些线索表明他使用EternalBlue漏洞将恶意软件释放在未打补丁的机器上。

[1] [2]  下一页


Forcepoint Security Labs一直在关注威胁行为者用来规避现有保护措施的方法。通过其中一项调查,我们研究了Telegram 加密消息服务作为恶意软件的命令和控制(C2)基础架构的用法。
使用Telegram作为C2通道的恶意软件通常使用Telegram Bot API进行通信。在调查一个恶意软件的过程中,我们发现Telegram处理通过其Bot API发送的消息的方式存在重大缺陷。
基于Bot API的工作原理,之前所有的bot消息都可被能够拦截和解密HTTPS流量的攻击者重放。实际上,这可以为对手提供目标bot发送或接收的所有消息的完整历史记录。通常包括常规用户之间的消息,因为bot经常与他们共享群组聊天。
一、获取Telegram C2消息的访问权限
Telegram使用其内部MTProto加密来保护常规用户之间的消息,因为它(理所当然地)认为TLS本身对于加密的消息传递应用程序来说不够安全。
不幸的是,这并不适用于使用Telegram Bot API的程序,因为以这种方式发送的消息仅受HTTPS层保护。更糟糕的是,任何能够获得在每条消息中传输一些关键信息的对手不仅可以窥探传输中的消息,还可以恢复目标bot的完整消息传递历史记录。 无奈人生安全网
其中一个关键信息是bot API令牌,它嵌入所有消息(以及任何使用Telegram Bot API的二进制文件中,无论恶意或合法)。因此,对目标HTTPS连接上执行MiTM的对手来说,获取此数据轻而易举。
这个难题的另一个关键部分是随机生成的Telegram chat_id。在单个聊天的情况下,这是用户自己的唯一ID,而群组聊天在创建时生成自己的chat_id。但是,此信息也会在任一Bot API请求中发送,因为bot需要知道要向哪个用户或组聊天发送信息。
配备这些信息,可以从Telegram Bot API调用许多方法。在我们的例子中,forwardMessage()方法特别有用,因为它允许给定的bot有权将来自任何聊天的任何消息转发给任意Telegram用户。要做到这一点,我们需要API令牌和'源'chat_id(从bo t先前发送的消息中提取,或者在恶意软件中从自身提取)以及'目标'chat_id(这是我们自己的用户ID),最后是我们想要转发的消息ID。
对我们来说,幸运的是,message_id从0逐渐增长,因此一个简单的Python脚本可以转发所有已发送到bot当前所属的Telegram聊天的消息。
一个特定的恶意软件被证明是一个很好的案例研究,说明为什么这是危险的,威胁行为者显然没有在他们的测试/开发和操作环境之间进行必要的隔离。这意味着我们可以跟踪他们创建和部署恶意软件的第一步(请参阅下面的活动时间表),以及与受害者和测试机器之间当前的通信形式。

无奈人生安全网

在一个非常糟糕的操作安全性显示中,这些测试机器中的一个是攻击者自己的,包括了他的IP地址和许多其他敏感的个人信息。
二、GoodSender
有问题的恶意软件是一个相当简单的.NET恶意软件,运营者称之为'GoodSender'并使用Telegram作为C2。它以相当简单的方式运行:一旦释放恶意软件,它就会创建一个新的管理员用户并启用远程桌面,并确保它不被防火墙阻止。新管理员用户的用户名是固定的,但密码是随机生成的。
所有这些信息(受害者的用户名、密码和IP地址)都通过Telegram网络发送给操作人员,从而使操作人员可以通过RDP访问受害者的计算机。

图1  –  GoodSender中构建Telegram Bot URL的代码

图2  –  Telegram Bot的配置文件屏幕
三、活动时间表,威胁行为者和受害者 copyright 无奈人生
该攻击者最初使用Telegram bot来处理他正在开发的另一个恶意软件。这个早期的恶意软件被称为“RTLBot”,并且在几个月的时间里(在放弃开发之前)添加了许多其他功能,转而支持上述恶意软件“GoodSender”。
下面的时间线和所包含的屏幕截图的详细信息是从恶意软件的历史C2通信中获取到的,并演示了使用所描述的方法从Telegram频道获取历史消息的能力。
· 2018年2月4日 – Telegram bot上线。
· 2018年2月18日 – 攻击者开始将Telegram C2功能纳入RTLBot,并将开发转移到Telegram上。
· 2018年2月20日 – 攻击者将他的基础设施从个人计算机转移到AWS(亚马逊网络服务)上。
· 2018年4月1日 –  GoodSender处于活动状态并发送其第一个受害者信息。
· 2018年6月6日 – 攻击者租用另一个VPS作为Telegram 代理。
· 2018年7月5日 –  GoodSender发送其最后的真实受害者信息。
· 2018年9月29日 –  GoodSender发送其最后一次测试受害者信息。
2018年11月23日,攻击者将相同的bot API密钥和C2频道合并到一个工具中,该工具从Instagram帐户收集图像。鉴于元素经常命名为测试(例如下面的图3中的testbot),在将API密钥和通道更改为“生产”之前,该通道可用于测试机器人。
www.wnhack.com


图3  – 显然是作者开发机器的截图,由bot上传到Telegram频道

图4  – 作者开发环境的另一个屏幕截图,其中显示了2018年6月6日首次观察到的新代理
虽然我们没有发现攻击者必须用来释放恶意软件的攻击媒介的明确答案,但是一些线索表明他使用EternalBlue漏洞将恶意软件释放在未打补丁的机器上。
内容来自无奈安全网

[1] [2]  下一页 本文来自无奈人生安全网

。 (责任编辑:admin)
【声明】:无奈人生安全网(http://www.wnhack.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱472701013@qq.com,我们会在最短的时间内进行处理。