[原创](萌新总结)Android渗透测试指引(一):总述
4天前 1866
萌新自己写的笔记,单纯作为记录,也希望能够帮到他人,如有错误请轻喷^ ^
· adb shell 进入shell,也就是获取一个手机命令行
· adb push 电脑地址 手机地址 将电脑文件导入到手机指定位置
· adb install 电脑地址 安装电脑地址上的apk
· adb connect ip port 链接指定位置的手机(适用于远程调试)
· adb forward agree:port agree:port 转发端口
· adb shell pm uninstall -k --user 0 包名 卸载apk
(这个方法真机模拟器无法使用,真机挂代理方式请看下文第二节)
lamda github页面:https://github.com/rev1si0n/lamda/
首先需要准备一个root权限的手机。下载lamda的安装脚本adb中使用sh运行安装(详细步骤请自行查看lamda的ReadMe)。主机中使用pip安装lamda的客户端。
手机如果是模拟器,配置到与主机同一个网段则需要使用桥接模式。使用桥接模式后互相能ping通就可以了。
sh /data/local/tmp/x86/bin/launch.sh
先启动手机上的lamda。使用lamda是为了挂代理+安装证书。
mitmproxy使用pip命令即可安装(它是一个python module):
安装mitmproxy的证书(运行mitmdump挂起服务器,浏览器走mitm的代理访问mitm.it即可安装证书)并挂上mitmproxy的代理如下:
这个脚本在手机端lamda启动后运行一次,听到beep声表示运行成功。
install_ca_certificate就是安装证书的命令,只需要运行一次。
手机端的配置结束,接下来pip安装mitmproxy,使用upstram模式转发流量到上流代理服务器(即BP)即可。
mitmdump --mode upstream:127.0.0.1:8080 --listen-port 8899 --ssl-insecure
上面的mitmweb也可以改成mitmproxy 或mitmdump 主要是中间流量的表现形式不同。
有时候直接使用系统的代理会被APK检测到。有些APK的包使用了参数NO_PROXY,会绕过系统代理发送,有些则会在检测到代理的时候停止发包。
但是真机虚拟机是无法使用lamda的(实际的真机可以),用VMOS抓包的一个方式是代理到宿主机的小黄鸟(HTTPCanary),导出.0证书,小黄鸟设置目标应用,虚拟机安装证书。
也可以通过转换过的.0证书+模拟器挂代理代理到mitmproxy然后中转到burpsuite。一样的。
由于虚拟机可能不能直接装证书,即使有ROOT(具体为什么我不知道),只能将证书导出为.0格式然后复制到/system/etc/security/cacerts/下。
cer、pem等格式的证书可以通过openssl转换为.0格式之后手动安装。
openssl x509 -inform PEM -subject_hash_old -in mitmproxy-ca-cert.pem -out out.0
校验通信中证书的签发HOST。这种情况需要用户反编译找到hostname然后自行制作一个此hostname的证书。证书可以通过openssl生成。
SSL双向认证体系中,客户端与服务端各拥有一对证书和密钥,在通信过程中:
(2)服务端发送服务端证书给客户端,客户端会校验服务端的证书是否在许可范围内
(3)客户端校验通过后,发送客户端证书给服务端,服务端也会校验客户端证书是否在许可范围内
如果代码未经混淆,直接搜索ClientKeyStore.load即可找到打开bks证书的语句,第二个参数即为密码,第一个参数为证书文件名。
由于Android证书端的证书格式为bks,而BP需要的证书格式为p12,所以我们还需要转换证书的格式。下载portecle后转换证书的格式,然后在BP中导入即可抓到包:
drozer主要 用来查找androidAPK本身的漏洞,而非对应后端的漏洞。
https://github.com/WithSecureLabs/drozer/releases
需要先额外安装一个python2.7,再运行安装程序。如果环境中已经有其他版本的python了,请先看下节。
.\adb.exe forward tcp:31415 tcp:31415
点击安装,选择之前安装的python2文件夹,进入\Scripts文件夹下,将drozer.bat文件中的python替换为python2再运行即可启动dozer。
然后我们开始配置依赖。移动到pip2.exe所在的文件夹使用与平时使用pip相同的命令安装service_identity、twisted、pyopenssl、pyyaml、protobuf即可。
有时候下载的py2里没有pip文件,需要在这里获取get-pip.py:
https://bootstrap.pypa.io/pip/2.7/get-pip.py
全文复制后保存为python文件,然后使用py2运行就行了。但是这样获取的pip有个问题就是没有能访问的镜像源,所以每次安装时带上选项,使用国内的镜像源即可:
-i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
run app.activity.start --component 包名 活动名(activity)
run scanner.provider.injection -a 包名
这两个框架的模块安装方式都是一样的:模块本身就是一个APK,直接安装APK即会被识别。
电脑端模拟器安装Magisk可以参照此文章:https://www.52pojie.cn/thread-1583586-1-1.html
使用Magisk而不使用XPOSED的原因是Magisk对文件系统的破坏性小,且不需要事先ROOT,适用范围广一些。并且Magisk上可以集成Xposed。
对于真机模拟器而言,已知光速模拟器可以安装Magisk,但是一般情况下需要付费VIP。VMOS据说安装之后并不好用,可能还是要用其自带的XPOSED。
可以使用Magisk Manager 安装Magisk。安装后,如果Manager提示更新但一直下载失败,请打开设置换源为https://qianyegroup.gitee.io/magiskbuilds/updates/custom_md2.json。
这是真机模拟器的不得已之选。使用VMOS PRO的虚拟机会自带一个XPOSED。由于个人比较推荐Magisk,Xposed目前还没装过。
收藏 ・0
点赞・1
打赏
分享
|
|
---|---|
太好了,我也是萌新,顶顶 |
|
返回
他的文章