《安卓逆向这档事》二十、抓包学得好,牢饭吃得饱(上)

查看 76|回复 10
作者:collinchen1218   


一、课程目标
1.了解抓包技术的基本原理和应用场景
2.了解多种抓包工具进行安卓App的网络通信分析
3.了解网络协议的基础知识并能应用于抓包分析
二、工具
1.教程Demo
2.Reqable
三、课程内容
1.什么是包?
在计算机网络中,“包”通常指的是在网络上传输的数据单元,也被称为数据包。在互联网协议(IP)的语境下,数据包是由报头(Header)和载荷(Payload)组成,其中报头包含了源地址、目的地址、长度等信息,而载荷则是实际要传输的数据。
2.什么是抓包?
抓包具体指的是通过某些工具获取安卓App与服务器之间传输的网络数据,这些数据通常用于逆向分析、协议接口分析或App渗透测试,帮助安全工程师理解App与服务器之间的通信细节,如请求和响应的具体内容,从而进行安全评估或逆向工程。
3.为什么要抓包?
1.帮助定位加密或混淆的代码中的关键部分
2.逆向接口(比如:一些第三方影视app的解析接口、分析是否为服务器校验)
3.篡改数据包实现免重打包破解&屏蔽广告
4.协议分析&爬虫需求
3.抓包的前置知识
1.什么是Web?
Web,即万维网(World Wide Web),是互联网的一个重要组成部分,它是一种基于超文本和HTTP(HyperText Transfer Protocol,超文本传输协议)的全球性、动态交互的、跨平台的分布式图形信息系统。Web允许用户通过超链接在不同的网页之间导航,从而获取和浏览信息。

2.什么是协议?
在计算机网络通信中,协议(Protocol)是一种规范或一组规则,用于指导网络中不同系统之间数据的交换和通信(约定俗称的一种规则)。协议定义了数据如何在网络上传输、格式化、打包、寻址、路由、安全处理以及错误检测和纠正等方面的具体规则。它确保了来自不同制造商的设备和运行不同操作系统的计算机能够相互通信。

3.常见的协议以及分层模型
一文讲透TCP/IP协议 | 图解+秒懂+史上最全
网络协议可以分层,每层都有特定的任务和责任,最著名的分层模型是OSI七层模型和TCP/IP四层模型。常见的网络协议包括:
  • TCP/IP(Transmission Control Protocol/Internet Protocol):这是互联网的基础协议,包括了IP协议(用于寻址和路由数据包)、TCP协议(用于建立可靠的数据流)和UDP协议(用于不需要确认的快速数据传输)。
  • HTTP(Hypertext Transfer Protocol):用于从Web服务器向浏览器传输超文本文档(如HTML文件)。
  • FTP(File Transfer Protocol):用于在互联网上传输文件。
  • SMTP(Simple Mail Transfer Protocol):用于电子邮件的传输。
  • DHCP(Dynamic Host Configuration Protocol):自动分配IP地址和其他网络配置参数给网络上的设备。
  • DNS(Domain Name System):将域名转换为IP地址。

    PS:课下有时间要去深入学习一下OSI的七层模型,TCP的三次握手以及四次挥手,另外再推荐本书《图解HTTP》

    4.什么是URL?
    Web 由很多资源组成,比如 HTML 页面、视频、图片,在互联网上每个资源都有一个编号,这个编号就是 URL 地址。服务器负责定义 URL,世界上任何一个资源的编号是
    唯一的,客户端通过 URL 地址在互联网中找到该资源,URL 的官方名称叫作统一资源标识符(Uniform Resource Locator)。
    URL 的规则定义如下:
    https://www.52pojie.cn/forum.php
    https 表示资源需要通过 HTTPS 这个协议才能够获取,换句话说,客户端需要通过 HTTPS这个协议请求这个资源。
    www.52pojie.cn 表示服务器地址,在互联网中每个服务器都有一个 IP 地址,但对于用户来说 IP 地址很难记住,用户一般只会记住服务器主机(比如www.52pojie.cn)名称。
    在 HTTPS 中,客户端发送 HTTPS 请求的时候,必须通过 DNS 协议将服务器主机名转换为IP 地址,这样客户端才能找到服务器。
    443 是 HTTPS 协议的默认端口(可以省略不输入),表示服务器通过 443 端口提供 HTTPS服务。
    /forum.php 表示服务器在/根目录下有一个 forum.php 资源。
    5.HTTP与HTTPS
    HTTP和HTTPS协议,看一篇就够了
    HTTP是一种应用层协议,用于传输超文本,如HTML文档,以及其他资源,如图像和视频。它是一种无状态的协议,这意味着每个请求都是独立的,服务器不会保存关于客户端的任何信息。HTTP工作在TCP/IP协议栈的应用层,使用TCP端口80进行通信。
    ● 通信使用明文(不加密),内容可能会被窃听
    ● 不验证通信方的身份,因此有可能遭遇伪装
    ● 无法证明报文的完整性,所以有可能已遭篡改
    HTTPS是HTTP的安全版本,它通过SSL/TLS(安全套接层/传输层安全)协议对HTTP进行加密。SSL/TLS提供了数据加密、身份验证和数据完整性保护,确保数据在传输过程中的安全。HTTPS使用TCP端口443进行通信。HTTPS 并非是应用层的一种新协议。只是 HTTP 通信接口部分用SSL(Secure Socket Layer)和 TLS(Transport Layer Security)协议代替而已。
    HTTP + 通信加密 + 认证 + 完整性保护 = HTTPS
    其中验证身份问题是通过验证服务器的证书来实现的,证书是第三方组织(CA 证书签发机构)使用数字签名技术管理的,包括创建证书、存储证书、更新证书、撤销证书。


    6.什么是数字证书?
    数字证书是网络安全领域的一个重要组成部分,主要用于身份验证和加密通信。它基于公钥基础设施(Public Key Infrastructure, PKI)的原理,由证书颁发机构(Certificate Authority, CA)签发,用于证明公钥的所有者身份。

    7.常见抓包工具
    [table]
    [tr]
    [td]应用图标[/td]
    [td]工具名称[/td]
    [td]类型[/td]
    [td]下载链接[/td]
    [td]简介[/td]
    [/tr]
    [tr]
    [td]

    协议, 服务器

  • 心中的影子   

    ❌ 涛之雨.avi
    ⭕ 涛之雨.AV爱❤️
    wadasinidie99   


    正己 发表于 2024-7-18 16:43
    算吧,抓包工具太多了,没有一一列举

    这玩意儿好像还很特别,是装个虚拟网卡驱动,然后通过虚拟网卡驱动请求来实现请求分析,之前一个electron居然可以绕过代{过}{滤}理请求,我后来是用了这个http debugger,通过虚拟网卡原理得到网址,缺点是部分电脑不兼容会蓝屏
    yan999   

    又来了来了,感谢大佬出教程
    collinchen1218
    OP
      

    来了来了现在学第一课还来得及吗?
    collinchen1218
    OP
      

    这一小节,偏理论一些
    collinchen1218
    OP
      

    理论知识很足,感谢分享!!!
    collinchen1218
    OP
      

    http debugger不算吗
    yan999   


    collinchen1218 发表于 2024-7-18 16:38
    http debugger不算吗

    算吧,抓包工具太多了,没有一一列举
    wadasinidie99   

    抓了,包也构造好了,Repeat一下......
    emmm


    imgonline-com-ua-progressivexZM5bgacYt7O.jpg (32.72 KB, 下载次数: 0)
    下载附件
    2024-7-18 16:45 上传

    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部