QRLJacker劫持WhatsApp 二维码劫持攻击框架

QRLJacker劫持WhatsApp 二维码劫持攻击框架
项目地址:github.com/OWASP/QRLJacker
劫持WhatsApp攻击演示地址(扶墙):youtube.com/watch?v=sYtH5-K2JZc

QRLJacker

先来介绍一下QRLJacker:owasp.org/index.php/Qrljacking

QRLJacking攻击流程 幕后黑客是如何用QRLJacking攻击whatsapp的:

  1. 攻击者初始客户端QR会话和克隆登录二维码到钓鱼网站。 “现在一个精心策划的钓鱼页面和一个有效的定期更新二维码已经准备好被送到一个受害者。”
  2. 攻击者向受害者发送钓鱼页面。 (参考 现实生活QRLJacking攻击向量 )
  3. 受害人扫描二维码与特定目标移动应用。
  4. 攻击者可以控制受害者的账户。
  5. 服务是所有受害者的交换数据与攻击者的会话。
QRLJacker

QRLJacking的影响:

1.账户劫持

QRLJacking攻击使攻击者能够使用一个完整的账户劫持场景与二维码功能导致脆弱的登录账户窃取和声誉的感情。

2.信息披露

当受害人扫描二维码他给攻击者更多的信息比如(他当前GPS定位准确,设备类型,IMEI, SIM卡信息和其他敏感信息,客户端应用程序提供在登录过程)

3.回调数据操作

当攻击者接收到数据,我们澄清了“信息披露”的观点,其中一些数据用于与服务通信服务器澄清一些关于用户的信息可在用户的应用程序。 不幸的是有时这些数据在不安全的网络连接交换使得这些数据很容易被攻击者控制给他修改甚至删除它的能力。

QRLJacking vs“点击劫持”

众所周知,“点击劫持”都是关于虐待一个敏感的web页面的风格隐藏和覆盖和操纵一些元素来说服受害者“例如”来改变他的帐户的主要攻击者的一个电子邮件地址和密码,但如果攻击者成功,过了一会儿他想要登录到受害者的账户,发现这个帐户启用了两因素身份验证功能! ! ! 当然,攻击都被毁了,整件事情变得无用。

QR登录特性,提出了单点登录和身份验证层2因素,因为这个原因被认为是最后的防线,给用户安全性和可用性。 “扫描我登录”很简单,每天登录安全、有效的方法。 QRLJacking这里混乱,可用性和安全实现。

很明显现在为什么QRLJacking攻击是比普通的“点击劫持”更严重。

攻击场景: 攻击者访问网站并打开一个会话。

  1. 网站生成二维码持有一个会话密钥。
  2. 攻击者仿造钓鱼网站页面做出二维码并将其发送给用户。
  3. 用户扫描攻击者的二维码的钓鱼网站。
  4. 手机应用程序生成验证声音和钓鱼网站。
  5. 网络钓鱼网站失败处理和获取认证音频浏览器,因为它需要额外的权限。
  6. 即使攻击者试图生成验证基于声音(用户ID)他仍然缺乏私钥。
QRLJacker

防御QRLJacking(建议和措施之一)

我们建议就停止使用登录二维码除了必要时也有很多方法来缓解这样的问题,这里有一些方法一起使用或独立的:

1. 会议确认,我们建议实施一个确认消息/通知显示特征信息会话由客户机/服务器。

2. 知识产权限制,限制任何身份验证过程在不同的网络(广域网)将窗口最小化攻击。

3. 基于地理位置的限制,限制任何身份验证过程中根据不同的位置将窗口最小化攻击。

4. 类以声音为基础的认证,一个技术来减轻这种攻击,保持相同的可用性水平,不需要任何额外的扫描QR)以外的用户交互是添加类以声音为基础的身份验证步骤的过程中,我们看到了这种技术,可以生成惟一可以识别的数据,并把它转换成音频回其原始形式(SlickLogin和隔音)这可能包括技术在这一过程中。

这一步的目的是确保扫描二维码生成相同的物理位置的移动设备进行扫描,因此消除远程攻击者欺骗用户的可能性为扫描二维码。

QRLJacker

好了,废话说完了,开始干正事,如何安装这个QRLJacker并用它劫持WhatsApp

安装步骤:github.com/OWASP/QRLJacker

安装前的先决条件:

1:Linux或MacOS系统 (在windows中安装不了/无法运行)
2:Python 3.7 以上版本

注意:不要安装QRLJacker和Firefox作为root用户在普通用户的会话,因为它不支持火狐将错误在运行模块框架。

1:Firefox浏览器更新到最新版本
2:安装最新geckodriver github.com/mozilla/geckodriver/releases

geckodriver-v0.24.0-linux32.tar.gz 2.78 MB
geckodriver-v0.24.0-linux64.tar.gz 2.76 MB
geckodriver-v0.24.0-macos.tar.gz 2 MB
geckodriver-v0.24.0-win32.zip 3.73 MB
geckodriver-v0.24.0-win64.zip 4.46 MB
Source code(zip)
Source code(tar.gz)

然后提取文件:

chmod + x geckodriver
sudo mv - f geckodriver /usr/local/share/geckodriver
sudo ln - s /usr/local/share/geckodriver /usr/local/bin/geckodriver
sudo ln - s /usr/local/share/geckodriver /usr/bin/geckodriver
git clone https://github.com/OWASP/QRLJacking
cd QRLJacking/QRLJacker
pip install -r requirements.txt
QRLJacker

然后就可以运行QRLJacker了

python3 QrlJacker.py --help 
QRLJacker

此程序已经在Ubuntu 18.04 Bionic Beaver和Kali Linux 2018.x 以上的版本测试成功

QRLJacker

剩下的图跳转最后面查看————

使用方法介绍:

命令行参数:

usage: QrlJacker.py [-h] [-r ] [-x ] [--debug] [--dev] [--verbose] [-q]

optional arguments:
  -h, --help  show this help message and exit
  -r          Execute a resource file (history file).
  -x          Execute a specific command (use ; for multiples).
  --debug     Enables debug mode (Identifying problems easier).
  --dev       Enables development mode (Reloading modules every use).
  --verbose   Enables verbose mode (Display more details).
  -q          Quit mode (no banner).

主菜单帮助

General commands
=================
	Command               Description
	---------             -------------
	help/?                Show this help menu.
	os      <command>     Execute a system command without closing the framework
	banner                Display banner.
	exit/quit             Exit the framework.

Core commands
=============
	Command               Description
	---------             -------------
	database              Prints the core version, check if framework is up-to-date and update if you are not up-to-date.
	debug                 Drop into debug mode or disable it. (Making identifying problems easier)
	dev                   Drop into development mode or disable it. (Reload modules every use)
	verbose               Drop into verbose mode or disable it. (Make framework displays more details)
	reload/refresh        Reload the modules database.

Resources commands
==================
	Command               Description
	---------             -------------
	history               Display commandline most important history from the beginning.
	makerc                Save the most important commands entered since start to a file.
	resource  <file>      Run the commands stored in a file.

Sessions management commands
============================
	Command               Description
	---------             -------------
	sessions (-h)         Dump session listings and display information about sessions.
	jobs     (-h)         Displays and manages jobs.

Module commands
===============
	Command               Description
	---------             -------------
	list/show             List modules you can use.
	use      <module>     Use an available module.
	info     <module>     Get information about an available module.
	previous              Runs the previously loaded module.
	search   <text>       Search for a module by a specific text in its name or in its description.

模块菜单帮助

General commands
=================
	Command               Description
	---------             -------------
	help/?                Show this help menu.
	os      <command>     Execute a system command without closing the framework
	banner                Display banner.
	exit/quit             Exit the framework.

Core commands
=============
	Command               Description
	---------             -------------
	database              Prints the core version and then check if it's up-to-date.
	debug                 Drop into debug mode or disable it. (Making identifying problems easier)
	dev                   Drop into development mode or disable it. (Reload modules every use)
	verbose               Drop into verbose mode or disable it. (Make framework displays more details)
	reload/refresh        Reload the modules database.

Resources commands
==================
	Command               Description
	---------             -------------
	history               Display commandline most important history from the beginning.
	makerc                Save the most important commands entered since start to a file.
	resource  <file>      Run the commands stored in a file.

Sessions management commands
============================
	Command               Description
	---------             -------------
	sessions (-h)         Dump session listings and display information about sessions.
	jobs     (-h)         Displays and manages jobs.

Module commands
===============
	Command               Description
	----------            --------------
	list/show             List modules you can use.
	options               Displays options for the current module.
	set                   Sets a context-specific variable to a value.
	run                   Launch the current module.
	use     <module>      Use an available module.
	info    <module>      Get information about an available module.
	search  <text>        Search for a module by a specific text in its name or in its description.
	previous              Sets the previously loaded module as the current module.
	back                  Move back from the current context.

会话命令帮助菜单

usage: sessions [-h] [-l] [-K] [-s] [-k] [-i]

optional arguments:
  -h   Show this help message.
  -l   List all captured sessions.
  -K   Remove all captured sessions.
  -s   Search for sessions with a specifed type.
  -k   Remove a specifed captured session by ID
  -i   Interact with a captured session by ID.

工作命令帮助菜单

usage: jobs [-h] [-l] [-K] [-k]

optional arguments:
  -h   Show this help message.
  -l   List all running jobs.
  -K   Terminate all running jobs.
  -k   Terminate jobs by job ID or module name

利用的核心

命令自动完成

的自动完成功能实现这个框架不是一般人你总是看到,这里有一些亮点:

  1. 旨在修复拼写错误在输入命令来命令只有一个选项卡单击最相似 saerch 就变成了 搜索 等等,即使你输入任何随机字类似于一个命令在这个框架。
  2. 你懒惰的学生像我一样,它可以预测模块你试图使用通过键入任何它的一部分。 例如,如果你输入 use wh 点击选项卡,它就会被替换掉 use grabber/whatsapp 等等。 我能看到你的微笑,你是受欢迎的!
  3. 如果你输入任何错误的命令然后按enter,框架会告诉你最近的命令是什么类型,可能是你真正想要的。
  4. 一些更令人印象深刻的诸如自动完成选项后当前的模块 set 命令,自动完成后的模块 use和 info命令,最后它将所有大写字母转换为小写自动地为你打字时误切换情况下。
  5. 最后,你会发现你的正常自动完成之前使用的东西,像命令自动完成和持久的历史,等等……

自动化

  • 您可能注意到,您可以使用一个资源文件从命令行参数开始前框架本身或直接发送命令。
  • 您可以使用在框架 makerc 命令在Metasploit但这次只保存正确的重要命令。
  • 有 历史(history和 资源(resource命令,这样你就不需要退出框架。
  • 你可以尽可能多的命令执行同时用分号分割和更多的留给自己被发现。
  • 搜索模块QRLJacker是那么容易,你可以通过它的名字搜索模块,用其描述,甚至作者的名字。
QRLJacker

劫持成功打开网址就可以直接登陆上去别人的WhatsApp了

QRLJacker
QRLJacker

QRLJacker劫持WhatsApp 二维码劫持攻击框架
项目地址:github.com/OWASP/QRLJacker
劫持WhatsApp攻击演示地址(扶墙):youtube.com/watch?v=sYtH5-K2JZc