身为互联网人,无论在平时开发还是在测试过程中,我们都不可避免的会涉及到网络安全性,如何监测网络请求,从而最大程度的保证数据的安全,需要我们了解并掌握抓包的技巧。那么何谓抓包呢?抓包就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等一系列操作,来进行检查网络是否安全。同时经常被黑客用来对数据进行截取,利用一些抓包软件可以很轻松的获得到你没有加密的一些数据,经过分析,然后会对你的行为进行攻击。所以,抓包对于我们维护信息的安全非常关键。
抓包常用工具:
fiddler:windows平台最受欢迎抓包工具、免费、易用
charles:Mac平台下最佳抓包工具,易于使用,收费软件,可以一直使用
wireShark:老牌抓包工具,跨平台,功能齐全、强大
tcpdump:命令行程序,适用于手机系统和后台系统
《Fiddler》
简介:Fiddler是运行于windows系统上的程序,用来处理HTTP,HTTPS协议。在我们工作中常见的主要是对我们移动端开发完成后,进行调试或者测试的时候,需要检查服务端与客户端的数据交互有没有实现,以及是否正确,我们会使用一些虚拟数据,假数据,设定的场景,来对我们的软件进行操作,就需要用到Fiddler抓包工具。
处理HTTP协议:
1.首先需要注意的是我们的移动端app必须保证和Fiddler的主机处于同一网络下
2.Fiddler选择开启远程连接,确认Fiddler代理主机的IP地址和端口号
进入Tools-->Options-->Connections-->勾选Allow remote computers to connect
默认监听的端口号8888()
3.在移动端设置网络代理为Fiddler主机,即Fiddler代理主机IP和端口号
选中网络对应的无线连接名称长按-->修改网络-->高级选项-->代理手动--填写代理IP地址和端口--保存
4.访问HTTP协议的网络地址
处理HTTPS协议:
1.首先保证移动端和Fiddler的主机为同一网络,并且能够抓取到HTTP协议
2.Fiddler开启抓取HTTPS协议
进入Tools-->Options-->HTTPS-->勾选Capture HTTPS CONNECTS-->勾选Decrypt HTTPS traffic --> 勾选 Ignore server certificate errors
3.移动端卸载配置证书
4.访问HTTPS协议的网络地址
《Charles》
简介:Charles是运行于Mac系统的抓包截取工具,设置代理服务器,处理网络请求,来实现网络封包的截取和分析。不过由于Mac系统限制,是一款收费软件,可以免费使用30天,过期后,每次使用时长仅仅在30分钟之内。总的算下来的话,对用户还是比较友好的,就算不付费,也还是可以使用较为完整的功能。
HTTP:
1.设置 Proxy -> MacOS X Proxy,打开抓包
2.设置浏览器的代理(网络设置里设置), localhost:8888 (charles默认8888,可修改);
3.浏览器使用了代理管理插件的就新建一个代理服务器,localhost:8888
HTTPS:
1.安装SSL证书:help -> SSL proxying -> install charles root certification
2.安装完会自动跳到系统的钥匙串管理界面,并见到charles的证书,此时双击他并在信任里选择“信任”
3.设置proxy -> SSL proxy setting 第一个tab(SSL proxying)新增规则:'host:*; port: 443'
远程抓包:
1.手机与电脑处于同一个局域网内,手机设置代理为电脑ip与端口 '9999',charles会提示是否允许,选择allow即可,https抓包和本地抓包类似,如果看不到https就要按照以下步骤安装证书
2.手机浏览 Charles Web Debugging Proxy SSL CA Certificate instal-lation 下载证书,打开文件提示“若要安装请先在设置应用中查看描述文件”
3.设置 -> 通用:找 '描述文件' 选项(在VPN选项下方)-> 右上角安装
4.设置 -> 通用 -> 关于本机 -> 最下方:证书信任设置 -> 开启上一步安装的证书 'charles Proxy CA'
5.电脑上的charles就可以查看https
《WireShark》
简介:WireShark是非常流行的网络封包分析软件,功能十分强大,可以截取各种网络封包,显示网络封包的详细信息。同时也是开源软件,可以放心使用,运行在Windows和MacOS系统上。
使用步骤:
1.点击菜单“Capture” -> “Options...” 便会打开抓取配置界面
2.在“Capture”里,选择与外网连接的网卡,不知道选择哪一个,可以点击全部选择
3.在“Capture Filter”中写入过滤条件。这里是用来筛选所抓取报文的。对于AS2端口来说,录入“Port 8080”就是“仅仅抓取端口是8080”的所有通信报文,也可以根据真实使用的端口来选择
4.然后,点击“Start”按钮就可以了。接下来,WireShark会在主界面显示出已经抓取的通讯报文。如果没有任何数据,请检查你的配置是否正确
5.在抓取到数据之后,可以使用菜单“Capture” -> “Stop”来停止抓取,然后使用“File” -> “Save”将抓取到的内容保存在磁盘上,保存之后的文件扩展名一般为“pcapng”文件。这个文件就可以用来分析底层的网络通讯问题。
《tcpdump》
简介:tcpdump是一个强大的网络抓包Sniffer类工具,通常用在Linux系统中,Windows操作系统中也会使用,可以看作是WireShark的命令行版本。tcdpump命令最初设计用于观察TCP/IP性能问题,它是一个用于截取网络分组,并输出分组内容的工具。tcpdump可以将网络中传送的数据包的报文头完全截获下来提供分析,它支持针对网络层、协议、主机、网络或端口的过滤,并提供and,or,not等逻辑语句来帮助用户去掉无用的信息。
操作命令:
tcpdump -i wlan0 -s 0 -w a.cap //监听wlan0网卡上的全部流量,-s代表抓取包的大小,默认为抓取64,设置为0, 表示包有多大,抓多大。-w,表示抓取下来保存为,a.cap
tcpdump -r a.cpa
tcpdump -A -r a.cap //以Ascall显示包文件
tcpdump -x -r a.cap //以十六进制显示包文件
tcpdump -i eth0 tcp port 22 //监听tcp协议的,22端口
tcpdump---筛选
tcpdump -n -r http.cap | awk '{print $3}' |sort -u // -n 表示只以ip地址的形式显示出来,不显示域名。awk 参数表示只显示第三列信息; sort表示去掉重复的
tcpdump -n src host 145.254.160.237 -r http.cap //source
tcpdump -n dst host 145.254.160.237 -r http.cap //destination
tcpdump -n udp port 53 -r http.cap //使用udp 53端口就可以把所有的域名查询包显示出来
tcpdump -nX port 80 -r http.cap //十六进制
tcpdump -A -n 'tcp[13] = 24' -r http.cap //筛选tcp包里面的ack和psh包
以上便是我本期介绍的四款现在主流抓包工具的简介,后续会对其进行详细的介绍,有不足的地方还望大家多多交流探讨。