以前学过的移动安全Android端测试
学习文章
Scrounger:iOS和Android移动应用程序渗透测试框架
Android APP在线漏洞检测平台(不分先后)
apk查找方式:
- 用户安装的第三方应用,apk文件保存在 /data/app 目录下
- 系统自带的应用,apk文件保存在 /system/app 目录下
- android手机本身是无法查看的,需要连接到电脑上才能查看
- android 手机是linux内核,/data /system目录都是属于 root用户才能查看的,因此你需要先获取root权限才能查看
Android工具下载:
http://myh0st.cn/index.php/archives/734/
adb连接手机进行调试有两种方式,一种使用USB线,一种使用无线WiFi。
第一种 使用USB线连接
\1. 在手机上启用USB调试
\2. CMD窗口输入adb devices,此时可以看到自己的设备。
PS:无法看到自己设备时,查看手机USB调试是否打开;PC端是否安装手机驱动。
第二种 使用无线WiFi连接
首先先了解一点底层的知识:
Android系统底层运行着一个服务(adbd),用于响应和管理大家在电脑端的adb命令连接,这个服务在启动时会根据手机的配置监听USB连接或网络其中之一。配置的属性为:service.adb.tcp.port,也就是监听的网络端口
- 以上属性的值 > 0:adbd将监听网络对应的端口(一般为5555)
- 以上属性的值 <=-1:adbd将监听USB
接下来是连接步骤:
\1. 命令行输入:adb connect 172.16.4.37:5555 (:5555可省略)
提示:unable to connect to 172.16.4.37:5555
解决办法:
1)手机与PC相连,执行以下命令:adb tcpip 5555
成功提示:restarting in TCP mode port 5555
如果手机没有和PC连接,直接使用以上命令会提示 error:device not found
然后断开USB
2)接着执行adb connect 172.16.4.37:5555,这时候应该就能连接成功了
成功提示:connected to 172.16.4.37:5555
\2. 输入adb devices,得到以下提示说明连接成功,可以进行各种调试了
List of devices attached
172.16.4.37:5555 devices
3.调试完成之后,输入如下的命令断开连接:
adb disconnect 192.168.1.5:5555
4.最后一步,需要把监听的网络端口重置为-1,监听USB端口(好像不做这一步,直接插上USB线也能正常使用,而且这一步经常会提示could not set property,需要root权限)
setprop service.adb.tcp.port -1
stop adbd
start adbd
第一次安卓渗透测试
现在我们来说说如何查看dex里面的java代码,经过上面的步骤,我们可以在文件夹app-release中发现一个文件夹smali,这里面其实就java代码,只不过不是jar形式的,关于如何查看java源码,其实很简单的,如下:
第一步:把你的apk后缀名改为zip,然后解压后,就会发现有个classes.dex,这里面就是java源码了。
第二步:我们需要吧dex文件转为jar格式的文件,用到了一个工具叫dex2jar(下载链接),我们把它下载来后解压(下载来后是zip文件)。
第三步:我解压后是放在F:\Android\apktools\dex2jar-2.0目录下,现在把dex文件拷贝到该目录下。
第四步:cmd窗口进入F:\Android\apktools\dex2jar-2.0,然后输入命令:d2j-dex2jar.bat classes.dex回车,如下图:
完成后我们在F:\Android\apktools\dex2jar-2.0目录下就会多了个classes-dex2jar.jar文件,这个就是我们需要的jar文件,接下来就是如何查看java代码了,这里笔者借用一个工具jd-gui(下载链接),下载完解压(这里选择window平台),然后用它打开classes-dex2jar.jar就可以了,如果你的apk经过混淆,那么看到的都是a、b之类的。