热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【技术分享】利用WhatsappWeb服务劫持Whatsapp账户

翻译:myswsun预估稿费:120RMB投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿0x00 前言通过实现所有用户间的E2E加密,Whatsapp已经改变了它的形象,从一个令

https://img.php1.cn/3cd4a/1eebe/cd5/8ad8f3bf8da691df.webp

翻译:myswsun

预估稿费:120RMB

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿


0x00 前言

通过实现所有用户间的E2E加密,Whatsapp已经改变了它的形象,从一个令人震惊的安全的通信应用程序到被许多人尊重的应用程序的转变。


0x01 Whatsapp简介

Whatsapp帐号基于手机号码。这意味着手机号码就是你的用户名,它也被用来认证。尽管从隐私的角度看这不是完美的,让用户不必再记住另一个密码,他们可能会被重复使用,甚至更糟,通过钓鱼攻击泄漏。

登陆过程的简略描述:

http://p5.qhimg.com/t013435f6b36db17cbd.png

当每次用户启动应用后用户不得不输入他们的手机号。一个验证令牌通过SMS或者电话发送到这个号码。在验证码输入到这个应用后,认证令牌保存在设备中,用户成功登录。

当用户在新设备登录时,需要重复上述过程,并且老设备的授权被取消。Whatsapp不会在他们的服务器上保存老的消息,因此之前的消息不能转移到新的设备上。

当然这个过程是更加复杂的但是这种简化在本文中是适合的。

这种便利伴随着被网络黑客攻击的代价,能够访问电话号码。用户信任移动供应商也是需要的,因为他们对该号码有完全访问权限并且能接管帐号。


0x02 攻击者的角度

从低级的攻击者的角度来看,它很难被绕过。有两个问题:

1. 以一些方式访问受害者的手机号码。正如上面所述,这个能够通过网络攻击或者移动服务供应商实现。尽管能访问到手机号码,但是不能获得任何老的消息或者聊天历史记录,而且受害者会立即意识到一些事发生了,因为他们的手机会注销账户。

2. 进入操作系统,访问磁盘分区等。尽管这能实现,但是代价非常大


0x03 新角色的加入

在2015年,Whatsapp启用了Whatsapp网络服务,能在电脑上面收发消息的网站。为了使用它,浏览器与与手机对等并且手机保持命令。下面是这个过程的简述:

http://p1.qhimg.com/t0136e7ecabada90b4d.png

通过用手机应用扫描网页上的二维码来授权登录。然后用户可以在浏览器中使用Whatsapp,只需要手机是打开的并且能被计算机访问。

这个给攻击者提供了一个方便的脚手架。欺骗用户扫描二维码,将得到将来和过去通信的全部访问权限。


0x04 一个正式的攻击

它非常简单:攻击者只需要欺骗用户扫描恶意的二维码来授权攻击者的浏览器。这个将给他们对于受害者账户的完全访问权限。一个简单的在线抽奖可以作为诱惑,受害者需要扫描二维码进入。

攻击过程描述:

http://p2.qhimg.com/t01444b5f71514ea484.png

为了更加复杂,Whatsapp不会在他们的注册页面展示静态的二维码,会几秒钟生成一个新的二维码。这个阻止了攻击者简单的复制并发布到另一个网站上。

在我的演示中我绕过这个障碍,通过使用脚本持续抓取二维码,并使用websocket连接发送给“受害者”。

缺陷:

用户能看到他们授权的浏览器设备列表

如果过另一个浏览器登入了受害者会收到一个警告

这是个社工攻击:受害者必须参与给予权限

但是,对于粗心的人来说这还是个有效的手段。


0x05 演示

我开发的工具使用selenium获取QR代码并使用express.js + socket.io在单独的页面上显示它们。如果受害者使用他们的手机扫描这个二维码,则document.COOKIE和selenium浏览器的本地存储将被转储到攻击者计算机上的文件中。然后可以使用获取的数据使用任何浏览器登录受害者的帐户。(代码


0x06 修复手段

没有修复手段避免这种攻击,除了改进认证过程。我认为当他们开发网络客户端时就已经意识到了这种可能性,但是他们不认为这是个大问题。


推荐阅读
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 单点登录原理及实现方案详解
    本文详细介绍了单点登录的原理及实现方案,其中包括共享Session的方式,以及基于Redis的Session共享方案。同时,还分享了作者在应用环境中所遇到的问题和经验,希望对读者有所帮助。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文介绍了Java高并发程序设计中线程安全的概念与synchronized关键字的使用。通过一个计数器的例子,演示了多线程同时对变量进行累加操作时可能出现的问题。最终值会小于预期的原因是因为两个线程同时对变量进行写入时,其中一个线程的结果会覆盖另一个线程的结果。为了解决这个问题,可以使用synchronized关键字来保证线程安全。 ... [详细]
  • 加密世界下一个主流叙事领域:L2、跨链桥、GameFi等
    本文介绍了加密世界下一个主流叙事的七个潜力领域,包括L2、跨链桥、GameFi等。L2作为以太坊的二层解决方案,在过去一年取得了巨大成功,跨链桥和互操作性是多链Web3中最重要的因素。去中心化的数据存储领域也具有巨大潜力,未来云存储市场有望达到1500亿美元。DAO和社交代币将成为购买和控制现实世界资产的重要方式,而GameFi作为数字资产在高收入游戏中的应用有望推动数字资产走向主流。衍生品市场也在不断发展壮大。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Google在I/O开发者大会详细介绍Android N系统的更新和安全性提升
    Google在2016年的I/O开发者大会上详细介绍了Android N系统的更新和安全性提升。Android N系统在安全方面支持无缝升级更新和修补漏洞,引入了基于文件的数据加密系统和移动版本的Chrome浏览器可以识别恶意网站等新的安全机制。在性能方面,Android N内置了先进的图形处理系统Vulkan,加入了JIT编译器以提高安装效率和减少应用程序的占用空间。此外,Android N还具有自动关闭长时间未使用的后台应用程序来释放系统资源的机制。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
author-avatar
mobiledu2502911607
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有