APP渗透测试篇(下)
每日一句:
重启可以解决很多问题,
如虚拟机问题,模拟器问题等等,
本文章的一些操作不成功的话,重启试试
一、快速自建一个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渗透,面试的时候扯了一点关于“脱壳、逆向、重打包”的名词,把面试官唬得一楞一愣的,最后拿了不低的薪资。事实上,他自己对这方面了解也不是太多。当然,同学们把这当一个故事听听就好了。就不要模仿了,万一碰到一些懂相关知识的人就丢人了。虽说面试也算是半真半假,可以吹牛的地方很多,但是还是希望同学们真的多一点,假的少一点。
【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 ”这里也仅仅是简单的介绍,而专业人员要掌握的肯定远远不止这些用法,这里也仅仅是抛砖引玉。路漫漫其修远兮,大家加油。