banner
毅种循环

毅种循环

头顶铁锅接收宇宙能量

telegram session hijacking


#

2018 年 5 月 16 日,Talos 发表了关于Telegrab的一篇文章,介绍了可以劫持 Telegram 会话的恶意软件。原理非常简单:如果攻击者可以复制桌面用户的会话令牌(session token),那么就能劫持会话。除了本地存储的信息外,攻击者不需要其他任何信息。无论信息是否经过加密都不重要,只要复制这个信息,攻击者就能使用该新信息创建一个影子会话(shadow session)。

实战环境#

有的时候,迫于一些目的,当有目标 PC 机权限的时候,需要对该目标的个人通讯进行持续的监控获取更多的有利信息,那么就有了 session hijacking 的需求。

目录结构#

Telegram 用户数据一般存放在与 telegram.exe 同目录下的 tdata 文件夹内。
一个有效的 telegram 登录用户的目录结构如下:
image
关键几个文件如下:
settingss 文件主要存储了用户页面相关的配置,包括背景图片,颜色,语言包等配置信息。
D877F783D5D3EF8Cs 文件主要存储了用户的 userId,以及与 telegram 云端进行数据通信时所使用到的加密密钥。
D877F783D5D3EF8C/maps文件中 lskSelfSerialized 字段存储了用户的基本信息,包括用户 id,头像,姓名,注册电话,上次在线时间等信息。而其他字段主要存储的是一些配置或者资源文件的文件名,并且与文章开头列举的 D877F783D5D3EF8C 文件夹下的文件一一对应。
D877F783D5D3EF8C/configs
configs 文件主要存储了用户聊天,与 telegram 云端进行通信时的一些基础配置,包括 telegram 云端的 ip 和端口,撤回消息的时长限制等配置信息。

TG 具体怎么加密保存这些信息的,能力有限也不去分析了。

session hijacking 流程#

众所周知,telegram 默认是支持多端登录的,多端之间没有设备交叉验证来获取密钥解密,所以这种特性就造成了就变成了劫持 session 的最完美的前置条件,仅仅只需要你得 tdata 文件。
现在流传在网上的 session 劫持方法都是通过复制整个 tdata 文件夹进行 session 的劫持,但对于一个使用了较长时间的 telegram 来说,tdata 的体积会变得十分庞大(MB,甚至 GB 的量级),这在实战的过程中会有很大的局限性。
在强隐蔽的情况下,动大动作去拖取上 GB 的做法是十分不理智的。
现在我们已经有解读大部分 tdata 文件的能力,因此可以选取最关键(保存 session)的文件,减小拖取文件的体积,从而更方便于 session 的劫持。
能够成功进行 session 劫持的关键文件有:

- tdata/key_datas
- tdata/D877F783D5D3EF8Cs
- tdata/D877F783D5D3EF8C

key_datas 是保存密钥的,D877F783D5D3EF8Cs 保存的云端拉取信息的通讯密钥,而 D877F783D5D3EF8C 则是保存了用户的基础信息。
image

session hijacking start#


获取了上述的三个文件之后,我分别用两个不同的虚拟机来完成此次的劫持过程。

从 192.168.59.129 这台机器导出目标的三个资源文件,然后在 192.168.59.138 这台机器的 TG 存入这三个资源文件,然后打开 138 的 TG。
image
复制机,第二台机。
消息记录成功同步拉取。
image
第一台机。

两台机器之间的消息记录能够同步,并且新发消息也能收到,在手机上查看当前登录设备也没有多余可疑设备,说明影子账户成功,session 劫持成功。
image

passcode 情况下的 劫持#

注:
如果开启了本地密码认证成功,此会话劫持之后依然要输入密码。
且此本地密钥是不和云端同步的,所以只能想其他办法获得此密钥。
image
如下图所示:
image

遇到这种情况只有另想办法,比如在 PC 机器上做键盘记录。


参考#

https://www.anquanke.com/post/id/167866 针对 WhatsApp、Telegram 及 Signal 应用的侧信道攻击技术研究
https://www.dongzt.cn/archives/514.html Windows 下 Telegram Desktop 的身份凭证窃取
http://www.ctfiot.com/23645.html Telegram session 劫持探索

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。