每日一句:
重启可以解决很多问题,
如虚拟机问题,模拟器问题等等,
本文章的一些操作不成功的话,重启试试
一、快速自建一个App
1.App难写吗?
(1)
~问:我不懂Java我能写App吗?
答:我觉得大部分人都觉得自己不能。
~问:你还记得CMS吗? 你会CMS里面的全部代码吗?
答:你也不会,但是网站就那么建立了起来。
(2)
~App其实也可以快速自建:
在线自建App地址:https://www.bslyun.com/ //可以做安卓端的,也可以做IOS端的
进网站,最下方找到免费制作(白嫖)。需要登录,很简单,手机号接个验证码即可。
点击配置app,然后基本配置、启动页、APP证书等等设置,随心设置即可。
//如果浏览器没有保存生成的的按钮,建议换一个浏览器试试。
~说明:
~基本配置有一个,主页地址。大家可以直接将自己的服务器地址(随便一个网站)写这
其实这个App本质:就是套了一个浏览器
~点击生成自己的App,版本,名称自己随心写就行。 等1分钟左右会生成一个二维码,下载即可。
其实很多二维码,没必要手机扫码去下载,(下边步骤看着繁琐,实际操作很简单)
直接右击复制二维码连接--百度“二维码识别”--比如进入“草料二维码”--点击右上角解码--直接将链接粘贴进去
--点击解码--将获取到的地址直接粘贴在浏览器访问即可下载。
~安装
到这就没什么好说的了,直接安装到电脑模拟器上,或者自己手机上。
然后打开就可以看到自己制作的APP了。其实很简单,整个制作过程快的话不超过5分钟。
也就是咱们花了大约5分钟就制作好了一个自己的第一个App。
(3)题外话
自己通过这样的在线网站制作的App图一乐就行,不要登录一些自己的敏感账户。
毕竟天知道,平台有没有做一些“特殊的”操作。
当然,话说回来。可以给自己的女朋友做一些小惊喜,一些小的App还是蛮不错的。
比如:
打一个小网站,写一些XXX专属网站。配置设置的XXX专属APP,
然后发给自己的女(性)朋友效果还是蛮不错的。
有的人可能会问:那我没对象怎么办?
没对象?new一个不就好了。
2.App木马
(1)
提到App很多人下意识的想到了木马,可以稍微发散一下思维。
(2)
MSF(快速渗透测试框架攻击,就是外号大名鼎鼎的美少妇)
比如,直接百度:“msf app马制作”有很多详细的教程。
发一个顺手百度到的文章: https://www.jianshu.com/p/7ab5ec2978d6
大家有兴趣,有时间可以去参考着制作一下,一定要多动手,光看是不行的。
二、安装Xposed框架与Inspeckage
1.Xposed框架(重点来了)
(1)简介
Xposed框架(Xposed Framework)是一套开源的、在Android高权限模式下运行的框架服务,
可以在不修改APK文件的情况下影响程序运行(修改系统)的框架服务,
基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。
pass:
这个东西之前被拿来抢红包挺多,
另外App渗透想要深入一点的话,这个框架是绕不过去的。
(2)Inspeckage插件简介
Xposed其实注意是一个框架,然后里面可以安装各种各样的插件,这些插件对渗透测试很有用,
我这里主讲Inspeckage【记住一定要Root】
夜神模拟器怎么Root ?(选择设置,选中开启Root然后重启)[一般的模拟器默认就是Root状态]
//这个插件的安装,得在Xposed框架安装后的基础上,下边会说。
如果说你无法安装,一般都是Root问题,先去设置关闭Root,然后再开启,再来尝试安装就可以
这里推荐一下雷电模拟器,在后边测试的过程,现最近雷电比夜深好用点。
(2.1)Xposed框架的安装步骤
//这个程序的安装包可以私我,也可以自己找找
//安装就直接将安装包拖进去就行了。
打开--有提示的话,直接点击确定就行了,没那么多事。
进去--点击更新。一般需要十几分钟
正常的状态是进去XXX框架已激活
这里说一个坑:
安装更新后的模块时,可能会提示设备未root,但是模拟器设置里已经开了root。
怎么办?
去设置关闭root,保存设置--重启--开启root,保存--在重启 即可安装
安装更新后的Xposed框架,点安装Version 89--点install--请求root权限,将“仅此次”改为“永久记住选择”
--点击允许--之后他自己就啪啪啪的弹出很多东西自动安装了--重启后,这个框架就正常了。
(2.2)安装Inspeckage插件
进入更新后的Xposed框架,右上角是菜单栏
“模块”是已经安装的一些模块
“下载”是一个类似应用市场的地方,里面可以下载很多公网上的模块
比如看到一个XXXX模块,点进去,点版本,点下载即可安装
注意这里的很多模块也不要随便下载,比如一些什么24小时自动收蚂蚁森林的模块等等
也许你刚刚登录了自己的支付宝账户,下一秒就被盗了。这些东西大家自己看着来吧,
记住一点无论手机、电脑、模拟器都切记不要乱装东西。
在进“下载”,点击右上角的搜索--搜一下“Inspeckage”--选择版本--下载就行。
(2.3)关于模拟器的补充:
模拟器的多开功能,类似买了新的手机,彼此之间是互不影响的。
手机的底层是Linux,没有一些明确意义上的防火墙。
(2.4)App的深入研究
其实这两篇文章主要是给有一定web基础,快速了解App渗透测试的同学看的。
想要深入了解App渗透,会接触更多的东西。如:
脱壳、逆向、重打包、签名等
这些东西想要说明白,那就不是一两篇文章可以说清楚的问题。有兴趣的同学可以自己去研究一下。
从某种意义上讲,上边提到的这些东西不属于web,属于二进制与PWN。在就业方面,大部分的面试官
与我们一样也是Web狗,对这个东西也不会怎么了解。
说点题外话:
之前一个朋友在简历写了会App渗透,面试的时候扯了一点关于“脱壳、逆向、重打包”的名词,
把面试官唬得一楞一愣的,最后拿了不低的薪资。事实上,他自己对这方面了解也不是太多。
当然,同学们把这当一个故事听听就好了。就不要模仿了,万一碰到一些懂相关知识的人就丢人了。
虽说面试也算是半真半假,可以吹牛的地方很多,但是还是希望同学们真的多一点,假的少一点。
三、Inspeckage使用介绍
1.简介
Inspeckage是一个用于提供Android应用程序动态分析的工具。
通过对Android API的函数使用hook技术,帮助用户了解应用程序在运行时的行为。
(1.1)什么是Hook?
HooK技术又叫做钩子函数,在系统没有调用该函数之前,钩子程序就先捕获该消息,
钩子函数先得到控制权,这时钩子函数既可以加工处理(改变)该函数的执行行为,
还可以强制结束消息的传递。简单来说,就是把系统的程序拉出来变成我们自己执行代码片段。
其实类似于断点,代码执行到这个地方然后被你给卡住了,然后你可以去进行修改调试。
或者理解为burp的截取,将当前程序运行的状态暂停,在将抓到App程序的一些数据修改掉放走。
举一个例子:
做App渗透一个很头疼的问题是传参加密,但是加密是要经过加密函数的。
如果我们在加密前Hook,不就可以获得加密前的明文了?
Inspeckage 功能强大 我们只讲简单用法,有兴趣的同学需要自己深究,当然需要一定的代码基础。
(1.2) Inspeckage的网页管理
现在很多工具都流行Web页面去管理工具。 Inspeckage也是与时俱进,他的WEB管理端口是127.0.0.1:8008
用法:
先打开安装的Inspeckage--点击choose target选择任意一个App--选择“ LAUNCH APP ”(运行APP)
--回到桌面--进入浏览器,访问“ 127.0.0.1:8008 ”--就可以看到刚刚选择App的数据。
问题:
那我们在一个App里操作,还要在另一个App里处理(模拟器的127.0.0.1:8008在本机访问不到)
我们想用电脑管理,该如何做呢?这个时候,就会引出一个新的工具:adb(即Android 调试桥)
(1.3)Android调试桥(adb)
简介:
当手机开启USB调试,adb可以将我们的手机与电脑连接在一起,adb连接上以后就可以通过电脑操作手机
最开始接触adb是用这个连接手机钉钉自动定时打卡。简单说一下:
最开始是把钉钉装在了夜神模拟器里,后来发现钉钉会检测到模拟器的环境。
然后用一个手机通过adb连接到了一台笔记本上。这样就绕过了一些检测,而且这个adb可以模拟用户的一些操作。
如开屏、输密码、点击一些东西(需要定位到位置)。
因为钉钉有一个极速打卡功能,只要在特定时间、特定地点(范围)内打开钉钉就会自动打卡。
然后,简单写个小脚本(1.bat) //5.5寸手机一般都可以
cd C:\adb
adb shell input keyevent 3 //滑屏解锁
timeout /T 0.5 /NOBREAK //等待时间
adb shell input swipe 550 1600 550 800 //确定位置
adb shell "am start com.alibaba.android.rimet/com.alibaba.android.rimet.biz.LaunchHomeActivity" //调用打开钉钉
adb shell input tap 82 1304
PAUSE
补充:
其实很简单的小脚本,有兴趣的同学以后可以深入研究玩玩,adb的功能还是蛮多的,比如拍个照片、刷个网课等等
我这里就是简单介绍一下,给一个前人对adb的总结,可以参考参考,这个篇文章写的很详细:
https://blog.csdn.net/zhonglunshun/article/details/78362439
2. 实战
(2.1)通过adb让电脑控制手机(模拟器)
打开电脑上的模拟器
cmd进入本机Adb的文件夹,输入“ adb devices ” 来查看是否有手机和电脑相连
如出现“ 127.0.0.1:62222 device ” 就说明有手机与模拟器是沟通的
//adb可以自己去网上下载 ,或者私信我。
在输入“ adb forward tcp:8008 tcp:8008 ” 将手机上的8008端口转发到电脑的8008端口
在电脑浏览器上输入“ 127.0.0.1:8008 ”即可访问到Inspeckage的网页管理。
假如在浏览器回车没反应,
~先看看模拟器“ Inspeckage ”程序有没有运行,
~可以看看端口有没有被本机其他应用占用,kil掉对应进程。
~上述两步都没事就重启模拟器
~或者在本机“ 任务管理器 ”中 结束掉“ adb.exe ”程序。
~都不行直接换雷电模拟器
(2.2)补充一个夜神模拟器的小坑(雷电模拟器没有这个问题)
你需要拿正常的adb去替换掉夜神模拟器中自带的adb才能使用。
找到夜神模拟器安装地址,将夜深原本的adb.exe名称改为“adb.exe.bak”注释掉原本的adb,
在将咱们的“ adb.exe ”拖进来;在将下边一个“ nox_adb.exe ” 也改为“ nox_adb.exe.bat ”
将咱们的“ nox_adb.exe ” 拖进来然后就可以了。
(2.3)小试牛刀
进入“ https://www.feixiaohao.com/ ” 下载一个APP,这个App仅仅是作为演示,里边一些关于虚拟币的东西不建议玩。
将此app下载安装到模拟器,打开“ Inspeckage ”,点击“ 非小号 ”,点击运行,在电脑浏览器进入“ Inspeckage的网页管理 ”,
先看右上角“ App is running ”的状态,看看App有没有在运行。当状态是“ false ”的时候就说明App没在运行
可以重启“ Inspeckage ”打开“ 非小号 ”。只有当状态是“ true ”时才可以,
左上角有三个小图标,如小相机、小扳手(配置)、一个开关(即开始截取的)。
将开关的状态由“ off ” 点击为“ on ”就可以抓取到一些数据。下边有一些功能,
如HTTP、SQLite、Hash、Crypto等等,简单说一下:
HTTP,可以监听到此App的一些通讯数据,有点类似Wireshark的功能。
SQLite是软件自带的一些数据库,像Hash、Crypto就是一些加密解密相关的问题,对于初学者不要纠结。
(2.4)
直接左上角有一个“ Download ”--“ All Files ”点击即将获取到的内容保存到一个压缩包中下载,
将下载的文件包解压打开,用一些文本编辑器打开“ hash ”“ Crypto ”文件,全局搜索“ http/https ”
就会发现正常测试抓不到的http地址或者IP,可以将这些地址复制下来在浏览器打开。
一些IP直接访问或许就有一些意想不到的东西。另外可以用Nmap扫一下这些IP的端口,御剑扫一下目录。
这些http地址或者IP是正常信息收集所收集不到的地方,在渗透测试过程中也许就是突破点。
注意的是,
这些链接在搞之前最好看看,别最后渗透测试错了对象。
另外,即使是目标企业的资产也要注意一下尺度问题,这里不在深就。
3.我的App渗透测试观
其实在一般的App渗透就是抓包,加解密等等问题,也就是这两篇文章中所提到的。
常规的面试提到这么多内容已经及格了。
但是对于专业的APP渗透测试人员而言,这仅仅是入门。就像这篇文章提到的“ Inspeckage ”这里也仅仅是
简单的介绍,而专业人员要掌握的肯定远远不止这些用法,这里也仅仅是抛砖引玉。路漫漫其修远兮,大家加油。