因为这个RCE近几天沸沸扬扬
前脚刚CertiK 发布告警:安全告警 - Telegram 网传RCE
后脚官方发布消息可能不可靠:Telegram 网传RCE - 官方回应
最后因为开发者的手抖,成了这样:
https://github.com/telegramdesktop/tdesktop/pull/27737/commits/effad980f712cd1a4e8cee4fca42193fe5a612de
随后@VulkeyChen师傅根据@im23pds的帖子进行了回答
随后在项目中的一项评论发现了重要的一点:
https://github.com/telegramdesktop/tdesktop/pull/27737
Windows 上正确的 python zipapp 扩展是 pyzw,此拼写错误可能会导致在客户端设备中执行代码而没有适当的警告
复现过程:
这里使用了校长师傅的复现方式 - 或自行移步校长公众号(干货很多):
https://mp.weixin.qq.com/s/FoLdjtE2JvtB53HfY-8MIg
import subprocess
subprocess.run("calc.exe")
这里就有一个重要,就是利用难度的问题,曾哥也评论了相关需要Python环境支撑,才能RCE!
随后尝试python2和python3的环境,也只是函数之差,这些也并不重要,只是小小的细节问题。(.pywz文件通常是需要对此类的文件设置默认python为打开模式)要不然会提示使用什么方式打开,包括在Telegram也会提示。
python2
# -*- coding: utf-8 -*-
import subprocess
# 打开计算器
subprocess.call("calc.exe")
python3
import subprocess
# 打开计算器
subprocess.run("calc.exe")
在曾哥团队群聊里面也有人问了,MP4格式是怎么弄的,校长的文章中也是提示到使用API机器人转发,变成MP4。
我们看看下面的这段代码内容:
这段代码是一个Node.js脚本,用于创建一个Telegram机器人(bot),当收到指定命令"/video"时,它会向指定的聊天ID发送一个视频文件。代码中使用了node-telegram-bot-api库来操作Telegram Bot API,并且使用了fs模块来读取文件。将读取指定路径下的文件("/home/user/download.pyzw"),并将其作为视频文件发送给指定的聊天ID,然后就是我们看到的MP4格式RCE了。
帖子在这,做了缩短:
http://dz4fp.osxo.cn/8a
关于API机器这步骤也是尝试了搭建转发机器人,因为没有部署过Telegram的机器,也是用的BotFather和cloudflare测试和改了好几遍弄成一坨屎直接放弃了。
最后找到了这个项目https://github.com/yagop/node-telegram-bot-api。最后写到这里我也是看到校长的那篇文章尾部是说:做了限制,但是对于整个RCE完整复现还是得在机器人上花费时间,那么先到这里吧!
推荐一波:
原文始发于微信公众号(Ots安全):Telegram Desktop RCE . pywz VS pyzw 开发的手抖经典案例
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论