第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

AffettoIris 2023-11-20 2,787 11/20

 

扩展

OSS

什么是OSS?

Object Storage Service(对象存储服务),专业解释是一种使用HTTP API存储和检索非结构化数据和元数据对象的工具。白话文解释就是将系统所要用的文件上传到云硬盘上,该云硬盘提供了文件下载、上传等一列服务,这样的服务以及技术可以统称为OSS。

它适用于那些需要大量存储空间、高度可用性和灵活性的场景,如大数据处理、数据备份和恢复、静态网站托管等。\

例如一个视频app给视频开通了oss,有一个文件url是https://fastapi.oss-cn-beijing.aliyuncs.com/gf888.json,观察可发现在阿里云买的oss,低于是北京,产品是oss,文件是gf888.json

逆向领域里hook是什么意思

hook指的是对程序执行流程的干预和控制(即篡改程序的正常执行路径,使其按照我们想要的逻辑执行特定操作),通常通过修改程序内存或代码实现,常用于病毒、木马等恶意程序的设计,也应用于软件保护和解密等领域。

Hook 翻译就是钩子。在 Android中应用程序根据事件流程一步步地向下执行。而「钩子」的意思,就是在事件传送到终点前截获并监控事件的传输,像个钩子钩上事件一样,并且能够在钩上事件时,处理一些自己特定的事件。

Hook 的这个本领,使它能够将自身的代码「融入」被勾住(Hook)的程序的进程中,成为目标进程的一个部分。在 Android 系统中使用了沙箱机制,普通用户程序的进程空间都是独立的,程序的运行互不干扰。这就使我们希望通过一个程序改变其他程序的某些行为的想法不能直接实现,但是 Hook 的出现给我们开拓了解决此类问题的道路。当然,根据 Hook 对象与 Hook 后处理的事件方式不同,Hook 还分为不同的种类,比如消息 Hook、API Hook 等。

我们将对app进行外在提取来收集资产(抓包发现url)和内在提取来收集资产(反编译发现app涉及的url)、对小程序进行外在提取来收集资产。

app分安卓端和IOS端,后者难呀,用安卓端做讲解。

内在提取APP的资产信息 By AppInfoScanner

AppInfoScanner和安卓修改大师牛逼在可以从apk成品反向获取项目源码,有源码就可以代码审计,不过应该不至于和开发者手里的项目源码一模一样。

桂妃是一款黄影片app,老师用AppInfoScanner反编译其app发现一个url是https://fastapi.oss-cn-beijing.aliyuncs.com/gf888.json。老师说开过oss的人都知道可以通过OSS Browser访问其OSS资源,就像ftp、网盘一样。如果我们能在配置文件中获取到桂妃的oss的地址和管理员卡密,就能直接通过OSS Browser登录后获取全套影片。

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

还有其他url,都是搜集发现的信息资产:

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

反编译完会将app的项目代码放置在out文件夹下:

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

这些代码可以载入到IDEA等开发者工具里查看。

内在提取APP的资产信息 By 安卓修改大师

安卓修改大师功能挺多的。当你刚用它选中目标app安装包,它提供了如下四个做法。

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

做法一有助于信息搜集更全,意思是将app渗透测试专用手机连接到电脑,然后安装app到手机里,你在手机上的操作都能同步到安卓修改大师,例如实时抓包、实时检测app运行的代码。

本次教学选择做法二 - 反编译,得到如下信息:

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

安卓修改大师的功能还有很多,如其名,修改软件,可以改布局,改软件内的图片,改授予软件的权限如打开摄像头、查找字符串(不如IDEA的查找字符串,IDEA用着爽):

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

用IDEA打开反编译得到的项目源码目录,查找字符串“https://”和"http://",去找关键性url如http://guifei2020.nethttps://gitee.com/izywei/HealthLive/raw/master/token.json、https:apid.dgzytop.com/s1/live/videos

我们反编译app,还能看到包名

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

对于大公司而言,包名有一定的命名规范(不成文的规定)。有域名反过来写的比如com.ink0.www,有com.公司名.项目名称,我们may借机窥探一点信息。不过包名也可以随心所欲乱起,所以小公司和个人的产品的包名应该没参考价值,像上图桂妃这个包名net.ufozfnxzqm.dvbphwfd,怎么看都像是乱敲的。

我们还可以用安卓修改大师干别的事,例如搜“今日剩余观影次数”找到其源码:

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

发现name="tody_has_view_count",继续搜:

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

每个文件都看看,发现有一个文件涉及赋值操作,难道是赋每日观影10次的值(也可能是某种索引)?:

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

假设就是在此赋值10次奥,我们给它改成每日100次,然后打包成二次开发的魔改版app,只要服务端没有限制次数的逻辑,我们就破解掉这个软件了。

对于网安人员,我们发现东家有这类破解风险,就可以写进报告反馈给东家。

你还可以个性化魔改app。例如替换应用图标、应用名称,例如把支付宝图标换成二次元、名字换成聚宝盆,装装逼还是可以的。进阶操作就是像开发者一样修改项目源码、修改界面,比如我嫌弃学习通的界面图标丑,改图标。改好后打包项目生成魔改版学习通。

安卓修改大师一个好的地方是可以打包二次开发的app。因为打包需要签名,而很多其他逆向工具不具备签名功能,就打包不了。

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

网上有个获取京东账号cookie的工具,模拟登录京东,界面哪里都像正版京东,但是登陆后就弹窗显示cookie然后关闭程序了。我怀疑就是基于京东app项目源码二次开发的,只保留登录源码,并插入获取cookie的代码。

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

APP外在抓包 - Fd& 茶杯 &Burp

不细讲,之前介绍抓包时讲过了。

还是对桂妃这款app抓包:

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

得到IP=101.34.24.242,并且这条来自101.34.24.242的数据包响应的是一张色图。

  1. 对某操作过程进行抓包得到的url缺点是没有内在提取法一次性拿到的url多,但是优点是好详细,内在提取得到的都是url,没有显示过IP,而抓包能得到IP、数据包的Server等信息

  2. IP=101.34.24.242好熟悉,不就是:

    第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

    这个案例老师想强调,有些资产不是内在提取这种静态提取法能得到的,比如这里的IP=101.34.24.242是由https://fastapi.oss-cn-beijing.aliyuncs.com/gf888.json加载出来的。我们渗透时要考虑的全些。

我们此时意识到https://fastapi.oss-cn-beijing.aliyuncs.com/gf888.json是个提供很重要的视频源等配置的文件,这个文件内容很重要,我们应观察gf888.json提及的其他url,很可能就有提供小视频的地址。

直接访问显示404,限制了访问此文件夹的权限,只开放了其下图片等文件的访问权限的安全措施,在意料之中:

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

我们继续观察FD抓到的其他数据包,有一条显示IP= 101.32.39.61,X-Powered-By: PHP/7.2.34;Server: openresty/1.15.8.1,我们对此IP扫描端口发现80和22端口开放,大胆断定是linux操作系统。

为什么大胆断定是linux操作系统?

22端口一般是linux上的ssh。windows可以安装OpenSSH for Windows也能用22端口的ssh服务,但是windows服务器站长通常使用远程桌面(3389端口)来连接、登录和操作Windows服务器。

其实安卓修改大师也有对安卓的抓包功能,奈何v8版本连不上realme手机,网上又只有v8注册机呀:

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

APP 外在封包 - 封包监听工具

不细讲,之前介绍抓包时讲过了。

封包不只能抓游戏包制作外挂,也能抓app例如桂妃,如下图就抓到桂妃服务器101.32.39.61的Server、X-Powered-By等信息:

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

APP之壳(Shell)和脱壳/砸壳(Xposed&JustTrustMe)

有时候app做了防逆向措施(加壳),导致抓包抓不到url和不能被反编译

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取 第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

出现上述情况可能是带壳、可能是app检测设备发现是模拟器。

针对app带壳,AppInfoScanner给我们提供了解决办法 - 使用xposed或frida框架进行脱壳/砸壳:

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

这个xposed和JustTrustMe模块后面老师会讲(课后也自学下);frida涉及到hook,属于逆向领域,不细讲。

壳(shell)是什么?

开发者为了防止逆向(反编译)和破解和抓包对app加的保护层(壳),一般大型项目的app会加壳如淘宝,小型项目app一般不加如应用宝。

加了壳的app,运行时可能会检测https证书,如果我们用fd抓包,被检测的是fd证书,触发app的自我保护导致抓不了包,可以借助 Xposed框架&JustTrustMe框架突破app检测证书的这层防御。

查壳ApkScan-PKID.jar

帮你快速查看app有没有加壳的工具。

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

APK资源提取器.apk

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

帮你把已安装的安卓应用如相机提取成apk文件,供你反编译或用“查壳ApkScan-PKID.jar”查加没加壳。

也能提取apk里夹带的图片、视频、音频例如图标。

提取图片、视频、音频例如图标有什么用?:黑暗引擎如fofa支持对文件的md5、hash值搜索,我们有了apk里有地标性的文件如抖音的图标,就在fofa里搜索图标的hash值,可能能搜到抖音旗下其他用抖音图标做logo的项目。

对App渗透测试时的其他可测点

以桂妃app为例,注意到没登陆时每天观影10次(老师确实没登陆,那个72605725ID是随机生成的):

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

我们不由猜想在不用账号区分用户的情况下,它是给每个新设备/新IP分配10次,我们测试是否有改动设备/IP即可刷新观影次数的漏洞:

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取 第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

对正常用户而言,改设备更难,改IP换个流量即可,所以先测改设备。改动机型、IMEI编码,然后重启模拟器。

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

发现次数刷新了,ID也新分配了。

老师还对此过程封包了,有条数据包提及“device_id”,更加验证了我们的猜想:

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

打开安卓修改大师的”代码/布局修改“,点击“源代码快捷入口”栏,显示了很多的模块,有UserManageActivity模块,大概就是用户管理模块,有HistoryQActivity模块,可能是观影历史模块、PlayEActivity模块,可能是播放器模块。打开LoginActivity模块,如下图发现是.smali文件,我们点击“java代码”栏并将当前单个smali文件的代码解析为java源代码,这样更方便审计(也可以选择“到处java代码”将整个项目从.smali转换成java代码):

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

发现输入登录界面与电话号码有关的代码。

App渗透测试的总结

可见对app的渗透测试主要是两个方面:

  • 从外在入手 - 抓包、封包发现其资产。通过信息搜集找到app的服务器的资产,用web的方式去渗透测试服务器漏洞。

    信息搜集包括但不限于提取app的ico、样式文件等文件,再去黑暗引擎搜索标志性文件的md5、hash值去发现更多的资产。

    第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取 第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

  • 从内在入手

    1. 反编译:得到app代码并对代码的逻辑进行审计。这个过程更像是替开发程序员找bug,从apk反编译出项目.smali代码,再编译成java代码,继而审计逻辑上有无漏洞。

    2. 提取资源:一方面资源来自AppInfoScanner反编译中爆出的url,另一方面资源来自:编译成java代码这个过程结束后,java项目里会有个res文件夹,这可是存放资源的文件夹,也许有标志性文件可以用于黑暗搜索引擎的

    第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

.smali文件是什么文件?

".smali" 文件是一种用于Android应用程序开发的汇编语言文件,它用于编写应用程序中的低级操作和逻辑。它在Android中主要用于处理与操作系统交互、操作硬件、处理数据等方面的任务。".smali" 文件通常与 ".java" 文件配合使用,汇编语言代码在 Android 编译过程中会被转换成 ".java" 文件中的字节码,然后与 ".java" 文件一起编译成 ".apk" 文件。

java项目的src/main/res文件夹是什么?

res文件夹是存放各种资源文件的地方,有图片,字符串,动画,音频等,还有各种形式的XML文件。

实例(以下都是我的ink0.cn app反编译出的java项目源码的res文件夹下的):

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

你可能会在res文件夹下遇到类似如下命名的文件夹。

  • 图片资源

    drawable:存放各种位图文件,(.png,.jpg,.9png,.gif等)除此之外可能是一些其他的drawable类型的XML文件 mipmap-hdpi:高分辨率,一般我们把图片丢这里 mipmap-mdpi:中等分辨率,很少,除非兼容的的手机很旧 mipmap-xhdpi:超高分辨率,手机屏幕材质越来越好,以后估计会慢慢往这里过渡 mipmap-xxhdpi:超超高分辨率,这个在高端机上有所体现

  • 布局资源

    layout:该目录下存放的就是我们的布局文件,另外在一些特定的机型上,我们做屏幕适配,比如480*320这样的手机,我们会另外创建一套布局,就行:layout-480x320这样的文件夹

  • 菜单资源

    menu:在以前有物理菜单按钮,即menu键的手机上,用的较多,现在用的并不多,菜单项相关的资源xml可在这里编写,不知道谷歌会不会出新的东西来替代菜单了

  • values目录

    demens.xml:定义尺寸资源 string.xml:定义字符串资源 styles.xml:定义样式资源 colors.xml:定义颜色资源 arrays.xml:定义数组资源 attrs.xml:自定义控件时用的较多,自定义控件的属性! theme主题文件,和styles很相似,但是会对整个应用中的Actvitiy或指定Activity起作用,一般是改变窗口外观的!可在Java代码中通过setTheme使用,或者在Androidmanifest.xml中为<application...>添加theme的属性! PS:你可能看到过这样的values目录:values-w820dp,values-v11等,前者w代表平板设备,820dp代表屏幕宽度;而v11这样代表在API(11),即android 3.0后才会用到的!

  • raw目录

    用于存放各种原生资源(音频,视频,一些XML文件等),我们可以通过openRawResource(int id)来获得资源的二进制流!其实和Assets差不多,不过这里面的资源会在R文件那里生成一个资源id而已

  • 动画资源

    • animator:存放属性动画的XML文件

    • anim:存放补间动画的XML文件

小程序抓包分析

小程序不似app可以反编译,只能抓包。可以是抓模拟器里的小程序,可以直接抓电脑上的小程序,也可以抓手机上的小程序的包。

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

老师抓小程序的包发现了其host,访问竟然是后台:

第10天:信息打点-APP&小程序篇&抓包封包&XP框架&反编译&资产提取

然后对这个host查有没有CDN、端口扫描、搜索引擎site:ink0.cn之类的,不再赘述。

有人问老师能获取微信小程序源码吗?

可以,但是我个人估计能获取的都是前端性质的源码,后端源码还是在人家服务器上。小程序其实就是个H5网页,就寄生平台不同罢了。可以自己百度下“如何获得小程序源码”,例如这个网页提供了三种方法。

- THE END -

AffettoIris

11月20日23:21

最后修改:2023年11月20日
0

共有 0 条评论