你的位置:成人电影网站 > 小色哥奇米 在线 >


快播伦理电影网站 [原创]迁移应用安全与风控——应用分析常用器具-Android安全-看雪-安全社区|安全招聘|kanxue.com

发布日期:2024-10-07 20:22    点击次数:92


快播伦理电影网站 [原创]迁移应用安全与风控——应用分析常用器具-Android安全-看雪-安全社区|安全招聘|kanxue.com

迁移应用安全与风控 第二章 应用分析基础

       工欲善其事快播伦理电影网站,必先利其器。要想更好的掌执安全安全时刻,发轫要把基础打牢,本章将先容应用安全常常用到的器具和一些基础号召。

2.1 常用器具 2.1.1 逃狱版商店Cydia

       Cydia是由Jay Freeman(Saurik)指导,Okori Group以及UCSB大学合营设备为使用 iPhone、iPod touch、iPad等成立的逃狱用户提供的访佛App Store的软件商店以安装不被App Store采纳的门径。它亦然一个软件仓库的团聚器,带有几个被社区信任的源,大部分软件包的安靖版块齐可以在这些源中找到。不外,用户也可以自界说添加软件添。       要安装Cydia发轫需要对苹果成立进行逃狱,唯有逃狱后的成立能力平素使用Cydia。如果对逃狱不太了解,推选使用爱想助手对成立进行逃狱,可以通过图形界面指挥逃狱,如下图所示: 图片描述       上图是 Cydia 的 Home 首页,和 App Store 有点访佛,是一些热点 deb 软件的先容和讲明,右上角的 “ 重建加载 ” 键,用于页面自大不屈素时,重刷加载页面。将 Home 页面拉到底,最底下自大的是现时成立类型、系统版块、 Cydia 版块等信息。       Cydia下方的器具栏共五个按键,划分是“Cydia”、“软件源”、“变更”、“已安装”、“搜索”,底下讲明其具体功用。先从最抨击的源添加,即“治理”讲起

➢ **Cydia:**Home 首页,和 App Store 有点访佛,是一些热点 deb 软件的先容和讲明,右上角的 “ 重建加载 ” 键,用于页面自大不屈素时,重刷加载页面。将 Home 页面拉到底,最底下自大的是现时成立类型、系统版块、 Cydia 版块等信息。

➢ **软件源:**软件源即是一个 deb 软件库的索引,点右上角的“裁剪”,然后点再左上角的“添加”,源地址输入栏中输入正确的源地址,点“添加源”后即可完成软件源的添加。

➢ **变更:**自大的是Cydia中已添加的软件源列表中软件的版块变化情况。

➢ **已安装:**通过Cydia安装的软件齐会展示在此处。可以通过点击对已安装的软件进行管控,如卸载、左迁等。

➢ **搜索:**用于搜索需要安装的软件名字。如果搜索所需的软件无果,可以在添加包含该软件软件源后重新搜索。

       如果成立逃狱后依然无法平素使用Cydia,可尝试通过爱想助手安装由Electra逃狱团队发布的 Cydia 的替代品Sileo。

2.1.1 Root器具Magisk

       Magisk是大神吴泓霖设备的一套绽放源代码的Android(5.0以上版块)自界说器具套组,内置了Magisk Manager(图形化治理界面)、Root治理器具、SElinux补丁和启动时认证/dm-verity/强制加密移除等功能。Magisk同期提供了在无需修改系统文献的情况下改换/system或/vendor分区内容的接口,诳骗与Xposed访佛的模块系统,设备者可以对系统进行修改或对所安装的软件功能进行修改等。       本节主要先容使用Magisk对Android成立进行Root。对成立进行Root发轫需要对成立的Bootloader 进行解锁,唯有解锁后才可以通过刷机等一系列操作完成Root。当今国内大部离婚机厂商仍是透澈关闭了Bootloader解锁边幅。因此这里使用Google生产 pixel 系列手机进行Root演示。       将手机的 BootLoader 情状进行解锁,设备者情势下,开启 OEM unlocking,如下图所示: 图片描述干与BootLoader情势

BootLoader 情状下,解锁 BL,凭证屏幕自大进行操作

       在Google官网下载成立对应的系统镜像https://developers.google.com/android/images#taimen 解压缩镜像文献,将其中的boot.img推送笔直机的SDCard中,安装Magsik,并对boot.img进行patch。Magsik会将处理后的boot.img存放在/sdcard/Download目次中,并重定名为magisk_patched-xxxx.img,具体操作进程如下图: 图片描述将patch后的boot.img拷贝到土产货,然后将其刷入需要Root的成立:

       重启后干与系统,Magisk仍是告捷安装(如果依然自大为安装,可能为获得失败,可按之前进程操重新尝试)。但此时的Root权限为临时root,需要转位永久Root。干与 Magisk Manager,选拔安装(Install)——(径直安装)Direct Install,安装完成后选拔(重启成立)Reboot。完成重启受成立的临时 root将挽回为永久 root。 图片描述       至此仍是透澈完成了成立的Root职责。可以在此成立上大力妄为的安装任何需要的器具。备注:Root时刷入的patch后的boot.img需要和筹算成立的系统版块保持一致,不然将导致系统无法开启wifi等问题。

91丝袜 2.1.1 Hook框架EdXposed

       EdXposed是适用于Android系统的Hook框架。基于 Riru 的 ART hook 框架 (领先用于 Android Pie) ,使用 YAHFA (或 SandHook) 进行 hook, 复古Android 8.0到Android11的系统。其提供了与原版 Xposed 调换的 XposedBridge API,可在Android高权限情势下运行的框架干事,可以在不修改APP文献的情况下修改门径的运行,基于它可以制作出好多功能高大的Xposed模块,且在功能不突破的情况下同期运作。       上一节中对Android成立Root时仍是安装了Magisk。EdXposed可通过Magisk进行安装,在其模块功能中搜索Riru和EdXposed模块并选拔适配我方系统的进行安装。同期安装EdXposedManager客户端便捷后续治理EdXposed插件。掀开EdXposedManager软件首页中展示EdXposed框架已激活,讲明EdXposed框架仍是无缺安装到现时的成立中。如果自大的未激活,可能是因为选拔Riru和EdXposed模块与现时系统不匹配,在Magisk中删除之前安装的模块,重新下载对应版块的模块即可。EdXposed正确安装告捷后,如下图所示: 图片描述       EdXposed框架提供了与原版 Xposed框架调换的 XposedBridge API, 因此基于该 框架编写的模块与原版 Xposed 框架编写的模块是完满兼容的。因两个Hook框架使用的API调换是以使用设施和Xposed框架亦然一致的。如果之前已有Xposed模块的设备教育,可以略事后头的的教程,径直进行EdXposed模块设备。       创建Xposed的模块时可凭证交互情况选拔创建的工程模版。此处为了让各人快速上手Xposed模块的设备,通过肤浅的无需交互的程序进行教育。发轫通过Android Studio 创建一个No Activity的工程,如下图所示: 图片描述       此时创建的为普通Android 应用表情,需要在表情的AndroidManifest.xml文献中加多以下三个属性值,用于将该应用升沉为xposed模块。

       添加完属性值的AndroidManifest.xml如下图所示:

       两种添加Xposedbridge Api设备依赖的边幅。边幅一:通过gradle添加,即在表情的app目次下的build.gradle文献中添加设备时所需的Xposedbridge Api环境,如下图所示:

       表情根目次的settings.gradle的repositories属性中加多确立项,如下图所示:

       边幅二:下载XposedBridgeApi-82.jar,将jar包放弃到表情app目次下的libs目次华文献中添加设备时所需的Xposedbridge Api环境,同期在build.gradle文献进行确立,如下图所示:

       确立Hook模块的进口,即告知EdXposed框架该模块的是从何处出手启动。在该表情的main目次下新建assets目次,并在该目次下创建名为xposed_init的文献。将作念为进口的class完整旅途写入该文献即可,如下所示:

       以上确立完成后可以精采出手使用EdXposed框架来进行hook操作。Hook操作东要即是使用到了Xposed中的两个比拟抨击的设施,handleLoadPackage获得包加载时候的回调并拿到其对应的classLoader;findAndHookMethod对指定类的设施进行Hook。它们的详备界说如下所示: 图片描述具体使用场景参考模块进口类InitHook中的的代码,如下图所示: 图片描述       当今通盘设备Hook模块的准备职责仍是完成,精采出手实战操作。咱们先准备一款慕筹算应用,界面展示一个按钮,点击自大复返值。运行成果如下图所示: 图片描述       下图则为该应用的中枢代码,当点击“出手点击”按钮门径会调用getTextViewShowData函数获得需要展示的数据。咱们的筹算是通过Hook的边幅将该数据抑止替换其复返数据。 图片描述       出手编写Hook代码,发轫证实面前函数名和其在类的全旅途,在此演示示例入网划函数莫得吸收参数,因此无谓温和参数问题。 图片描述       将Hook模块应用用打包后安装纸装计划应用的成立,在EdXposedManager客户端的模块治理中启用该模块,并重启成立使该Hook模块生。具体操作参考下图: 图片描述       成立完成重启后,Hook模块的功能仍是平素收效。掀开筹算应用点击按钮,界面上展示的内容仍是是被咱们替换后的内容。具体成果如下图所示: 图片描述       实质使用入网划应用代码量普通比拟大,此类应用在打包的时候dex中的援用设施仍是普及65536,则会拆分红多个dex文献。Hook框架默许情况下是对应用中的主dex文献进行操作,因此会出现类的旅途和和设施名齐正确,却出现找不到设施的情况。android加载dex文献后会创建一个application类,然后会调用attach设施,attach设施的吸收的参数是context,通过context可以获得相应dex文献的classloader。只须Hook了attach设施通过其获得classloader就能搜索到筹算类就能贬责该问题,具体罢了代码如下:

备注:此设施不仅对多dex应用有用,在针对加壳应用Hook时也能收到出东谈主猜测的成果。       在实在环境对函数进行hook操作时,筹算函数经常齐是带有参数的,刚才示例中的函数是无参,底下先容一下带参数函数Hook。假定之前Hook的函数带有两个参数,如下所示:

       Java言语是复古函数重载的,即可以在归并个类中存在多个函数称呼调换但参数列表不同的函数。编写Hook代码时如果仅指定筹算设施名,未指定该设施采纳的参数类型,将导致Hook模块无法准笃定位到该函数。因此在Hook带参数的筹算设施时必须指定匹配的参数类型,以刚才函数为例,带参数Hook如下图所示。

       刚才的例子中函数采纳的参数齐是圭臬类型中,正在职责或学习中需要通过反编译的边幅笃定筹算函数名和其处所类,然后编写hook模块。这时就会常常遭遇函数的参数是自界说类型,不是圭臬数据类型。针对此种情况Xposed也提供了贬责决策,具体代码时如下图所示。

当练习掌执本节时你仍是从一个Hook设备小白成长为一个中级设备工程师。

2.1.4 Hook框架Frida

       Frida是面向设备东谈主员、逆向工程师和安全筹商东谈主员的复古多平台的动态测试器具包。使用者可以通过该器具将 JavaScript代码片断或自界说的库注入到 Windows、macOS、Linux、iOS、Android平台的应用门径中,注入的JavaScript代码在实行时可以完满拜访宿主门径的内存、hook函数,甚而可在程度内调用土产货函数 。同期Frida 还为使用者提供了一系列的基于 Frida API 构建的肤浅器具。 使用者可以按原样使用这些API,也可凭证具体的场景按需对这些API进行诊治。       Frida分为客户端和干事端,需要两者配合能力平素使用。底下将以Mac和Android平台为例对该器具的安装和使用进行先容。官网推选使用pip进行安装,Python的版块最佳为3.0以上的版块。

       安装Frida干事端到Android手机,发轫到https://github.com/frida/frida/releases 下载相应版块的干事端门径,然后通过下列号召进行安装并启动。

为保证客户端和干事划定常通讯需要进行端口映射

       可通过frida-ps -U号召考证之前部署的frida干事是否平素,该号召用于查询出现时Android成立中通盘正在运行的程度。

       Frida提供了六个对外行用户相称友好的的号召行器具frida-ls-devices,frida-trace,frida-ps,frida,frida-discover,frida-kill。这些器具可以让使用者在无谓我方设备注入模块的情况下快速上手frida。frida-ls-devices用于列出附加成立的号召行器具,在与多个成立交互时相称有用。

       frida-trace器具可以用来追踪指定的函数的调用,传入的参数齐是可以使用通配符的,在分析门径时相称用匡助。

备注:参数中的-U代表的是USB,当参数重加入-U参数讲明刚号召的操作对象是通过USB贯穿的成立。       frida-ps是一个用于列出程度的号召行器具,在与良友系统交互时相称有用。

       frida可以模拟出访佛IPython(或 Cycript)的交互窗口,让使用者可以罢了对程度快速和舒缓的调试。

图片描述

       frida-discover 是一个用于发现门径里面函数的器具,常常配合 frida-trace使用。通过frida-discover发现门径中的函数,然后可以使用 frida-trace 对发现的函数进行追踪。

       frida-kill这是一个用于杀死程度的号召行器具。需要配合frida-ls-devices和frida-ps器具中识别的成立id和程度id使用。

       frida框架复古python言语,可以通过python言语罢了更多复杂的需求。在使用python设备frida模块前需要了解frida的attach和spawn两种情势,具体区别如下: 图片描述attach情势附加仍是运行的程度

spawn情势启动调试程度

精采出手设备前还需要了解python中怎样frida贯穿到筹算成立,frida提供三种获指定成立边幅。

frida使用python和加载JavaScript代码 Hook Java层的示举例下:

frida是一个相称高大的Hook框架,不但可以Hook Java层的代码,还可以对Native层进行Hook。Hook Native层的代码示举例下:

至此你仍是练习掌执frida的基本操作,飞速去找个筹算应用去实质操作一下吧。

2.1.5 Hook器具Objection

       objection是基于Frida框架设备的自动化hook器具包,该器具复古Android和IOS平台。如果你不擅出息行代码设备,但又想使用frida进行一些复杂的hook操作,那objection将是一个相称可以的器具。       frida依赖python 3.x的版块,安装objection可使用以下号召:

       完成安装后在末端号召中输入objection号召。实行领域自大如下图,讲明仍是安装告捷。精采使用objection前需在手机端启动frida-server,并进行端口转发。 图片描述       通过应用的包名冒失bundleID附加需要调试的筹算应用,干与到objection提供的交互界面,访佛于ipython的交互环境。

       obejction选择attach附加情势进行Hook。如果咱们需要在应用启动时就进行Hook可以通过如下的边幅启动objection。

       检察筹算应用门径在成立内的存储旅途,径直在交互界面输入“env”号召即可,领域如图所示: 图片描述如筹算应用为Android应用,可通过以下号召检察该应用的的组件信息:

既然能检察筹算应用的组件信息,亦可启动筹算应用的组件:

筹算应用已加载到内存中的类和设施的关系操作

使用objection进行hook操作

调用实行筹算应用中的设施

如果筹算应用启用SSL校验,可通过objection进行关闭

筹算应用内存操作

其它常用号召

2.1.6 Hook器具Tweak

       Tweak是一款依赖Cydia Substrate框架的逃狱插件设备器具,该器具通过创建dylib动态库注入到宿主程度,完成多样Hook操作,闪设备者在无需要破解iOS系统的情况下,快速设备出功能高大的tweak插件。       进行Tweak设备前需要安安设theos环境,theos提供了一组器具和库,可以匡助设备者快速创建、编译和部署tweak。具体环境确立号召如下所示:

       Theos环境搭建完成后就可以出手创建Tweak表情。在末端中实行"nic.pl"号召,凭证输出的指示信息选拔tweak模版进行创建。然后按着指示依此输入工程称呼、包名、作家称呼等信息即可完成创建,具体号召如下图所示: 图片描述       号召实行告捷后将在现时目次下创建一个名为testtweak的工程目次。工程目次中默许共生成四个文献,具体文献信息如下图所示:

图片描述

       control:该文献中是现时工程果然立信息先容,如果工程称呼、包名、作家称呼、版块号依赖等。       Makefile:主要作用是自动化构建表情,文献中指定待编译的源代码、依赖信息和编译确立信息等。       TestTweak.plist:此文献用于存储果然立信息。确立信息中的Bundle ID决定了现时表情对哪些些应用收效。具体确立信息如下所示:

       Tweak.x:是Theos生成的源代码文献,该文献中的代码使用Logos语法进行设备。具体代码示举例下图所示:

       精采进行Tweak插件设备前还需要学习一下Logos语法。Logos是Cydia Substrate框架所提供的一组用于罢了Hook操作的宏界说,语法肤浅便于设备者快速针对筹算应用进行Hook设备。底下将肤浅先容了一些常常用到的语法,如果想要愈加深刻的学习Logos语法可以看官方文档。       %hook和%end组合,用于Hook筹算类,在代码块中可以径直写需要Hook的设施,代码示举例下:

       %group和%end组合,用于对Logos代码进行分组治理,每个声明的组齐需要需要使用%ctor和%init进步履手化操作,代码示举例下:

       %new,用于在Hook的筹算的类中添加新的设施,代码示举例下:

       %orig,调用原始设施,可以传入自界说参数和吸收原始设施的复返值,示例代码如下:

       %log,输出筹算设施的将函数的类名、参数等信息输出到,示例代码如下:

       当今出手咱们的第一个Tweak插件设备,筹算程度以SpringBoard为例进行教育。对SpringBoard程度中的[SpringBoard applicationDidFinishLaunching]设施全心Hook,添加弹窗代码。SpringBoard启动时进弹窗,具体代码如下:

       在编译安装之前还需要缔造筹算手机的IP,不然将安装失败。确立完成代后便可在末端中切换到表情处所目进行编译安装。关系号召如下图所示:

       安装告捷后SpringBoard将重新启动加载Tweak插件,成果如下图所示。至此你仍是初步掌执了Tweak器具的使用。 图片描述

2.1.7 安全测试器具Drozer

       Drozer是由MWR InfoSecurity 设备的 针对Android应用的安全测试框架。该框架是一款交互式的安全测试器具,复古实在的 Android 成立和模拟器,可以通过测试应用与其它应用门径进行交开展复杂的测试当作,只需很少时辰即可评估与 Android 应用安全关系的问题。通过该器具可以匡助安全东谈主员冒失设备者 快速发现Android应用中的安全罅隙。       Drozer运行需要依赖python2.x和java环境,在精采安装使用前需要先将其依赖的运行环境确立好。Drozer分为两部分,一部分是客户端,另一部分是手机端代理。手机端代理需要安装在筹算成立,用于客户端和筹算成立通讯时数据代理转发。官网下载地址https://labs.f-secure.com/tools/drozer。

图片描述

       以Mac电脑为例进行安装先容,在末端中切换到存放drozer-2.4.4-py2-none-any.whl文献的目次下,然后运行一下号召:

安装Drozer运行时所必需的依赖

备注:安装过程中可能会会遭遇网罗原因导致下载文献超时报错的情况,重新实行号召直到安装告捷即可。       使用数据线将手机和电脑进行贯穿,安装agent笔直机并开启干事。电脑的末端中实行端口转发号召和贯穿办机号召后,如下图所即可精采出手使用drozer器具。

图片描述通过app.package.info模块检察筹算应用的基本信息:

检察筹算应用的攻击面,主如若指Android四大组件中export属性缔造为ture的组件:

检察筹算应用的败露的activity组件信息:

尝试启动导出的activity组件,可通过该功能对组件进行隔绝干事检测:

筹算应用明锐数据暴露检测:

筹算应用Content Provider组件的脆弱性检测:

筹算应用全局可读\可写文献检测:

[课程]Android-CTF解题设施汇总!快播伦理电影网站



    热点资讯

    相关资讯