雨宫琴音vs黑人

熟女控

【MGMB-002】女王様に愛されたい。より優しく、よりいやらしく。 新宿[Mヤプー] JUN女王様 [原创]转移应用安全与风控——应用分析常用器具-Android安全-看雪-安全社区|安全招聘|kanxue.com

发布日期:2024-08-20 05:04    点击次数:54

【MGMB-002】女王様に愛されたい。より優しく、よりいやらしく。 新宿[Mヤプー] JUN女王様 [原创]转移应用安全与风控——应用分析常用器具-Android安全-看雪-安全社区|安全招聘|kanxue.com

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

       工欲善其事【MGMB-002】女王様に愛されたい。より優しく、よりいやらしく。 新宿[Mヤプー] JUN女王様,必先利其器。要想更好的掌捏安全安全技能,开头要把基础打牢,本章将先容应用安全通常用到的器具和一些基础呐喊。

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等问题。

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 下载相应版块的干事端技艺,然后通过下列呐喊进行安装并启动。

为保证客户端和干事限定常通讯需要进行端口映射【MGMB-002】女王様に愛されたい。より優しく、よりいやらしく。 新宿[Mヤプー] JUN女王様

       可通过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组件的脆弱性检测:

主意应用全局可读\可写文献检测:

[培训]内核驱动高等班,冲击BAT一流互联网大厂使命【MGMB-002】女王様に愛されたい。より優しく、よりいやらしく。 新宿[Mヤプー] JUN女王様,每周日13:00-18:00直播讲课





Powered by 雨宫琴音vs黑人 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群 © 2013-2024