XuLizhao 's Notes

时光,漫步


  • 首页

  • 技术

  • 文档

  • 关于

  • 搜索
close

网络分析工具

时间: 2018-01-03   |   分类: Tech     |   阅读: 1178 字 ~3分钟

这里的网络分析工具可以归为两大类:

  • 网络代理: 用的最多的是 Fiddler

  • 分析工具: 比较熟悉的是Wireshark

代理类

Fiddler

以Android客户端抓包为例,主要步骤为:

  • [Tools]-[Options], 检查Connections和HTTPS选项,开启代理模式
  • 安卓浏览器访问 <YOUR_IP>:8888, 下载并安装根证书
  • 设置安卓WIFI代理为以上地址和端口

Charles (付费)

  • 默认端口8888
  • [Proxy]-[SSL Proxy Settings]-[SSL Proxying],添加location。
  • 访问 [Help]-[SSL Proxying]-[Install Charles Root Certificate on a Mobile Device or Remote Browser],找到代理地址和端口。

注: 如果response中文显示乱码,需要确保本地已安装证书。[Help]-[SSL Proxying]-[Install Charles Root Certificate]即可。

在华为手机,需要把证书文件扩展名从pem改成crt。

限制:
从Android 7开始,需要修改app配置信任用户证书,才能显示HTTPS内容。

如果targets API为24+或应用使用了certificate pinning(使用okhttp等),也可能不工作。

步骤如下:

在应用工程添加文件 res/xml/network_security_config.xml:

<network-security-config> 
  <debug-overrides> 
    <trust-anchors> 
      <!-- Trust user added CAs while debuggable only -->
      <certificates src="user" /> 
    </trust-anchors> 
  </debug-overrides> 
</network-security-config>

然后添加到应用的manifest文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest>
    <application android:networkSecurityConfig="@xml/network_security_config" >
        ...
    </application>
</manifest>

Mac Chrome

钥匙串访问 - Charles Proxy CA - 信任 - 使用此证书时下拉列表选择"始终信任"

Mock Response

  • 方式1: Tools - Rewrite 增加重写规则
  • 方式2: Proxy - Enable Breakpoints, Proxy - Breakpoints Settings
  • 方式3: Map Local 使用本地文件替换响应

Burp Suite

默认端口8080

mitmproxy

Python写的开源调试工具, 解析/修改/重放/保存。

mitmproxy -b PORT -w outfile
mitmdump -w outfile
# -n 不绑定代理端口
# 过滤所有POST
mitmdump -nr outfile -w outfile2 "-m post"
# 客户端重放, -c filename
mitmdump -nc outfile

Android全局抓包分析(HTTP/HTTPS+TCP)

最近遇到的问题是,App也使用了TCP协议,如果使用Fiddler这类HTTP代理工具会造成应用使用问题。

所以要同时抓取HTTP/HTTPS和TCP数据,安卓自带的WiFi代理便局限了。

抓包方案有2个:

Android机已ROOTED

手机端安装tcpdump,因为安卓本身就是基于*Nix的嘛,在电脑用Wireshark抓包。

其实就是一条命令:

adb exec-out "tcpdump -i any -U -w - 2>/dev/null" | wireshark -k -S -i -

电脑建立WiFi热点

由于是公司的手机,不能随便ROOT。思路是通过电脑的无线网络建立一个代理WiFi热点。

在Windows7/10都可以,如果是台式机,需要自备无线网卡。

# 确定  Hosted network supported/支持的承载网络为 Yes/是
netsh wlan show drivers

# 建立虚拟WiFi
netsh wlan set hostednetwork mode=allow ssid=testWiFi key=password
# 设置网络连接共享: 右键点击正在使用的以太网络连接,[属性]-[共享]标签-勾选 [Internet共享连接]并从下拉列表选择刚创建的网络。
# Windows10位置:[Windows Settings]-[Network&Internet]-[Change Adapter Options]

#开启无线AP
netsh wlan start hostednetwork

资源

链接

  • Fiddler
  • Charles SSL Certificates
  • mitmproxy
  • tcpflow

扩展阅读

  • fiddler安卓配置图文教程
  • fiddler各图标的意思
  • TLS的Wireshark例子
  • tcpdump命令详解
  • Android抓包方法(三)
  • Android 抓包实践总结
  • Charles 从入门到精通
  • Burp Suite 抓包
  • 本文作者: xulizhao
  • 本文链接: https://xulizhao.com/blog/network-tools/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
#networking#
Wireshark网络分析工具
聊聊监控系统
  • 文章目录
  • 站点概览

xulz

时光,漫步

58 日志
3 分类
28 标签
  • 代理类
    • Fiddler
    • Charles (付费)
    • Burp Suite
    • mitmproxy
  • Android全局抓包分析(HTTP/HTTPS+TCP)
    • Android机已ROOTED
    • 电脑建立WiFi热点
  • 资源
    • 链接
    • 扩展阅读
© 2017 - 2022 XuLizhao 's Notes
Powered by - Hugo/ NexT
津ICP备17010344号-1
0%