引言
昨晚,qq群内出现了大量的广告信息,不少人员当场社死。针对此次事件,腾讯官方也给了相应的回复,今天我们想和大家聊聊我们的qq是如何“被盗”的。
事件前奏
事实上在5月25日前后,就已经有大量用户被盗号了,可以说是这次大规模盗号事件的前兆,当时还有朋友问到我这个事情:
在收到消息当天我也去自己的qq号里看了下,打开了尘封已久的皇冠贵族号,果然也收到了类似的广告,有意思的是还就是在大学的信息安全专业群里收到的黄图消息
搜了下微博,确实有很多用户在5月25日前后就遭遇过了第一波的盗号,当时就有了话题标签,并且从微博上看某明星直播的时候还说过这个事情:
事件分析
很多人在传这次事件是跟最近学习通数据泄漏以及所谓的0day漏洞有关,综合腾讯给的官方回复以及个人的经验分析,事实上这次事件和两者都没有太大关系,我们将在下文依次解答说明。
首先是躺枪的学习通,看到微博里有关学习通的话题又再次冲上了热搜,大家都怀疑本次盗号事件跟“某习通”被拖库有关,官方也做了相应的回复:
事实上qq登录有较严格的风控限制,无论是设备和ip只要不是用户常用的都会触发二次认证。下图是我测试的时候直接拿虚拟机下了个qq登录,同一ip出口都提示了设备异常,想直接通过撞库得到的密码来登录qq是不太现实的:
并且前文说过在5月25日前后就已经出现过广告事件了,那时候学习通数据还没有泄漏,而且从犯罪手法、规模和腾讯的官方回复上来看,这并不是大家想的通过直接登录qq的方式发送的广告消息。
这个clientkey就是登录第三方应用的核心,有了clientkey在通过某些可以发送群消息的接口,实现在群内发送消息,这也是为什么大家收到的广告消息都是群发而不是私发,事实上攻击者并未真正登录你的qq。
那么从哪些途径可以获取这个clientkey呢?这个大家就自行脑补了,早些年有些xss的方式,但后面都被官方修复了
此次事件学习通大概率不会背锅,当然不排除通过泄漏的账号撞库后用某些接口获取了大量的clientkey,这个就有待官方求证了。
另外就是0day漏洞的说法了,通过网上传的一些漏洞视频来看,这些所谓的0day漏洞实际上就是对clientkey的利用,视频里的httpkey实际上就是clientkey。
如下图所示,这个获取这个clientkey的请求实际上是本地触发的:
视频里是通过客户端执行了一个exe的程序把获取到的clientkey传到了服务端。因为这个请求是本地的,因此监听本地网卡就很容易抓到返回,演示的获取好友列表、登录空间、微云等实际是也都是通过clientkey实现的。
造成此次事件的原因猜测可能有两个,一是如前文所说某些网吧或者公共设备被人提前植入了agent,agent能够监听本地的数据请求并发送给云端。这样即便用户登录的是正常的qq第三方应用,如腾讯游戏等,那么劫持到的client也可发送给到云端,朋友圈里一些中招的案例也能印证这个事实:
clientkey的存活时间只有24h左右,这也解释了为什么这两次广告攻击集中在了5月25和6月26日前后,并且上图里提到的受害者都是在登录了腾讯游戏后半个小时内中招的,证明此次的“盗号攻击”是有一定实效性的。有疑问的点是agent程序是如何被批量植入的,猜测大概率是网吧的集中控制管理软件被人控制并注入了蠕虫,在指定时间段内下发了agent,用户在登录腾讯的应用后中招。
另一个就是官方给的解释了,通过访问了攻击者恶意构造的假的二维码实现了访问登录,当然这个登录大概率也是基于clientkey的登录而不是qq主体的登录(qq主体有登录设备和ip限制),只是不需要在客户端再安装agent了。但这种说法站不住脚的就是为何大量的用户能在短时间内访问到了假的二维码,而且为了保证不失效这个二维码还一定是要动态刷新的,这里就有待腾讯官方进一步确认了。
总之这个故事告诉我们:
1、陌生的二维码尽量不要扫描
2、陌生的设备尽量不要登录个人账号
3、陌生的群可以考虑加一加,免得在熟悉的群里社死
原文始发于微信公众号(Beacon Tower Lab):专业分析远离社死!如何看待QQ出现大面积盗号?
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论