流量抓包

文中内容可能不涉及MAC OS, MAC OS需要自行类比。
  • 网络通信
        
    网络通信数据的数据包基本上如下:
 
网络设备<->网卡<-> 操作系统 <->  应用

  

    在操作系统层面用到最多的就是TCP/UDP,使用socket来实现。 处于那个位置就决定了能抓到什么样的协议包, 至于能不能还原出上层的通信的协议,则是另一个问题。所以比较容易抓到的TCP/UDP数据包,在操作系统层面完成封包,通用的tcpdump、wireshark均可以抓包,但是可能出于安全的考虑,均未提供修改的功能。
 
  • 基本工具
  •       burpsuite
    具体的参考资料 burpsuite实战指南(https://legacy.gitbook.com/book/t0data/burpsuite/details?from=timeline
  
  1.     代理设置
     代理设置如下:
        配置burpsuite监听的代理端口,通过代理的方式可以接受其他应用的流量。  import / export  CA  和 HTTPS情景下的代理抓包有关,一般情况下用不到。
  1. 多级代理
     在有些场景下可能会用到多级代理, 下图中就是针对burpsuite的上级代理的设置( 从burpsuite流入的数据包,从这里配置的代理流出)
  1. websockets
    
        4.   扩展插件 NoPE Proxy
    由于burpsuite只能够抓取http/https协议包,对于非http协议的数据包无法截取, 该插件扩展了代理的功能能够截取noHttp数据包
    开始DNS监听:
 
 
 
        设置完后,当前的服务器就可以作为DNS服务器了, 可以把另一台远程系统的DNS服务器填写成当前地址,就可以监听请求的DNS,如下:
 
另外监听TCP:
    其中certificate HostName 是web得域名涉及ssl可能需要填写, Server Address就是目标服务器的地址或域名,server port就是
目标服务器的端口, Listen Port 就是本地监听的端口。 添加到代理后,就是使用代理。
 
   如果 Server Address 填写的是域名,  那么勾选这个选项:
会将所有的域名解析到当前的代理服务器本地, 然后监听的端口与服务端口一致就可以抓到tcp的请求。
 
   如果 Server Address 是一个IP地址, 那么客户端的应用需要将流量转发到代理服务器设置的相应端口上,如下:
其中157.139为原来访问的服务器地址,在开启监听后,  需要去访问代理服务器的地址 157.134
 
        
 
 
  •       fiddler
菜单栏 -> tools -> options,  选中如下信息:
 connections 配置如下:
allow remote computers to connect  是涉及到远程计算机的流量转发到这台,比如手机流量代理抓包
 
gateway里面可以配置应用网关(应用流量转发到哪里)的信息,如下
 
 
配置完毕后,进入菜单 rules  -> automatic breakpoint  ->  选择截断的方式
 
可以采用多级代理的方式,  使用burpsuite作为主要的工具比较合适。
 
 
  •        wireshark
 具体详细的解决使用说明可以参考《 Wireshark官方文档》 (https://www.wireshark.org/download/docs/
    常见的几个操作:
  1.     抓包
        打开工具页面如下:
    菜单-> 捕获 ->  选项如下:
    选择一个接口,点击出现的开始按钮,开始监听数据包,
 
  1.     过滤器
    在filter栏中对协议进行过滤如下:
 
  1.     分析一些常见的协议对象
选择导出对象,支持http协议、SMB协议等
 
 
  • 具体场景
  •   浏览器                
IE、火狐、chrome ,均有网络代理的设置如下:
chrome / IE:
    实际上设置的就是系统代理(控制面板- internet 选项),在具体设置时如下:
 
 可以在例外中设置不需要走代理的地址或者域名。
 
firefox
    菜单-> 选项
 
进入设置选项:
    使用系统代理, 顾名思义就是采用系统的配置,在windows中就是internet选项中的配置。
    手动代理配置,   就是针对firefox自身的一个代理设置, 能够支持sock代理
    自动检测代理则较为复杂, 一般是涉及到PAC, 一些SS代理的程序会设置为这个模式。
 
    如果使用了proxyfier等代理工具选选择系统代理比较合适,但是仅仅只是web可以设置手动代理,这样不会被来自其他应用的数据流影响。
 
  •         http/https       、
  
  1.     http
http协议的抓包,按照上述的工具的基本配置后, 即可抓包,几乎没有遇到过问题, 如果有也是代理配置导致的问题。
 
        2.    浏览器中常见的https
如果不想折腾CA的麻烦, 可以使用fildder + burpsuite 构造多级代理, 在burpsuite中对数据包进行操作, filder负责burpsuite的出口,处理各方面问题(filder 依然会触发证书校验不通过的情况
 
导入burpsuite的CA, 进行抓包,但是多数情况下还是会提示证书存在问题,需要设置例外(一般浏览器会出现提示,打开高级选项,选择确认例外)。
 
  1.     HSTS标准
 
            
    直接使用低版本的浏览器(未支持HSTS的浏览器) ,可以正常的完成抓包
 
  1. HTTPS双向认证
比较常见的场景是网银使用Ukey登录,或者企业网银强制ukey登录。
使用firefox的firebug
    
    另一个思路是对浏览器进行hook,但目前没有相关的现成工具。
 
 
  •   android  APP
常见的抓包就按之前说明,在中设置-> WLAN -> 长按连接的无线设置手动代理即可,如下:
 
在处理一些https时可能需要导入证书, 下载burpsuite的证书在进行导入(设置-> 安全 -> 凭据存储 -> 从SD卡安装 )
另外在这样的情况,依然会存在无法抓包的情况,可能是使用了sslpinning的技术,可以安装justtrustme插件 (xposed模块)进行绕过:
 
 
 
  •   IOS APP
常见的抓包就按之前说明,在wi-fi中设置手动代理即可,如下:
 
遇到https的网站时,下载bp的ca证书进行安装即可。
 
 
另外就是与android一样,涉及到sslpinning的技术,IOS使用SSL Kill Switch 来绕过sslpinning
  •   windows  
通过控制面板- internet 选项,配置完系统http代理后,就可以抓取其他应用的http流量, 利用sqlmap、一些爆破工具等
 
 
 
 
posted @ 2020-04-18 22:04  alkaid  阅读(724)  评论(0编辑  收藏  举报