了解不一样的抓包技巧

背景

抓包作为工作中必不可缺的技能,如果一个抓包工具失效,很多人不知道怎么去进行手中的工作,所以一定要掌握好抓包的技巧。

抓包的原理

提出问题, 什么是数据包?包是怎么传输的?

定义:包 是在tcp/ip协议传输过程中的一个数据单位

数据包的传输过程:

image.png

扩展

思考:抓包 是在哪一层操作的?我们平时工作又在哪一层?

image.png

常见的抓包

常见的抓包工具有 Charles、Fiddler

通用问题:

  1. 不开源

  2. 配置复杂

  3. Charles 只适用于mac、Fiddler 只适用于windous

抓包工具推荐

  1. http 、https 抓包 推荐使用 whistle

  2. tcp、udp抓包 推荐使用 wireshark

  3. 使用代码抓包推荐 mitmproxy

whistle使用技巧

安装环境:node 环境

https://nodejs.cn/download/

安装命令:

npm install -g whistle

检查是否安装成功

whisle -V

whisle启动

w2 start

whisle 查看帮助信息

w2 help

whistle的默认端口是8899,如果要指定端口号,执行下面的命令

w2 start -p 8888

停止whistle

w2 stop

使用whistle抓包步骤

1、whisle 启动web 界面

2、手机配置代理(苹果手机举例)

手机连接公司网络-> 点击无线局域网->点击感叹号->点击配置代理->选择手动 ->服务器输入 图上ip->端口输入 图上 端口号->点击存储

3、下载https 证书

web页面 ,点击https 出现证书下载二维码,手机扫描后进行下载

4、安装证书(苹果手机举例)

设置-> 点击通用-> 点击VPN与设备管理-> 点击已下载的描述文件-> 点击安装

5、信任证书(苹果手机举例)

设置-> 点击通用->点击证书信任设置-> 打开刚刚安装的证书信任开关

6、mock 技巧

修改规则

修改成功截图

使用 wireshark抓包

1、安装wireshark

Wireshark · Download

2、开始抓包(苹果手机举例)

第一步:使用USB数据线将iOS设备连接到Mac上;

第二步:获取iOS设备的UCID,可以直接使用iTunes/Xcode的organizer工具查看;

第三步:

    • 创建rvi接口:rvictl -s
    • 查看创建虚拟接口:rvictl -l
    • 创建后可以使用如下命令查看虚拟接口是否创建成功:ifconfig rvi0

第四步:使用Wireshark等针对创建虚拟接口抓包

第五步:分析完成后,移除创建的rvi接口:rvictl -x

备注:Android设备需要root,使用tcpdump可以进行非Wi-Fi抓包。

3、应用场景

ipv6 与ipv4 流量浓度对比https://zhishu.zhipin.com/wiki/DcwNOsClpx6

使用mitmproxy 进行抓包

1、环境准备

基于python 环境

2、安装mitmproxy

pip3 install mitmproxy

3、启动mitmproxy

启动 mitmproxy 用 mitmproxy、mitmdump、mitmweb 这三个命令中的任意一个即可

mitmproxy:脚本模式

mitmdump:后台模式

mitmweb:web 模式

参数介绍:

4、启动后连接代理

同 上

5、安装证书

http://mitm.it/

6、脚本编写

import mitmproxy.http
from mitmproxy import ctx




class Counter:
    def __init__(self):
        self.num = 0


    def request(self, flow: mitmproxy.http.HTTPFlow):
        self.num = self.num + 1
        ctx.log.info("请求的url为:"+flow.request.pretty_url )


    def response(self, flow: mitmproxy.http.HTTPFlow):
        ctx.log.info("请求的返回值为:" + flow.response.get_text())




addons = [
    Counter()
]
7、实现代码抓包

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值