流量抓包
文中内容可能不涉及MAC OS, MAC OS需要自行类比。
-
网络通信
网络通信数据的数据包基本上如下:
网络设备<->网卡<-> 操作系统 <-> 应用
在操作系统层面用到最多的就是TCP/UDP,使用socket来实现。 处于那个位置就决定了能抓到什么样的协议包, 至于能不能还原出上层的通信的协议,则是另一个问题。所以比较容易抓到的TCP/UDP数据包,在操作系统层面完成封包,通用的tcpdump、wireshark均可以抓包,但是可能出于安全的考虑,均未提供修改的功能。
-
基本工具
-
burpsuite
具体的参考资料 burpsuite实战指南(https://legacy.gitbook.com/book/t0data/burpsuite/details?from=timeline)
-
代理设置
代理设置如下:
配置burpsuite监听的代理端口,通过代理的方式可以接受其他应用的流量。 import / export CA 和 HTTPS情景下的代理抓包有关,一般情况下用不到。
-
多级代理
在有些场景下可能会用到多级代理, 下图中就是针对burpsuite的上级代理的设置( 从burpsuite流入的数据包,从这里配置的代理流出)
-
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/)
常见的几个操作:
-
抓包
打开工具页面如下:
菜单-> 捕获 -> 选项如下:
选择一个接口,点击出现的开始按钮,开始监听数据包,
-
过滤器
在filter栏中对协议进行过滤如下:
-
分析一些常见的协议对象
选择导出对象,支持http协议、SMB协议等
-
具体场景
-
浏览器
IE、火狐、chrome ,均有网络代理的设置如下:
chrome / IE:
实际上设置的就是系统代理(控制面板- internet 选项),在具体设置时如下:
可以在例外中设置不需要走代理的地址或者域名。
firefox
菜单-> 选项
进入设置选项:
使用系统代理, 顾名思义就是采用系统的配置,在windows中就是internet选项中的配置。
手动代理配置, 就是针对firefox自身的一个代理设置, 能够支持sock代理
自动检测代理则较为复杂, 一般是涉及到PAC, 一些SS代理的程序会设置为这个模式。
如果使用了proxyfier等代理工具选选择系统代理比较合适,但是仅仅只是web可以设置手动代理,这样不会被来自其他应用的数据流影响。
-
http/https 、
-
http
http协议的抓包,按照上述的工具的基本配置后, 即可抓包,几乎没有遇到过问题, 如果有也是代理配置导致的问题。
2. 浏览器中常见的https
如果不想折腾CA的麻烦, 可以使用fildder + burpsuite 构造多级代理, 在burpsuite中对数据包进行操作, filder负责burpsuite的出口,处理各方面问题(filder 依然会触发证书校验不通过的情况
导入burpsuite的CA, 进行抓包,但是多数情况下还是会提示证书存在问题,需要设置例外(一般浏览器会出现提示,打开高级选项,选择确认例外)。
-
HSTS标准
直接使用低版本的浏览器(未支持HSTS的浏览器) ,可以正常的完成抓包
-
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、一些爆破工具等
以技入道