移动端渗透测试

前不久碰到一个项目,需要对一个app进行渗透测试,一下子碰到了知识盲区,之前都是学习的是web方向的渗透,移动端实在是没接触过,只能先从环境搭建开始了。。。

环境:

安卓模拟器安装与使用

安装

如果要尝试移动端的渗透测试,就需要借助一个适合的安卓平台运行app,然后抓包分析,这个平台就是安卓模拟器。网上搜索后,发现经常被大家用来渗透测试的安卓模拟器有夜神,雷电等,经过个人使用体验后,感觉夜神模拟器比较合适。

官网直接点击下载安装。

image-20220903105541029

安装完成后进入模拟器,界面如下:

image-20220903111407858

配合抓包工具使用

burpsuite+夜神模拟器

​ 如果要使得burp能抓到安卓模拟器的包,就得将相应代理的ip地址和端口绑定好。还有burp对应的证书也要安装。

  1. burpsuite配置:

​ 打开burpsuite,点击Proxy-->Options,在第一个Proxy Listener模块中,点击add,即可添加一个代理监听器

image-20220903120810550

​ 绑定端口建议还是8080,之前监听本机时绑定地址都使用的是环回地址127.0.0.1,这次由于是要远程监听模拟器,选择下面的指定地址

​ 旁边的默认就是本机的ip地址。点击ok即可完成添加。

​ 添加完成后,需要将之前选择的127.0.0.1:8080选项的√去掉。

image-20220903120935043

2.夜神模拟器配置

  • 代理配置

​ 点击设置-->wlan,然后长按连接的网络,在弹出的选项中选择修改网络

image-20220903122521844

​ 在高级选项中,选择手动,填好代理服务器主机名(也就是本机ip,刚才burp上显示的,也可以通过ipconfig命令查看),代理服务器端口(这里就是刚才burp填的 8080端口号,然后点击保存。

image-20220903122812358

​ 接下来就是在模拟器上安装burp证书,确保burp能抓到https的包。

​ 点击模拟器中的浏览器,在地址栏输入http://burp,在页面上下载burp的证书。

​ 下载后,需在下载中将证书名称后缀由der修改为cer。

image-20220903123319736

然后进入wlan,点击右上方的三个点图案,选择高级-->安装证书,

image-20220903123935528

点击刚刚下载的证书。部分朋友可能会遇到进入选择证书界面后(处在下载文件夹下下),证书变灰无法点击的情况,需要点击左上角的三横线图标,然后选择进入手机的download文件夹下,在该文件夹下,证书可以点击。

image-20220903124038348

image-20220903124135486

选择证书后,随便输入一个证书名称,凭证用途选择vpn和应用,点击确定,即可完成安装。至此,配置完成。

burp开启拦截,模拟器打开浏览器,输入百度地址,尝试抓包:

image-20220903124714502

成功抓到百度https的包。

但是我发现安装好burp的包以后,使用浏览器正常访问https的网站,会弹出安全警告,显示网站的安全证书有问题,我始终没有搞明白是哪里出了问题,希望知道如何处理的大神可以在评论区说一下解决方法。当然一直点击继续可以点到弹窗消失,网站也就能正常访问,只是太影响平常对网站的测试。

image-20220903125211869

fiddler+夜神模拟器

利用这次app渗透顺便学习使用了第二个抓包工具--fiddler。

Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指Cookie,html,js,css等文件)

下载地址:https://www.telerik.com/fiddler

进入下载页面后点击Try For Free-->Fiddler Classic

Fiddler界面

image-20220903130707111

这里就不详细介绍fiddler的使用了,感兴趣的读者可以去官网上查看fiddler的用法。(我还是觉得burp好用,可能是具体使用场景有所不同)

简单的说一下使用它如何配合夜神模拟器进行抓包。

1.fiddler配置

在界面中选择Tools-->Options-->HTTPS,勾选Decrypt HTTPS traffic和Ignore server certificate(unsafe)选项

image-20220903131355382

然后点击右边的Actions选项,选择Trust Root Certificate,选择Yes,选择是。

接着选择Tools-->Options-->Connections,Fiddler默认端口8888,就不建议改了,勾选Allow remote computers to connect

最后点击右下角的ok即可完成配置(一定要点击ok退出,否则刚才配置不会被保存),完成后建议重启fiddler,重启后配置才生效。

image-20220903132051882

  1. 夜神模拟器配置

​ 和刚才设置burp时一样,设置wlan中的代理,这次需要将端口改为8888。

image-20220903132245698

然后就是安装fiddler证书,也是要确保能顺利抓到https包。在浏览器中输入本机ip+8888,即可进入下载的地址,点击最后一行的链接FiddlerRoot certificate即可下载。

image-20220903132555427

下载完成后,按照上述装burp证书的步骤安装fiddler证书。(这里就不需要该=修改fiddler证书后缀了)。

安装完成后,在fiddler界面中按键shift+Delete键,可以清空之前抓的包。

打开夜神的浏览器,访问百度网址,可以看到fiddler成功抓到https的数据包。

image-20220904145640891

adb工具包的安装与使用

简介

adb全称(Android Debug Bridge),它是一个通用命令行工具,它可以做为Android与PC端连接的一个桥梁,所以adb又称为Android调试桥,用户可以通过adb在电脑上对Android设备进行全面操作,比如安装和调试应用,操作文件的传输等。

安装好adb工具后,可以方便我们使用pc端的命令行对安卓模拟器的,也使得我们能够使用drozer对模拟器中的app进行安全测试。

下载地址:https://adbshell.com/upload/adb.zip

下载解压后,文件夹如下:

image-20220904175833438

打开cmd,cd到该目录下,输入adb.exe即可看到adb工具的帮助信息。如果想要更方便的使用可以将adb文件夹路径放到环境变量中。

image-20220904180009716

adb基本使用

  1. 开启和关闭adb服务:

开启:adb start-server

关闭:adb kill-servers

  1. 查看当前连接的android设备或模拟器:adb devices

image-20220904180320445

由于还未做任何操作,显然还没有连接任何设备。

  1. 连接安卓模拟器

在使用adb连接安卓模拟器之前,需要先设置好安卓模拟器。

进入夜神模拟器,打开设置-->关于平板电脑-->版本号,点击版本号5次即可进入开发者模式

image-20220904181958551

然后进入设置-->开发者选项,

打开USB调试按钮。

image-20220904182156552

然后确保模拟器和主机是在同一个网络下,即可开始连接。

cmd输入 adb connect 127.0.0.1:62001,即可靠adb连接到夜神模拟器上,输入 adb devices查看是否连接成功:

image-20220904182414420

不同厂商的模拟器,默认连接的端口不同,部分厂商具体如下:

厂商 默认连接端口
夜神模拟器 62001
海马玩模拟器 26944
mumu模拟器 7555
雷神模拟器 5555
腾讯手游助手 5555

4.进入adb的命令行操作模拟器

adb shell

image-20220904183216581

具体命令语法与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包,将两个都下载下来

image-20220904184648913

安装msi包之前要确保有python2的环境,配置好Python2的环境变量,如果当前环境已经配置了python3,需要将python2所在文件夹中下的python.exepythonw.exe文件的文件名改为python2.exepythonw2.exe,这样配置好环境变量后即可在命令后中输入python2调用python2。

image-20220904192509433

做好python2的工作后,我们即可点击msi安装包安装drozer。选择python环境时,要按照下图选择:

image-20220904192829431

点击Next即可安装。安装完成后可在python2目录的Scripts文件夹下看到安装的drozer相关文件,其中的drozer.bat是马上要用到的。

image-20220904193729055

接着就是安装drozer的Agent.apk包,这时可以通过adb将其安装到模拟器上。

命令行输入:adb install G:Desktoptoolsdrozer-agent-2.3.4.apk

image-20220904194857834

模拟器中可以看到刚装上去的drozer Agent,点击该软件,点击右下角按钮开启drozer Agent,可以看到弹出提示该服务在端口31415

image-20220904195022108

这里需要将adb端口转发一下:adb forward tcp:31415 tcp:31415

image-20220904201114620

在使用drozer.bat之前需要先使用记事本编辑一下drozer.bat中的内容,由于命令行中输入python2才能调用python2,这里需要将其中的'python'改为'python2'

image-20220904200600273

然后在当前文件夹下打开命令行,通过调用drozer.bat文件使用drozer连接模拟器:

输入drozer.bat console connect

image-20220904201239662

出现一处Warning无需担心,目前看来不影响使用。出现了上面这个类似安卓的图案代表drozer运行成功,至此drozer搭建完成。

如果出现了报错,应该是drozer需要依赖的python2的模块没有安装,根据报错使用pip2安装相应缺少的库即可,以下三个库是原python2不会自带的:protobuf pyopensslpyyaml

在一个系统中要想让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的用法我还在学习中。。。

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/jackie-lee/p/16723260.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!