百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

安卓应用层协议/框架通杀抓包:实战篇

ccwgpt 2024-09-13 16:08 69 浏览 0 评论


(文章分为实战和源码分析,本文为实战篇)


环境和工具准备:

  • kali-linux
  • python 3.x
  • r0capture
  • frida / frida-tools
  • apkshell

  • 0x01.什么是 Frida

    英文原文介绍:

    Frida is Greasemonkey for native apps, or, put in more technical terms, it’s a dynamic code instrumentation toolkit. It lets you inject snippets of JavaScript into native apps that run on Windows, Mac, Linux, iOS and Android. Frida is an open source software.

    frida是一款轻量级的 Hook 框架,也可以说是一种动态插桩工具,可以插入一些代码到原生 app 的内存空间去,(动态地监视和修改其行为),这些原生平台可以是Win、Mac、Linux、Android或者iOS。

    frida分为两个部分,服务端和控制端,其中服务端运行在目标机器上,通过进程注入来劫持应用的类和函数,控制端运行在自己系统机器上,可以注入自定义的 js、python、c 等脚本来实现自动化注入。

    无论是针对 Java 层还是 Native 层,frida 均能 Hook,虽然持久化上没有 Xposed 等开发框架强,但是 frida 主要优势就是它的动态性和灵活性。


    0x02.安装 Frida

    frida 安装特别简单,直接 pip 安装即可

    $ pip install frida
    

    如果要指定版本安装,可以这样:

    $ pip install frida==12.8.0
    

    下载慢的话是源的问题,可以指定清华源:

    -i https://pypi.tuna.tsinghua.edu.cn/simple
    

    另外pip只是下载了一个安装脚本,实际上最后请求去下载的还是默认官方的 pypi 源,这里写死了,所以很多人会卡在这很久.

    而有趣的是我看了一下网上很多提问的童鞋,回复中目前还没有人指出关键问题所在,回答的基本都是最开始的指定源之类的,而其实并不是那样:

    解决方案也很简单,将 pypi 官网源编辑替换成清华源,再手动构建即可

    另外还需要安装一下配套工具,frida-tools

    $ pip install frida-tools
    

    最后执行没有问题,环境就安装配置好了

    这里安装后的 frida 版本是 14.2.3,然后还要下载服务端,根据安装的 frida 版本和执行服务端的机器的系统架构,去下载对应的 frida-server( https://github.com/frida/frida/releases )

    下载后先放着,后面要用


    0x03.什么是r0capture

    r0capture 是一个 python 脚本,基于 frida_ssl_logger 开发,侧重点不同在于 frida_ssl_logger 是抓 ssl 和跨平台,而 r0capture 旨在抓到所有的包,其中安卓7、8、9、10 测试可用。

    优势:

  • 无视所有证书校验或绑定,不用考虑任何证书的事情;
  • 通杀TCP/IP四层模型中的应用层中的全部协议;
  • 通杀协议包括:Http,WebSocket,Ftp,Xmpp,Imap,Smtp,Protobuf 等等、以及它们的SSL版本;
  • 通杀所有应用层框架,包括 HttpUrlConnection、Okhttp1/3/4、Retrofit/Volley等等;

  • 0x04.安装 r0capture

    $ git clone https://github.com/bin-maker/r0capture
    


    0x05.实战演示

    首先将之前下载的对应版本和系统的 frida-server 拷贝到手机上

    $ adb push frida-server /data/local/tmp/
    

    手机上运行 frida-server 监听

    $ cd /data/local/tmp/
    $ chmod +x frida-server
    $ ./frida-server
    

    kali 上用 frida-ps 看一下包进程

    $ frida-ps -U | grep "com"
    

    手机上运行我们的目标 app,再列一下当前包进程,把目标app的包名复制记录下来,后面要用

    r0capture 支持 spawn 模式和 attach 模式,首先用最新的 apkshell 查一下壳(工具地址:https://github.com/bin-maker/apkshell)

    发现应用加壳了

    所以我们这里使用 attach 模式来抓包,也叫实时 hook,主要用来针对有壳的应用

    运行 r0capture.py

    python r0capture.py -U 前面记录的目标应用包名 -p xxx.pcap
    

    其中 -p 参数用来保存抓包结果,.pcap 是数据报存储格式,包括 Wireshark 在内的很多主流抓包软件都可以生成或者导入 pcap 数据包并分析

    attach 后,我们手机上操作app,终端界面就会实时输出抓到的数据包

    如果中途提示 hexdump 名称错误,pip 安装一下即可

    pip install hexdump
    

    要想终止抓包,随时按 ctrl + c 终止 r0capture 脚本即可停止抓包

    接下来打开 wireshark 等网络数据包分析工具,导入我们通过 r0capture 导出的 pcap 包文件

    跟踪一下 http 流,数据非常直观了:

    后面该怎么操作想必大家都清楚了,不需要多说了,其实源码层非常有意思,下次有时间来通过源码层讲讲实现。

    相关推荐

    土豪农村建个别墅不新鲜 建个车库都用框架结构?

    农村建房子过去都是没车库,也没有那么多豪车,一般直接停在路边或者院子里。现在很多人都会在建房子的时候留一个车库,通过车库可以直接进入客厅,省得雨雪天气折腾。农村土豪都是有钱任性,建房子跟我们普通人不一...

    自建框架结构出现裂缝怎么回事?

    三层自建房梁底与墙体连接处裂缝是结构问题吗?去前帮我姑画了一份三层自建房的图纸,前天他们全部装修好了。我姑丈突然打电话给我说他发现二层的梁底与墙分离了,有裂缝。也就是图纸中前面8.3米那跨梁与墙体衔接...

    钢结构三维图集-框架结构(钢柱对接)

    1、实腹式钢柱对接说明1:1.上节钢柱的安装吊点设置在钢柱的上部,利用四个吊点进行吊装;2.吊装前,下节钢柱顶面和本节钢柱底面的渣土和浮锈要清除干净,保证上下节钢柱对接面接触顶紧;3.钢柱吊装到位后...

    三层框架结构主体自建房设计案例!布局13*12米占地面积156平米!

    绘创意设计乡村好房子设计小编今日头条带来分享一款:三层框架结构主体自建房设计案例!布局13*12米占地面积156平米!本案例设计亮点:这是一款三层新中式框架结构自建房,占地13×12米,户型占地面积...

    Casemaker机箱框架结构3D图纸 STEP格式

    农村自建房新宠!半框架结构凭啥这么火?内行人揭开3个扎心真相

    回老家闲逛,竟发现个有意思的现象:村里盖新房,十家有八家都选了"半框架结构"。隔壁王叔家那栋刚封顶的二层小楼,外墙红砖还露着糙面没勾缝,里头的水泥柱子倒先支棱得笔直,这到底是啥讲究?蹲...

    砖混结构与框架结构!究竟有何区别?千万别被坑!

    农村自建房选结构,砖混省钱但出事真能保命吗?7月建材价格波动期,多地建房户因安全焦虑陷入选择困境——框架结构虽贵30%,却是地震区保命的关键。框架柱和梁组成的承重体系,受力分散得像一张网。砖混靠墙硬扛...

    砖混结构与框架结构,究竟有何区别?千万别被坑!

    农村建房选砖混结构还是框架结构?这个问题算是近期留言板里问得最多的问题了。今天咱们说说二者的区别,帮您选个合适的。01成本区别假如盖一栋砖混结构的房子需要30万,那么换成框架结构,一般要多掏30%的费...

    6个小众却逆天的App神器,个个都是黑科技的代表

    你的手机上有哪些好用的软件?今天我就给大家分享6个小众却逆天的App神器,个个都是黑科技的代表!01*Via浏览器推荐理由:体积极小的浏览器,没有任何广告。使用感受:它的体量真的很小,只有702KB,...

    合肥App开发做一个app需要多少钱?制作周期有多久?

    在移动互联网时代,开发一款APP已成为企业数字化转型与个人创业的重要途径。然而,APP的开发成本与制作周期受功能复杂度、技术架构、团队类型等多重因素影响,差异极大。好牛软件将从这两个维度展开分析,帮助...

    详解应对App臃肿化的五大法则

    编者注:本文转自腾讯ISUX。先来看一张图:图上看到,所有平台上用户花费时间都在减少,除了移动端。观察身边也是如此,回家不开电脑的小伙伴越来越多。手机平板加电视,下班场景全搞定。连那些以前电脑苦手的...

    实战!如何从零搭建10万级 QPS 大流量、高并发优惠券系统

    需求背景春节活动中,多个业务方都有发放优惠券的需求,且对发券的QPS量级有明确的需求。所有的优惠券发放、核销、查询都需要一个新系统来承载。因此,我们需要设计、开发一个能够支持十万级QPS的券系...

    8种移动APP导航设计模式大对比

    当我们确定了移动APP的设计需求和APP产品设计流程之后,开始着手设计APP界面UI或是APP原型图啦。这个时候我们都要面临的第一个问题就是如何将信息以最优的方式组合起来?也许我们对比和了解了其他一些...

    数字资产支付 App 的技术框架

    开发一款功能强大、安全可靠的数字资产支付App需要一个整合了区块链技术、后端服务、前端应用以及第三方集成的全栈技术框架。这个框架的核心在于保障数字资产的安全流通,并将其高效地桥接到传统的法币支付场...

    从MyBatis到App架构:设计模式全景应用指南

    从MyBatis到App架构:设计模式全景应用指南引言在企业级应用和服务端开发领域,MyBatis凭借其灵活、简洁、强大的ORM映射能力被广泛应用。而它之所以能拥有如此优秀的可扩展性和工程可维护性,正...

    取消回复欢迎 发表评论: