工具推荐:网络抓包集合

最近在开发一款小程序,老是有人说有一个小功能的数据不正确,但是自己测试几个账号都是正确的,无法判断是前端的问题还是后端的问题,为了像开发web应用一样调试,便找到了几款款抓包神器。其实还是第一次,感觉是蛮神奇的一个东西。

这么神奇"其实我相信大家很多人都听说过或者使用过,而且这个工具也是黑客或者从事网络工程的工作者必用的工具,它就是"网络抓包工具"。

今天我们就详细介绍一下网络抓包的目的是什么?常用的网络抓包工具有哪些?网络抓包工具的使用方法和技巧!

# 网络抓包目的是什么?

官方定义:抓包(packet capture)就是将发送与接收的进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。

对于白帽子黑客来说抓包的目的就是分析网络报文、定位网络接口问题、分析应用数据接口、学习网络协议,使用抓包工具可以直观的分析出网络数据 。

对于黑帽子黑客来说抓包的目的就更明确了,就是为了寻找漏洞了,黑客首先通过抓包截获数据,提取有价值数据例如数据包里的账号密码、数据包里的应用信息。截获这些数据后可以重新编辑,更改里边的价值信息再转存回去,例如新闻曝光过上海警方就破获了一起特大网络盗窃案,仅仅在半天的时间里,黑客就非法体现金额高达千万,为什么黑客会在这么短的时间里就能非法提现这么多钱呢?原来,黑客寻找到了某理财APP的系统漏洞,利用网络抓包的形式非法修改APP传给后台的数据信息,比如黑客充值1元,利用抓包,把1元改为1000或者更高的数据传给服务器,实际他只充值了1元而已,传给服务器的数据被恶意修改过。

这里还是需要提醒小伙伴们一次,咱们学习的目的一定是为了掌握这门技术,去更好的服务于生活,为社会能够创造正向价值,千万不要走偏往犯罪的道路前行。

# 常用的网络抓包工具有哪些?

1、Wireshark

Wireshark 在Windows、mac、linux都有自己的版本,可谓图形化抓包软件的最为流行的一种,针对黑客,网络管理员和安全工作者都是必备之物。

网络管理员使用Wireshark来检测网络问题,网络安全工程师使用Wireshark来检查资讯安全相关问题,开发者使用Wireshark来为新的通讯协定除错,普通使用者使用Wireshark来学习网络协定的相关知识。

2、tcpdump

tcpdump 可以抓所有层的数据,功能十分强大,tcpdump Linux作为网络服务器,特别是作为路由器和网关时,数据的采集和分析是不可少的。TcpDump是Linux中强大的网络数据采集分析工具之一。用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。作为互联网上经典的的系统管理员必备工具,tcpdump以其强大的功能,灵活的截取策略,成为每个高级的系统管理员分析网络,排查问题等所必备的工具之一。

3、httpwatch

HttpWatch是强大的网页数据分析工具.集成在Internet Explorer工具栏。包括网页摘要、Cookies管理、缓存管理、消息头发送/接受、字符查询。POST 数据和目录管理功能、报告输出。HttpWatch 是一款能够收集并显示深层信息的软件。它不用代理服务器或一些复杂的网络监控工具,就能够在显示网页同时显示网页请求和回应的日志信息。甚至可以显示浏览器缓存和IE之间的交换信息。集成在Internet Explorer工具栏。

4、Burpsuite

目前Web安全渗透,是必须的工具,没有之一,功能十分强大,Burp Suite 是用于攻击web 应用程序的集成平台。它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程。所有的工具都共享一个能处理并显示HTTP 消息,持久性,认证,代理,日志,警报的一个强大的可扩展的框架。

5、Fiddler

目前最常用的web 报文渗透工具,功能十分强大,可以最为本地代理,报文重放等等。Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的"进出"Fiddler的数据(指cookie,html,js,css等文件,这些都可以让你胡乱修改的意思)。Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。

6、Charles

Charles支持抓去http、https协议的请求,不支持socket。使用情况和fiddler基本大同小异。也是很常用的抓包工具。

# 网络抓包工具的使用方法和技巧

由于常用的抓包工具众多,使用方法也很相似这里我只介绍其中大家最常用的Wireshark网络抓包工具的使用方法。

工具,它是功能最全面使用者最多的抓包工具。Wireshark是一个网络封包分析软件。网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。

Wireshark基础架构如下:

具体使用方法如下:

1、界面窗口介绍

WireShark 主要分为这几个界面:

  • Display Filter(显示过滤器), 用于过滤
  • Packet List Pane(封包列表), 显示捕获到的封包, 有源地址和目标地址,端口号。颜色不同,代表
  • Packet Details Pane(封包详细信息), 显示封包中的字段
  • Dissector Pane(16进制数据)
  • Miscellanous(地址栏,杂项)

常用按钮从左到右的功能依次是:

  • 列出可用接口。
  • 抓包时需要设置的一些选项。一般会保留最后一次的设置结果。
  • 开始新的一次抓包。
  • 暂停抓包。
  • 继续进行本次抓包。
  • 打开抓包文件。可以打开之前抓包保存后的文件。不仅可以打开wireshark软件保存的文件,也可以打开tcpdump使用-w参数保存的文件。
  • 保存文件。把本次抓包或者分析的结果进行保存。
  • 关闭打开的文件。文件被关闭后,就会切换到初始界面。
  • 重载抓包文件。

2、点击网络接口,获取报文

点击接口名称之后,就可以看到实时接收的报文。Wireshark会捕捉系统发送和接收的每一个报文。如果抓取的接口是无线并且选项选取的是混合模式,那么也会看到网络上其他报文。

上端面板每一行对应一个网络报文,默认显示报文接收时间(相对开始抓取的时间点),源和目标IP地址,使用协议和报文相关信息。点击某一行可以在下面两个窗口看到更多信息。"+"图标显示报文里面每一层的详细信息。底端窗口同时以十六进制和ASCII码的方式列出报文内容。

需要停止抓取报文的时候,点击左上角的停止按键。

色彩标识

进行到这里已经看到报文以绿色,蓝色,黑色显示出来。Wireshark通过颜色让各种流量的报文一目了然。比如默认绿色是TCP报文,深蓝色是DNS,浅蓝是UDP,黑色标识出有问题的TCP报文——比如乱序报文。

报文样本

比如说你在家安装了Wireshark,但家用LAN环境下没有感兴趣的报文可供观察,那么可以去Wireshark wiki下载报文样本文件。

打开一个抓取文件相当简单,在主界面上点击Open并浏览文件即可。也可以在Wireshark里保存自己的抓包文件并稍后打开。

过滤报文

如果正在尝试分析问题,比如打电话的时候某一程序发送的报文,可以关闭所有其他使用网络的应用来减少流量。但还是可能有大批报文需要筛选,这时要用到Wireshark过滤器。

最基本的方式就是在窗口顶端过滤栏输入并点击Apply(或按下回车)。例如,输入"dns"就会只看到DNS报文。输入的时候,Wireshark会帮助自动完成过滤条件。

也可以点击Analyze菜单并选择Display Filters来创建新的过滤条件。

另一件很有趣的事情是你可以右键报文并选择Follow TCP Stream。

你会看到在服务器和目标端之间的全部会话。

关闭窗口之后,你会发现过滤条件自动被引用了——Wireshark显示构成会话的报文。

检查报文

选中一个报文之后,就可以深入挖掘它的内容了。

也可以在这里创建过滤条件——只需右键细节并使用Apply as Filter子菜单,就可以根据此细节创建过滤条件。

3、应用Wireshark观察基本网络协议

wireshark与对应的OSI七层模型

CP报文:TCP/IP通过三次握手建立一个连接。这一过程中的三种报文是:SYN,SYN/ACK,ACK。这个我之前的文章有讲过就不在陈述过程了,接下来用抓包工具阐述以下过程。

首先打开wireshark, 打开浏览器输入一个网址,然后在wireshark中输入http过滤, 然后选中GET /tankxiao HTTP/1.1的那条记录,右键然后点击"Follow TCP Stream",这样做的目的是为了得到与浏览器打开网站相关的数据包,将得到如下图。

图中可以看到wireshark截获到了三次握手的三个数据包。第四个包才是HTTP的, 这说明HTTP的确是使用TC

ARP & ICMP

开启Wireshark抓包。打开Windows控制台窗口,使用ping命令行工具查看与相邻机器的连接状况。

停止抓包之后,Wireshark如下图所示。ARP和ICMP报文相对较难辨认,创建只显示ARP或ICMP的过滤条件。

ARP报文

地址解析协议,即ARP(Address Resolution Protocol),是根据获取的一个。其功能是:将ARP请求到网络上的所有主机,并接收返回消息,确定目标的物理地址,同时将IP地址和硬件地址存入本机ARP缓存中,下次请求时直接查询ARP缓存。

最初从PC发出的ARP请求确定IP地址192.168.1.1的MAC地址,并从相邻系统收到ARP回复。ARP请求之后,会看到ICMP报文。

ICMP报文

网络控制消息协定(Internet Control Message Protocol,ICMP)用于网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈,通过这些信息,令管理者可以对所发生的问题作出诊断,然后采取适当的措施解决。

PC发送echo请求,收到echo回复如上图所示。ping报文被mark成Type 8,回复报文mark成Type 0。

如果多次ping同一系统,在PC上删除ARP cache,使用如下ARP命令之后,会产生一个新的ARP请求。

HTTP

HTTP协议是目前使用最广泛的一种基础协议,这得益于目前很多应用都基于WEB方式,实现容易,软件开发部署也简单,无需额外的客户端,使用浏览器即可使用。这一过程开始于请求服务器传送网络文件。

从上图可见报文中包括一个GET命令,当HTTP发送初始GET命令之后,TCP继续数据传输过程,接下来的链接过程中HTTP会从服务器请求数据并使用TCP将数据传回客户端。传送数据之前,服务器通过发送HTTP OK消息告知客户端请求有效。如果服务器没有将目标发送给客户端的许可,将会返回403 Forbidden。如果服务器找不到客户端所请求的目标,会返回404。

如果没有更多数据,连接可被终止,类似于TCP三次握手信号的SYN和ACK报文,这里发送的是FIN和ACK报文。当服务器结束传送数据,就发送FIN/ACK给客户端,此报文表示结束连接。接下来客户端返回ACK报文并且对FIN/ACK中的序列号加1。这就从服务器端终止了通信。要结束这一过程客户端必须重新对服务器端发起这一过程。必须在客户端和服务器端都发起并确认FIN/ACK过程。

原文发布于微信公众号 - 风帆(wdswhf)

原文发表时间:2019-09-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券