移动端渗透
移动端渗透测试
前不久碰到一个项目,需要对一个app进行渗透测试,一下子碰到了知识盲区,之前都是学习的是web方向的渗透,移动端实在是没接触过,只能先从环境搭建开始了。。。
环境:
-
win10
-
安卓模拟器(比如夜神模拟器])
安卓模拟器安装与使用
安装
如果要尝试移动端的渗透测试,就需要借助一个适合的安卓平台运行app,然后抓包分析,这个平台就是安卓模拟器。网上搜索后,发现经常被大家用来渗透测试的安卓模拟器有夜神,雷电等,经过个人使用体验后,感觉夜神模拟器比较合适。
官网直接点击下载安装。
安装完成后进入模拟器,界面如下:
配合抓包工具使用
burpsuite+夜神模拟器
如果要使得burp能抓到安卓模拟器的包,就得将相应代理的ip地址和端口绑定好。还有burp对应的证书也要安装。
- burpsuite配置:
打开burpsuite,点击Proxy-->Options,在第一个Proxy Listener模块中,点击add,即可添加一个代理监听器
绑定端口建议还是8080,之前监听本机时绑定地址都使用的是环回地址
127.0.0.1,这次由于是要远程监听模拟器,选择下面的指定地址
,
旁边的默认就是本机的ip地址。点击ok即可完成添加。
添加完成后,需要将之前选择的127.0.0.1:8080
选项的√去掉。
2.夜神模拟器配置
- 代理配置
点击设置-->wlan,然后长按连接的网络,在弹出的选项中选择修改网络
。
在高级选项中,选择手动,填好代理服务器主机名(也就是本机ip,刚才burp上显示的,也可以通过ipconfig命令查看),代理服务器端口(这里就是刚才burp填的 8080端口号,然后点击保存。
接下来就是在模拟器上安装burp证书,确保burp能抓到https的包。
点击模拟器中的浏览器,在地址栏输入http://burp,在页面上下载burp的证书。
下载后,需在下载
中将证书名称后缀由der修改为cer。
然后进入wlan,点击右上方的三个点图案,选择高级-->安装证书,
点击刚刚下载的证书。部分朋友可能会遇到进入选择证书界面后(处在下载文件夹下下),证书变灰无法点击的情况,需要点击左上角的三横线图标,然后选择进入手机的download文件夹下,在该文件夹下,证书可以点击。
选择证书后,随便输入一个证书名称,凭证用途选择vpn和应用,点击确定,即可完成安装。至此,配置完成。
burp开启拦截,模拟器打开浏览器,输入百度地址,尝试抓包:
成功抓到百度https的包。
但是我发现安装好burp的包以后,使用浏览器正常访问https的网站,会弹出安全警告,显示网站的安全证书有问题,我始终没有搞明白是哪里出了问题,希望知道如何处理的大神可以在评论区说一下解决方法。当然一直点击继续
可以点到弹窗消失,网站也就能正常访问,只是太影响平常对网站的测试。
fiddler+夜神模拟器
利用这次app渗透顺便学习使用了第二个抓包工具--fiddler。
Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指Cookie,html,js,css等文件)
下载地址:https://www.telerik.com/fiddler
进入下载页面后点击Try For Free-->Fiddler Classic
Fiddler界面
这里就不详细介绍fiddler的使用了,感兴趣的读者可以去官网上查看fiddler的用法。(我还是觉得burp好用,可能是具体使用场景有所不同)
简单的说一下使用它如何配合夜神模拟器进行抓包。
1.fiddler配置
在界面中选择Tools-->Options-->HTTPS,勾选Decrypt HTTPS traffic和Ignore server certificate(unsafe)选项
然后点击右边的Actions选项,选择Trust Root Certificate,选择Yes,选择是。
接着选择Tools-->Options-->Connections,Fiddler默认端口8888,就不建议改了,勾选Allow remote computers to connect
最后点击右下角的ok即可完成配置(一定要点击ok退出,否则刚才配置不会被保存),完成后建议重启fiddler,重启后配置才生效。
- 夜神模拟器配置
和刚才设置burp时一样,设置wlan中的代理,这次需要将端口改为8888。
然后就是安装fiddler证书,也是要确保能顺利抓到https包。在浏览器中输入本机ip+8888,即可进入下载的地址,点击最后一行的链接FiddlerRoot certificate即可下载。
下载完成后,按照上述装burp证书的步骤安装fiddler证书。(这里就不需要该=修改fiddler证书后缀了)。
安装完成后,在fiddler界面中按键shift+Delete
键,可以清空之前抓的包。
打开夜神的浏览器,访问百度网址,可以看到fiddler成功抓到https的数据包。
adb工具包的安装与使用
简介
adb全称(Android Debug Bridge),它是一个通用命令行工具,它可以做为Android与PC端连接的一个桥梁,所以adb又称为Android调试桥,用户可以通过adb在电脑上对Android设备进行全面操作,比如安装和调试应用,操作文件的传输等。
安装好adb工具后,可以方便我们使用pc端的命令行对安卓模拟器的,也使得我们能够使用
drozer
对模拟器中的app进行安全测试。
下载地址:https://adbshell.com/upload/adb.zip
下载解压后,文件夹如下:
打开cmd,cd到该目录下,输入adb.exe即可看到adb工具的帮助信息。如果想要更方便的使用可以将adb文件夹路径放到环境变量中。
adb基本使用
- 开启和关闭adb服务:
开启:adb start-server
关闭:adb kill-servers
- 查看当前连接的android设备或模拟器:
adb devices
由于还未做任何操作,显然还没有连接任何设备。
- 连接安卓模拟器
在使用adb连接安卓模拟器之前,需要先设置好安卓模拟器。
进入夜神模拟器,打开设置-->关于平板电脑-->版本号,点击版本号5次即可进入开发者模式
然后进入设置-->开发者选项,
打开USB调试按钮。
然后确保模拟器和主机是在同一个网络下,即可开始连接。
cmd输入 adb connect 127.0.0.1:62001
,即可靠adb连接到夜神模拟器上,输入 adb devices
查看是否连接成功:
不同厂商的模拟器,默认连接的端口不同,部分厂商具体如下:
厂商 | 默认连接端口 |
---|---|
夜神模拟器 | 62001 |
海马玩模拟器 | 26944 |
mumu模拟器 | 7555 |
雷神模拟器 | 5555 |
腾讯手游助手 | 5555 |
4.进入adb的命令行操作模拟器
adb shell
具体命令语法与linux的shell一样。如果对shell感兴趣可以看我的关于[shell编程][https://www.cnblogs.com/jackie-lee/p/16643515.html]的博客。
drozer部署与使用
简介
drozer是一款针对Android系统的安全测试框架,可以分成两个部分:其一是“console”,它运行在本地计算机上;其二是“server”,它是一个安装在目标Android设备上的app,当使用console与Android设备交互时,就是把Java代码输入到运行在实际设备上的drozer代理(agent)中。
相比web端,移动端可以用来渗透的工具少之又少,drozer是我认识的第一个可以用来做安卓渗透测试的工具。
drozer部署
下载地址:https://labs.withsecure.com//tools/drozer/
用作"console"为msi包,用作"server"的为Agent.apk包,将两个都下载下来
安装msi包之前要确保有python2的环境,配置好Python2的环境变量,如果当前环境已经配置了python3,需要将python2所在文件夹中下的python.exe
和pythonw.exe
文件的文件名改为python2.exe
和pythonw2.exe
,这样配置好环境变量后即可在命令后中输入python2
调用python2。
做好python2的工作后,我们即可点击msi安装包安装drozer。选择python环境时,要按照下图选择:
点击Next
即可安装。安装完成后可在python2目录的Scripts文件夹下看到安装的drozer相关文件,其中的drozer.bat是马上要用到的。
接着就是安装drozer的Agent.apk包,这时可以通过adb将其安装到模拟器上。
命令行输入:adb install G:\Desktop\tools\drozer-agent-2.3.4.apk
模拟器中可以看到刚装上去的drozer Agent,点击该软件,点击右下角按钮开启drozer Agent,可以看到弹出提示该服务在端口31415
这里需要将adb端口转发一下:adb forward tcp:31415 tcp:31415
在使用drozer.bat之前需要先使用记事本编辑一下drozer.bat中的内容,由于命令行中输入python2
才能调用python2,这里需要将其中的'python'改为'python2'
然后在当前文件夹下打开命令行,通过调用drozer.bat文件使用drozer连接模拟器:
输入drozer.bat console connect
出现一处Warning无需担心,目前看来不影响使用。出现了上面这个类似安卓的图案代表drozer运行成功,至此drozer搭建完成。
如果出现了报错,应该是drozer需要依赖的python2的模块没有安装,根据报错使用pip2安装相应缺少的库即可,以下三个库是原python2不会自带的:protobuf
、pyopenssl
、pyyaml
在一个系统中要想让python2和python3的pip共存,需要重新安装两个版本的pip,命令如下:
python2 -m pip install --upgrade pip --force-reinstall python3 -m pip install --upgrade pip --force-reinstall # 照上面设置python2的环境变量的方式一样设置python3。
然后就可以分别调用pip2和pip3管理两个python的库了。
drozer基本使用
list
列出drozer所有模块。
-
run app.package.list
列出模拟器上安装的所有包名。
包名是唯一的,只表示apk文件的名称,都是以com开头
-
run app.package.list -f 包名
查找指定包名
-
run app.package.info -a 包名
获取指定包名的基本信息
-
run app.package.attacksurface 包名
确定指定包名的攻击面
这些是基本用法,更多的drozer的用法我还在学习中。。。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了