本系列已经介绍了多种鉴别和攻击Android应用漏洞的方法。上一期我们介绍了Android应用调试相关的东西,本期中我们来看看与Android WebViews相关的漏洞。

涉及的相关主题

Android WebViews介绍

如何在一个应用中使用WebViews

WebView的安全问题

使用Metasploit攻击WebView

使用QR二维码攻击WebView

下面正式开始今天的Android Hacking之旅。

Android WebViews介绍

在Android应用的开发中,WebView用来显示远端或者应用本地的HTML页面,其在内部使用WebKit引擎来渲染页面,并且支持前后导航,文本搜索等,也支持JavaScript等高级特性。

如何在应用中使用WebViews

WebViews在应用中的使用方法非常简单,首先我们要创建一个普通的Android应用工程,并做好设置,然后创一个WebView类的对象来使用WebView提供的功能,如下是相关的代码片段:

加载互联网网页的代码片段:

WebView webview = (WebView) findViewById(R.id.mywebview);

webview.loadUrl(“http://website.com”);

要加载互联网网页,我们的应用需要访问网络,需要在AndroidManifest.xml中注册INTERNET权限,如下所示:

<uses-permission android:name=”android.permission.INTERNET”/>

加载本地网页文件的代码片段:

WebView webview = (WebView) findViewById(R.id.mywebview);

webwiew.loadUrl(“file:///android_asset/www/file.html”);

WebView的安全问题

我们之前提到过,WebView支持JavaScript,如果WebView加载的代码需要执行JavaScript,可以用如下的代码来启用JavaScript支持:

WebView webview = (WebView) findViewById(R.id.mywebview);

WebSettings webSettings = myWebView.getSettings();

webSettings.setJavaScriptEnabled(true);

WebView另一个强大的功能可以将一个Java对象暴露到JavaScript中,以便JavaScript可以访问。

在实现这个功能的时候要非常小心,误用该特性会造成严重漏洞,例如以下就是@jduck提供的一段有漏洞的代码:

https://github.com/jduck/VulnWebView/

使用Metasploit攻击WebView

本节中,我们会演示如何利用最近的一个影响大多是Android应用的漏洞,该漏洞存在于所有4.2(JellyBean)及以下版本的Android中。

1、 新建一个终端窗口,键入msfconsole命令启动Metasploit

2、 输入”search android”查看与Android先关的exp.如下图(请确保metasploit为最新版本)

安卓-7-攻击WebView-JE2Se ' Blog

途中高亮的部分就是一个攻击webview的利用程序,但在使用之前,也可以”info”命令来看看这个exp的详细信息。

3、 使用”use <exploit>”命令加载exp,如下图:

安卓-7-攻击WebView-JE2Se ' Blog

4、 使用”show options”查看需要设置的参数。

5、 参数中反向shell的IP地址和端口可以手工设置,也可保持默认。

作为示例,我们保持默认设置就好了,设置URLPATH参数:

安卓-7-攻击WebView-JE2Se ' Blog

6、全部设置后了之后,执行”exploit”命令,该命令将会启动一个反向shell监听

安卓-7-攻击WebView-JE2Se ' Blog

如上图所示,方向shell地址为的地址为http://192.168.1.104/srini0x00 ,我们可以把URL通过某些方式发送个受害者,一旦受害者打开了这个URL,我们就会获得一个shell,如下图:

安卓-7-攻击WebView-JE2Se ' Blog

使用QR二维码攻击

为了了使得攻击更加方便一点,我们可以用上面的URL生成一个对应的二维码,如果受害者扫描了这个二维码,就会在浏览器中自动打开我们的URL。

相关工具包含在社会工程学工具箱中(Social Engineering Toolkit)

步骤:

1. 打开Kali的社会工程学工具箱,路径如下:

KaliLinux -> Exploitation Tools -> Social Engineering ToolKit -> se-toolkit

2.选择生成QR二维码攻击向量(QRCode Generator Attack Vector)

3.输入URL生成二维码:

安卓-7-攻击WebView-JE2Se ' Blog

如图,二维码生成成功。

在图中所示的路径下找到生成的二维码:

安卓-7-攻击WebView-JE2Se ' Blog

4.如果受害者扫描了这个二维码,就会自动打开浏览器并加装URL,我们的Metasploit中就会有新会话建立。

安卓-7-攻击WebView-JE2Se ' Blog

扫描二维码打开浏览器

安卓-7-攻击WebView-JE2Se ' Blog

Metasplit新会话建立

5.查看所有会话

安卓-7-攻击WebView-JE2Se ' Blog

6.在上面的会话之上建立交互,如下图:

安卓-7-攻击WebView-JE2Se ' Blog

7、我先设置了PATH变量未/system/bin,然后执行”cat /proc/cpuinfo”查看设备的CPU信息

安卓-7-攻击WebView-JE2Se ' Blog

总结

本文介绍了与WebView相关的攻击方法,我们也可以使用Drozer来进行测试和攻击。

相关参考

jduck (https://twitter.com/jduck)

https://labs.mwrinfosecurity.com/blog/2013/09/24/webview-addjavascriptinterface-remote-code-execution/