大东话安全实战篇——Wireshark数据抓包分析之传输层协议(TCP协议)

发表于:2018-09-21 15:34:02 来源:  合天网安实验室 阅读数(0人)

一 小白剧场


小白:每每看到身边的怪咖使的那些奇技淫巧,我就羡慕嫉妒。


大东:又咋啦?


小白:一次我的女神有个文件弄丢了,我特意学了一招文件还原,还没来得及在女神面前秀一下,今天又被别人抢了风头,好气哇。


大东:学艺切忌心浮气躁,如果你抱着耍帅的目的来学技术,那只会停留在花拳绣腿的水平。


小白:让东哥见笑了。我会心无旁骛,安心修炼。


大东:你刚说了文件还原是吧。今天再续你一层功力,教你分析TCP协议。


小白:还是利用wireshark工具进行TCP协议分析么?


大东:对。Wireshark是一个很出名的数据包分析工具。这个工具在过去几年获得过多个奖项,它是观察TCP/IP异常流量的最佳方法。


二 实战前的准备


大东:要学好今天的实验,还有一些预备知识要考考你。


小白:嗯嗯,请出题。


大东:貌似有备而来啊。好,讲讲你所知道的TCP协议。


小白:使用TCP协议传输数据更安全,因为通信双方拥有一个专属的通信通道,每发送一个数据包都有确认回复,若数据包丢失。如果发送放没收到确认包,就可以重发这个数据包。


大东:没错。最经典的例子就是三次握手。


小白:我知道!三次握手是通信双方建立TCP连接前的必须步骤。第一次握手时请求方向接收方发送友好问候,请求建立连接。第二次握手接收方礼貌回复,表示收到请求。第三次握手请求方坚定交往信息,向接收方表示已做好了连接准备。于是双方的TCP连接就建好啦~


大东:很好。完成三次握手后,双方就可以开始传输数据了。当然,握手很严谨,说再见也是一丝不苟的。详细内容可以在合天网安实验室里搜索《Wireshark数据抓包分析之传输层协议(TCP协议)》了解。下面开始实战。


三 握手与再见


大东:根据合天网安实验室已经搭建好的实验环境,本次实战步骤如下:


1.在测试环境使用发包工具和Wireshark抓取TCP三次握手和四次断开的数据包


2.详细分析TCP协议的三次握手以及四次断开。


小白:我。。说的明明都是中文,为啥我就没听懂呢?


大东:翻译成人话,本次懂任务可以拆分成:安装发包工具,配置TCP客户端(请求方),服务端(接收方),与学习Wireshark软件懂使用。


小白:噢~那咱开始吧~


大东:我们使用" TCP&UDP测试工具"来制作和发送TCP数据包,双击实验机器桌面的" TCP&UDP测试工具",会出现下图显示页面:




小白:已双击~


大东:下面我们需要配置TCP的服务端以及客户端。首先配置服务器端:选择地址为10.1.1.33的机器,双击桌面的" TCP&UDP测试工具",右键点击服务器模式,在下拉列表中,选择创建服务器,如下图:




选择"创建服务器"之后,会弹出服务器端口设置,本次使用默认工具给的6000端口即可,点击"确定"按钮。




点击"确定"按钮之后,在左侧的服务器模式列表中,会出现创建的列表,选择我们创建的服务器,右键点击,选择"启动服务器",即完成了服务器端的配置。




小白:顺利完成~


大东:接下来配置客户端,步骤与前面的类似:选择地址为10.1.1.142的机器,双击桌面的" TCP&UDP测试工具",右键点击客户端模式,在下拉列表中,选择"创建连接",如下图:




在弹出的窗口中,选择TCP协议,服务器IP为10.1.1.33.端口6000,本机随意IP,如下图:




点击创建后,如下图:




小白:配置好啦~


大东:那么我们看看Wireshark软件获取到的客户端与服务器端之间发送到TCP数据包吧。


小白:摩拳擦掌!


大东:获取的TCP协议的数据包分为两部分,即TCP三次握手,四次断开的数据。在实际的操作中,我们往往还会抓到除了目标地址之外往来到数据包,因此先使用过滤器过滤一下IP源,方便我们查看。


小白:好的!


大东:那操作来咯:启动Wireshark,在Filter中输入tcp,点击Apply会看到很多的数据包,这是因为测试环境中,有很多的应用程序,与其服务器连接,使用TCP协议。如下图:




在这里,我们已知两台机器的IP情况下,可以在filter中输入"ip.addr == 10.1.1.142 and ip.addr == 10.1.1.33"来过滤出我们想要的数据,点击工具中的"连接"按钮。如下图:




小白:wow~真的呢~


大东:




在上图中,70,73,74帧是tcp的三次握手,428,429,430,431帧是四次断开的数据。


四 分析握手


大东:通过前面到工作,我们已经找到了想要的数据包,接下来我们将对TCP的三次握手进行详细分析。


小白:来吧~


大东:首先我们看TCP包的首部。TCP首部的通用格式如下图所示:




在上面的图中,标出了每一个字段,咱今天就说说比较重要的源端口、目标端口、标记。


小白:看不懂啊~


大东:别急。源端口表明了发送方的输出端口号。目标端口表示数据包进入接收方的端口号端口对上了,才能正确地将数据包传达。标记用来表示所传输的TCP数据包类型,包括URG、ACK、PSH、RST、SYN和FIN,其中SYN表示同步序号,使用在建立连接时;ACK是确认标志,表示应答域有效,就是前面所说的接收方对请求方的问候表示礼貌致意;FIN表示发送端以及达到数据末尾,此时双方就准备挥手告别了。


小白:明白了!


大东:那么接下来咱具体分析下三次握手。


小白:干货来了!


大东:TCP第一次握手,捕获的数据包信息如下所示:




从Wireshark的Packet List面板中的Info列可以看到显示的TCP标志位是SYN,所以该数据包是客户端向服务器发送的第一次握手连接。在Packet Details面板中,显示了该包的详细信息,下面详细介绍。




以上信息,表示该包的大小为62个字节。




以上内容表示源IP是10.1.1.142,目的IP为10.1.1.33。




以上内容是传输层首部的详细信息,这里使用TCP协议,其中源端口为56678,目标端口为6000。


更多详细的信息,可以进入合天实战实验课程查询。


小白:噢~原来是这样~


大东:接下来是第二次握手,TCP第二次握手捕获数据包相信信息,如下:




在该界面显示了第二次握手数据包的详细信息,其中位于TCP上面的信息与第一次握手时相类似,留给小白你课后照着上面的分析独立思考。


小白:保证搞定~


大东:同样地,第三次握手你也一定没问题,看下图:




小白:于是这样就完成了TCP连接的建立啦~


五 再来看看再见


大东:TCP的四次断开,也是TCP协议的主要工作之一。


小白:那咱也看看四次分手,偶不,四次断开~


大东:TCP第一次断开连接的数据包如下:




在该界面显示了TCP第一次断开,数据包的详细信息,是不是和握手时的数据包很像?


小白:真的很像!


大东:这里可以看到客户端向服务器发送FIN和ACK标志的数据包开始断开连接,其中FIN和ACK标志位都为1。


小白:FIN是1表示要分手啦~


大东:在TCP第二次断开连接的数据包是服务器向客户端发送的ACK包,其中ACK标志位为1。




TCP第三次断开连接的数据包是服务器向客户端发送的FIN和ACK包。其中FIN和ACK标志位为1。




TCP第四次断开连接的数据包,客户端向服务器发送ACK的包。其中,ACK标志位都为1。




小白:噢,三次握手和四次断开,让我回去再上个实验课程细细回味下!


六 大东鸣金


小白:不得不说,这次实验的信息量有点大呢,比之前的内容要多不少!


大东:确实,本次实验内容较为详细,从TCP由来,端口,握手,断开等几个方面介绍,要多复习一下哦!


小白:这次实验确实很有价值,相比于UDP协议,TCP协议在安全性上提升了很多,加强了我的网络安全意识呢!


大东:是的,网络安全十分重要,所以我们每一个环节都要保证安全。


小白:感谢大东这次的实战讲解,我回去要好好巩固!


大东:加油!虽然本次实验介绍的仅仅是TCP协议,但是内容较多,你要好好理解和学习。


相关新闻

大家都在学

课程详情

信息安全意识教育

课程详情

小白入门之旅

课程详情

信息安全基础