【2024小迪安全】第6天:抓包技术 — 结构化复习笔记


一、课程定位与目标

1.1 本章核心定位

  • 针对协议HTTP/HTTPS协议(⚠️ 重要:其他协议如TCP/UDP/游戏协议等,需用Wireshark等工具,本节课工具无法抓取)

  • 针对对象:四大方向

    • Web网站(浏览器访问)

    • APP应用(手机端)

    • 小程序(微信小程序等)

    • PC应用(C/S架构客户端,如腾讯文档PC版)

  • 使用工具:Fiddler、Charles(茶杯)、Burp Suite、Proxifier(转发联动工具)

1.2 课程边界(重要)

明确告知 :本节课只解决无防护场景的抓包。后续课程将讲解:

  • 其他协议抓包(Wireshark、科莱)

  • 反代理检测绕过(APP/小程序专项章节)

  • 证书校验绕过

  • 数据加密解密分析


二、环境准备:证书安装(前置条件)

2.1 为什么必须安装证书?

  • HTTPS抓包前提:不安装证书无法抓取HTTPS加密流量

  • 原理:证书用于解密HTTPS流量,实现中间人代理(MITM)

2.2 证书安装步骤

A. Charles(茶杯)证书安装

本地电脑安装:

  1. 打开Charles → HelpSSL ProxyingSave Charles Root Certificate...

  2. 保存证书到桌面(命名为"Charles")

  3. 双击安装或导入系统证书存储

安卓模拟器安装:

  1. 将证书文件拖入模拟器共享目录(或通过文件传输)

  2. 模拟器设置 → 安全 → 从SD卡安装证书

  3. 选择证书文件 → 输入锁屏密码 → 命名安装

B. Fiddler证书安装

导出证书:

  1. 打开Fiddler → ToolsOptionsHTTPS

  2. 勾选Decrypt HTTPS traffic

  3. ActionsExport Root Certificate to Desktop

安装方式同Charles:本地双击安装 + 模拟器SD卡安装

C. Burp Suite证书安装

本地安装:

  1. 打开Burp Suite → ProxyOptionsImport/export CA certificate

  2. 选择ExportCertificate in DER format

  3. 保存为.der文件

  4. 浏览器设置 → 安全 → 管理设备证书 → 中间证书颁发机构 → 导入

模拟器安装(特殊处理):

⚠️ 注意 :Burp证书为.der格式,安卓模拟器不直接识别,需转换:

  1. 在模拟器浏览器中访问Burp代理地址(如http://192.168.1.6:8080

  2. 点击页面上的CA Certificate下载

  3. 下载后位于Download目录,将后缀改为.cer

  4. 设置 → 安全 → 从SD卡安装 → 选择.cer文件安装


三、四大对象抓包实战

3.1 Web网站抓包(浏览器)

Charles抓包
  • 特点:无需设置代理,直接启动即可抓取本机浏览器流量

  • 配置ProxyProxy Settings → 勾选Enable transparent HTTP proxying

  • 远程抓取 :若抓模拟器流量,需勾选Support HTTP/2Enable SOCKS proxy

Fiddler抓包
  • 特点:无需设置代理,自动抓取系统HTTP/HTTPS流量

  • 配置ToolsOptionsHTTPS → 勾选Capture HTTPS CONNECTsDecrypt HTTPS traffic

  • 筛选功能:可针对特定域名筛选(Filter功能)

Burp Suite抓包(重点)
  • 特点必须设置代理,偏向安全测试,支持数据包拦截修改

  • 配置步骤

表格

步骤 操作 说明
1 设置代理监听 ProxyOptionsAdd → 绑定地址(127.0.0.1或本机IP)→ 端口(默认8080)
2 浏览器设置代理 设置 → 代理 → 手动设置 → 127.0.0.1:8080
3 开启拦截 ProxyInterceptIntercept is on
4 抓包测试 访问目标网站,数据包会卡在Burp中,可修改后放行

⚠️ 关键注意事项

  • 代理开关必须对应:设置代理后Burp必须开启,否则网站无法访问(流量走到代理端口但无工具监听,导致断网)

  • 排除本地地址 :浏览器代理设置的"请勿对以下地址使用代理服务器"中,删除所有本地地址,否则本地靶场抓不到包


3.2 APP应用抓包(安卓模拟器)

核心原理

模拟器相当于独立设备 ,有独立IP地址。抓包工具在本机运行,需让模拟器流量主动走向本机工具。

配置步骤(以Burp为例)

步骤1:确认本机IP地址

bash

复制

复制代码
# Windows
ipconfig
# 选择实际出网IP(以太网或WiFi适配器),非VMware虚拟网卡

步骤2:模拟器设置代理

  1. 模拟器设置 → WLAN → 长按当前网络 → 修改网络

  2. 高级选项 → 代理 → 手动

  3. 代理服务器主机名:本机IP(如192.168.1.6

  4. 代理服务器端口:Burp监听端口(如8080

步骤3:Burp添加监听地址

  • ProxyOptionsAdd → 选择本机IP(非127.0.0.1)→ 端口8080

步骤4:验证抓包

  • 模拟器浏览器访问HTTP/HTTPS网站,确认Burp能抓到包

  • 再打开目标APP测试

⚠️ 关键检查点

  • 先确保浏览器能抓HTTP/HTTPS,再测试APP

  • 若抓不到,检查:证书是否安装、代理IP是否正确、Burp监听地址是否添加本机IP

Charles/Fiddler抓APP
  • 同样需设置"从远程客户端抓取"(Charles:Proxy Settings → 勾选相关选项)

  • 模拟器代理设置同上


3.3 微信小程序抓包

核心难点
  • 微信有代理设置,但直接设置系统代理会导致微信功能异常(消息发不出等)

  • 微信内置浏览器/小程序无法直接配置独立代理

解决方案:转发联动(两种方法)

方法一:Charles + Burp Suite联动(推荐)

表格

步骤 操作
1 Charles正常抓取小程序流量(无需代理设置,自动抓)
2 Charles设置转发:ProxyProxy SettingsmacOS/WindowsExternal Proxy Settings
3 勾选Use external proxy servers → HTTP/HTTPS都设置为127.0.0.1:8080(Burp地址)
4 Burp监听127.0.0.1:8080
5 打开微信小程序,Charles抓到后自动转发到Burp

方法二:Proxifier + Burp Suite(进程级转发)

Proxifier作用:强制指定进程走指定代理,无需应用程序本身支持代理设置

表格

步骤 操作
1 打开Proxifier → 配置文件代理服务器 → 添加
2 地址:127.0.0.1,端口:8080,协议:HTTPS → 确定
3 配置文件代理规则 → 添加
4 名称 :Wechat(任意) 应用程序wechat*.exe(通配符匹配微信所有进程) 目标主机 :任意 目标端口 :任意 动作:选择刚才创建的代理服务器
5 Burp监听127.0.0.1:8080
6 打开微信小程序,流量自动转发到Burp

Proxifier优势

  • 可基于进程目标主机目标端口精细筛选

  • 针对无代理设置选项的PC应用/小程序尤其有效


3.4 PC应用抓包(C/S客户端)

以腾讯文档PC版为例

方法一:系统代理(简单但不推荐)

  • 直接设置系统代理指向Burp(127.0.0.1:8080

  • 缺点:所有流量都走代理,干扰信息多,且部分应用检测代理后拒绝运行

方法二:Proxifier进程级抓包(推荐)

表格

步骤 操作
1 找到目标进程名(任务管理器 → 腾讯文档 → 进程名如TencentDocs.exe
2 Proxifier添加代理服务器:127.0.0.1:8080(HTTPS)
3 代理规则 → 添加 → 应用程序填TencentDocs.exe(可用通配符*
4 动作选择代理服务器
5 Burp监听127.0.0.1:8080
6 操作腾讯文档(登录、打开文件等),Burp抓包分析

⚠️ 权限问题 :部分大型应用(如360、腾讯系)有高权限保护,进程级抓包工具无法获取其数据,需更高权限或后续逆向课程解决。


四、工具对比与选择建议

表格

工具 是否需要代理 适用场景 核心优势 局限性
Charles(茶杯) ❌ 不需要 快速抓包、APP/小程序初步分析 启动即用,界面友好,支持远程抓取 安全测试功能弱,无法拦截修改重放
Fiddler ❌ 不需要 快速抓包、HTTP调试 启动即用,脚本扩展能力强 界面较乱,安全测试功能弱
Burp Suite 必须设置 专业安全测试、渗透测试、SRC/CTF 拦截修改重放、Intruder爆破、Repeater重放、Scanner扫描 必须配置代理,无代理场景需联动
Proxifier - 无代理设置选项的程序强制代理 进程级代理转发,突破代理限制 只是转发工具,不直接抓包

五、核心操作流程图(可复现)

5.1 标准抓包流程(Web/APP)

plain

复制

复制代码
环境准备
    ↓
安装证书(本地浏览器 + 模拟器/目标设备)
    ↓
选择工具
    ├── Charles/Fiddler → 启动即用 → 筛选目标域名 → 分析数据包
    │
    └── Burp Suite → 配置代理监听 → 目标设备设置代理 → 开启拦截 → 抓包/修改/重放

5.2 无代理场景抓包流程(小程序/PC应用)

plain

复制

复制代码
环境准备(证书安装)
    ↓
Charles抓取(自动抓无代理限制流量)
    ↓
Charles设置转发到Burp(External Proxy Settings → 127.0.0.1:8080)
    ↓
Burp监听127.0.0.1:8080 → 获得可测试的数据包

plain

复制

复制代码
Proxifier配置
    ├── 添加代理服务器:127.0.0.1:8080
    ├── 添加代理规则:指定目标进程(wechat.exe / TencentDocs.exe)
    └── 动作:走代理服务器
        ↓
Burp监听127.0.0.1:8080 → 抓包分析

六、常见故障排查

表格

现象 原因 解决
设置代理后网站/APP无法访问 Burp未开启或监听地址错误 检查Burp是否开启,监听地址是否与代理设置匹配
抓不到HTTPS包 证书未安装或安装位置错误 重新安装证书到"受信任的根证书颁发机构"
模拟器抓不到包 代理IP错误(选成了VMware虚拟网卡) ipconfig确认实际出网IP,非VMnet8/VMnet1
Burp监听不到模拟器流量 只监听了127.0.0.1,未添加本机IP ProxyOptionsAdd → 添加本机IP(如192.168.1.6)
微信小程序直接设置代理后异常 微信检测代理限制功能 改用Charles转发或Proxifier,不直接设置系统代理
腾讯文档等PC应用抓不到 高权限保护/无代理设置选项 使用Proxifier进程级转发,或后续逆向课程解决

七、本章核心考点总结(SRC/CTF/面试)

7.1 必知概念

  1. 抓包本质:中间人代理(MITM),解密HTTPS需安装CA证书

  2. 协议边界 :Fiddler/Charles/Burp只能抓HTTP/HTTPS,其他协议用Wireshark

  3. 代理原理:Burp通过本地监听端口截断流量,需浏览器/设备主动指向该端口

  4. 转发联动:Charles(抓)→ Burp(测),解决无代理设置场景

7.2 实操要点(面试常问)

  1. 证书安装 :本地+模拟器双环境,Burp证书需转.cer格式

  2. 模拟器代理 :不是127.0.0.1,是本机实际IP(ipconfig查看)

  3. Burp监听:需添加本机IP地址(非仅127.0.0.1)才能抓模拟器

  4. 小程序抓包 :微信直接设代理会异常,必须用Charles转发Proxifier

  5. Proxifier规则 :基于进程名 (如wechat*.exe)强制转发到Burp

7.3 工具选择(场景题)

  • 快速看流量:Charles/Fiddler

  • 渗透测试/改包重放:Burp Suite(必须配合代理)

  • 无代理设置的小程序/PC应用:Charles + Burp 或 Proxifier + Burp

7.4 故障诊断(排错题)

  • 网站打不开 → 检查Burp是否开启(代理设置后工具必须开)

  • 本地靶场抓不到 → 删除代理排除列表中的本地地址

  • HTTPS显示乱码/无法访问 → 证书未正确安装

  • 模拟器无流量 → 检查IP是否选对(非VMware虚拟IP)、Burp是否监听该IP

7.5 延伸考点(后续课程预告)

  • 反代理检测绕过:APP检测代理环境直接断网,如何绕过?

  • 证书固定(SSL Pinning):APP内置证书,如何突破?

  • 非HTTP协议:游戏封包、TCP自定义协议用Wireshark分析


八、抓包技术的应用价值(回答"为什么要学")

表格

应用场景 具体说明
目标发现 获取APP/小程序的后端API接口、域名、IP地址,明确测试目标
漏洞测试 分析数据包参数,测试SQL注入、越权、未授权访问、信息泄露等
逆向分析 抓取加密数据,分析算法逻辑,构造请求实现越权或自动化
SRC/CTF 小程序、APP类题目/漏洞挖掘的必备前置技能
相关推荐
今儿敲了吗2 小时前
python基础学习笔记第八章——异常
笔记·python·学习
兄弟加油,别颓废了。2 小时前
sqli注入
安全
朱一头zcy2 小时前
Linux系列04:简单理解inode、硬链接、软链接、挂载的概念
linux·笔记
L1624762 小时前
Nginx+Keepalived 高可用集群实战笔记
运维·笔记·nginx
志栋智能2 小时前
AI超自动化运维,让IT运维自动化门槛更低
运维·网络·人工智能·安全·自动化
moton20172 小时前
TLS握手流程深度解析:从 ClientHello 到 Finished 的完整安全流程
安全·架构·物联网架构·mqtt topic设计
PyHaVolask2 小时前
数据存储安全技术
安全
_李小白2 小时前
【OSG学习笔记】Day 3: OSG 实用工具
笔记·图形渲染
攻城狮在此2 小时前
华为交换机ACL配置(基本ACL、高级ACL)
网络·安全·华为
缘来是黎2 小时前
腾讯高防域名
网络·安全