-
-
Telegram Desktop Session Hijacking
-
发表于: 2022-11-11 12:24 1420
-
2018年5月16日,Talos团队发表了关于Telegrab的一篇文章,介绍了可以劫持Telegram会话的恶意软件。原理非常简单:如果攻击者可以复制桌面用户的会话令牌(session token),那么就能劫持会话。除了本地存储的信息外,攻击者不需要其他任何信息。无论信息是否经过加密都不重要,只要复制这个信息,攻击者就能使用该新信息创建一个影子会话(shadow session)。
直到2022年,此种攻击方式对Telegram在绝大多数情况下依然有效。
在持续性渗透的情况下,当有目标PC机权限的时候,需要对该目标的个人通讯进行持续的监控获取更多的有利信息,那么就有了session hijacking的需求。
Telegram用户数据一般存放在与telegram.exe同目录下的tdata文件夹内。
一个有效的telegram登录用户的目录结构如下:
关键几个文件如下:
settingss
文件主要存储了用户页面相关的配置。
D877F783D5D3EF8Cs
文件主要存储了用户的userId,以及与telegram云端进行数据通信时所使用到的加密密钥。
D877F783D5D3EF8C/maps
文件中字段存储了用户的基本信息.。
D877F783D5D3EF8C/configs
中主要储存了用户与telegram云端的一些配置。
众所周知,telegram默认是支持多端登录的,多端之间没有设备交叉验证来获取密钥解密,同时桌面版不存在Secret Chats。所以仅仅只需要你得tdata文件,即可完成session劫持。
之前劫持的方法都是拖整个tdata文件进行session覆盖劫持,但对于一个使用了较长时间的telegram来说,tdata的文件会变得十分的巨大,部分情况下会达到GB的量级,这在实战的过程中会有很大的局限性。
在强隐蔽的情况下,动大动作去拖取上GB的数据的做法是十分不理智的。
经过一些大牛的文章参考,因此可以选取最关键(保存session)的文件,减小拖取文件的体积,从而更方便于session的劫持。
能够成功进行session劫持的关键文件有:
key_datas是保存密钥的,D877F783D5D3EF8Cs保存的云端拉取信息的通讯密钥,而D877F783D5D3EF8C则是保存了用户的基础信息。
获取了上述的三个文件之后,我分别用两个不同的虚拟机来完成此次的劫持过程。
从192.168.59.129这台机器导出目标的三个资源文件,然后在192.168.59.138这台机器的TG存入这三个资源文件,然后打开138的TG。
复制机,第二台机。
消息记录成功同步拉取。
第一台机。
所以用不着去拖全文件,包括图片,媒体。依靠云端消息记录同步的概念特性,个人认为在自身的电脑去同步聊天记录的做法要比直接拉文件的做法明智得多。
两台机器之间的消息记录能够同步,并且新发消息也能收到,在手机上查看当前登录设备也没有多余可疑设备,说明影子账户成功,session劫持成功。
注:
如果开启了本地密码认证成功,此会话劫持之后依然要输入密码。
且此本地密钥是不和云端同步的,所以只能想其他办法获得此密钥。
如下图所示:
遇到这种情况只有另想办法,比如在PC机器上做键盘记录。
或者直接直接爆破破解来完成,通过hashcat/JohntheRippe已经支持破解Telegram密钥。
实战中,可以通过编写脚本来达到省略人工的步骤。
针对WhatsApp、Telegram及Signal应用的侧信道攻击技术研究
Windows 下Telegram Desktop的身份凭证窃取
分析针对窃取桌面版Telegram和Steam敏感数据的恶意软件
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
- [原创] 红队视角下的AzureAD 1820
- 记一次钓鱼邮件溯源 6587
- [原创]HTB-ENST靶机记录 1939
- Telegram Desktop Session Hijacking 1421
- [原创]记一次另类的横向突破 1193