Android漏洞挖掘第二期:classes.dex反编译漏洞

释放双眼,带上耳机,听听看~!
声明:本人也是刚刚进入渗透测试行业的小白,在这里我会记录我的经验,也希望能给和我一样刚刚进入这个奇妙的安全圈的其他小白一个方向。大佬请绕过,不喜勿喷哈!如果有什么建议或者意见,请留言。如果有涉及他人信息的地方也请提供!与此同时,感谢《安全师》的创建者,感谢您创建这个平台,让安全圈越来越丰富,学习的越来越多。也让我们能记录学习成长的过程和经历。

引言:每一期都有相同的内容部分,主要为了让大家单独看一期依旧能看懂!!!

0x01 APK文件

APK文件(全称:Android Application Package),是安卓系统使用的一种应用程序包文件格式,也就是说可以将apk文件双击对其进行安装。既然说是包文件格式,说明apk文件应该是一个将其他文件进行整合压缩后的一个压缩包。既然是压缩包,就可以利用winrar软件对其进行解压并得到里面的软件。

0x02 利用工具

本次测试利用工具:apktool, dex2.jar, jd-gui

apktool: 反编译工具之一,可以提取图片文件和布局文件进行查看

dex2.jar: 反编译工具,是将apk包内的classes.dex文件进行反编译,变成一个以.jar文件结尾的jar包

jd-gui: 反编译工具,将dex2.jar反编译classes.dex的jar包进行再次反编译,就可以看到里面的源码了

0x03.1 方法一 对apk文件进行解压打开

  • 利用手机或者安卓模拟器,将apk文件放在电脑桌面上,并将.apk文件重命名为.zip文件
Android漏洞挖掘第二期:classes.dex反编译漏洞
  • 将xxxx.zip文件利用WINRAR压缩软件,再进行解压缩,会得到下面的apk解压后的文件集
Android漏洞挖掘第二期:classes.dex反编译漏洞

0x03.2 方法二:利用apktool也可以对.apk文件进行反编译得到上图

  • 将apk文件与apktool反编译工具放在同一个文件夹下。
Android漏洞挖掘第二期:classes.dex反编译漏洞
  • 鼠标右键,以管理员的方式打开命令提示符窗口,并找到文件夹的路径。
Android漏洞挖掘第二期:classes.dex反编译漏洞
Android漏洞挖掘第二期:classes.dex反编译漏洞
  • 然后输入以下命令,后回车,就可以得到反编译的文件夹啦。
java -jar apktool_2.3.1.jar                            // 运行apktool的jar包程序
java -jar apktool_2.3.1.jar d -f xxxx.apk -o xxxx      // 使用apktool工具对xxxx.apk文件反编译

0x04 对classes.dex文件进行反编译

  • 将classes.dex文件放在下载好的dex2jar-2.0文件夹内,然后对其进行反编译Android漏洞挖掘第二期:classes.dex反编译漏洞
Android漏洞挖掘第二期:classes.dex反编译漏洞
  • 打开CMD,将路径指向dex2jar-2.0文件夹,并输入以下命令进行反编译操作
d2j-dex2jar.bat classes.dex                               // 回车然后进行反编译
Android漏洞挖掘第二期:classes.dex反编译漏洞
  • 反编译完成后,会生成以下一个叫classes-dex2jar.jar的jar包
Android漏洞挖掘第二期:classes.dex反编译漏洞

0x05 我们来看看这个文件的源码,这里就用到了另外一个工具:jd-gui

  • jd-gui,是javaDecomplier.exe的一个简称。用于反编译dex文件查看源码用的。我们先打开界面Android漏洞挖掘第二期:classes.dex反编译漏洞
  • 再将得到的classes-dex2jar.jar文件拖入到javaDecomplier.exe中查看源码。
Android漏洞挖掘第二期:classes.dex反编译漏洞
  • 这样就可以看到这个文件的源码了,有的情况下,程序员会将密码写入其中,要进行代码审计。

0x06 漏洞信息

  • 首先,文件能被反编译,本身就是一个漏洞,攻击者可以对其进行反编,修改文件再发给用户,盗取资源及信息
  • 第二个漏洞在于,如果对文件进行代码审计的话,有的一些敏感信息,管理员的账号密码都有可能被记录,导致攻击者查看
  • 当代码中,经常用数字1,2,3或者字母A,B,C等代替时,容易造成代码混淆

0x07 文件下载

dex2jar-2.0:

dex2jar-2.0

提取码:x2az复制
解压码:无

jd-gui:

jd-gui

提取码:z33y复制
解压码:无

apktool:

apktool

提取码:jlov复制
解压码:无

人已赞赏
安全工具安全教程

任意账号密码重置

2019-11-4 16:36:47

安全教程

apk脱壳360加固

2019-11-5 14:46:08

17 条回复 A文章作者 M管理员
  1. 大佬,友情修正一下哈:对classes.dex文件进行反编译时候,使用d2j-dex2jar.bat, 上边命令好像是打错了 ✗笑哭了✗

  2. 学到了学到了(

  3. 学到了,谢谢表哥

  4. ✗肌肉✗

  5. 如果研发自己做了代码混淆,你再进行反编译是不是就没法利用反编译漏洞进行攻击了?

    • 这个不一定哦!如果对android编程语言(java)了解的人,甚至开发过Android的App的人,还是能通过查看源代码知道该文件到底是干什么用的。

    • 做了代码混淆的现在还有反混淆工具,反编译出来的代码就是正常的代码了,比如说jadx-gui-0.9.0.exe、jeb.exe工具就具有反混淆能力。

  6. 哥,“小白”这两个字不适合你,你可是研究APT攻击长达两年半的cento练习生

    • 你咋知道我要开始写APT攻击的文章了?@@,神童啊!未来必成大器!在安全圈我还是“小白”,只是可能不是纯白。哈

  7. 学到了学到了

  8. 签到

  9. 用apktool解析apk文件没得到 classes.dex文件(管理员cmd) ,直接将apk 转成zip,360直接解压反而存在classes.dex文件,后来对比了一下两个文件,发现使用apktool解析的文件少了很多内容,百度一下也没找到啥原因,大佬知道啥原因吗 ✗笑哭了✗

  10. 作者还可以写写脱壳的教程,比如说xposed脱壳,frida脱壳,或者是IDA手动脱壳;然而IDA脱壳我一次都没有成功过 ✗笑哭了✗ ✗笑哭了✗ ✗笑哭了✗

    • 您IDA脱壳是脱哪个程序?.so文件吗?

  11. 反编译这个东西。。。以前我试验的时候发现淘宝这种AKP也可以反编译,所以我给别人测试的时候这个一直不敢当成漏洞来写,怕别人说某某大厂的APP也能反编译,不能算安全问题

  12. 每天get一点新技能. ✗咧嘴笑✗

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索