流量分析如何进行

admin 2023年6月16日17:48:31评论26 views字数 2832阅读9分26秒阅读模式
三次握手&四次挥手

TCP是一种面向连接的单播协议,在发送数据前,通信双方必须在彼此间建立一条连接。所谓的“连接”,其实是客户端和服务器的内存里保存的一份关于对方的信息,如ip地址、端口号等。

TCP可以看成是一种字节流,它会处理IP层或以下的层的丢包、重复以及错误问题。在连接的建立过程中,双方需要交换一些连接的参数。这些参数可以放在TCP头部。

TCP提供了一种可靠、面向连接、字节流、传输层的服务,采用三次握手建立一个连接。采用4次挥手来关闭一个连接。

流量分析如何进行

换个易于理解的视角来看为什么要3次握手。

客户端和服务端通信前要进行连接,“3次握手”的作用就是双方都能明确自己和对方的收、发能力是正常的

第一次握手:客户端发送网络包,服务端收到了。这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。

第二次握手:服务端发包,客户端收到了。这样客户端就能得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的。 从客户端的视角来看,我接到了服务端发送过来的响应数据包,说明服务端接收到了我在第一次握手时发送的网络包,并且成功发送了响应数据包,这就说明,服务端的接收、发送能力正常。而另一方面,我收到了服务端的响应数据包,说明我第一次发送的网络包成功到达服务端,这样,我自己的发送和接收能力也是正常的。

第三次握手:客户端发包,服务端收到了。这样服务端就能得出结论:客户端的接收、发送能力,服务端的发送、接收能力是正常的。 第一、二次握手后,服务端并不知道客户端的接收能力以及自己的发送能力是否正常。而在第三次握手时,服务端收到了客户端对第二次握手作的回应。从服务端的角度,我在第二次握手时的响应数据发送出去了,客户端接收到了。所以,我的发送能力是正常的。而客户端的接收能力也是正常的。

经历了上面的三次握手过程,客户端和服务端都确认了自己的接收、发送能力是正常的。之后就可以正常通信了。

每次都是接收到数据包的一方可以得到一些结论,发送的一方其实没有任何头绪。我虽然有发包的动作,但是我怎么知道我有没有发出去,而对方有没有接收到呢?

而从上面的过程可以看到,最少是需要三次握手过程的。两次达不到让双方都得出自己、对方的接收、发送能力都正常的结论。其实每次收到网络包的一方至少是可以得到:对方的发送、我方的接收是正常的。而每一步都是有关联的,下一次的“响应”是由于第一次的“请求”触发,因此每次握手其实是可以得到额外的结论的。比如第三次握手时,服务端收到数据包,表明看服务端只能得到客户端的发送能力、服务端的接收能力是正常的,但是结合第二次,说明服务端在第二次发送的响应包,客户端接收到了,并且作出了响应,从而得到额外的结论:客户端的接收、服务端的发送是正常的。

TCP连接是双向传输的对等的模式,就是说双方都可以同时向对方发送或接收数据。当有一方要关闭连接时,会发送指令告知对方,我要关闭连接了。这时对方会回一个ACK,此时一个方向的连接关闭。但是另一个方向仍然可以继续传输数据,等到发送完了所有的数据后,会发送一个FIN段来关闭此方向上的连接。接收方发送ACK确认关闭连接。注意,接收到FIN报文的一方只能回复一个ACK, 它是无法马上返回对方一个FIN报文段的,因为结束数据传输的“指令”是上层应用层给出的,我只是一个“搬运工”,我无法了解“上层的意志”

TCPDump

安装

yum install tcpdump

使用

  1. 抓http包

tcpdump -XvvennSs 0 -i eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x4854 -w /tmp/capture.pcap

流量分析如何进行

  1. 通过网卡eth1来监听端口80发出去的host包到192.168.109.8的报文

tcpdump -i eth1 port 80 and dst host "192.168.109.8"

  1. 任意网卡目标是192.168.109.*的 80端口数据

/usr/local/sbin/tcpdump -i any port 80 and dst host "192.168.109.*" -w /tmp/capture.pcap

  1. 加上源地址IP

tcpdump -i any -p -s 0 port 80 and dst host "192.168.109.*" and src host "10.70.32.**" -w /tmp/capture.pcap

将数据包下载到本地,使用wireshark分析

流量分析如何进行

可以分析

流量分析如何进行

TCP Flag

TCP flag 位含义 作用:标识当前TCP报文特殊作用。

  • Fin位:发送端完成发送任务,并要求释放连接。
  • RST位:重建连接标识,有错误,需释放连接然后重建。
  • ACK位:确认程序号有效 SYN位:同步序号,用来发起一个连接请求
  • PSH位:尽快将报文交给APP,而不必等待缓冲区满
  • URG位:紧急指针位,置1时表示Urgent Pointer字段有效。紧急指针有效标识。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。
  • ECE位: ECN表示Explicit Congestion Notification。表示TCP peer有ECN能力。
  • CWR:位:发送者在接收到一个带有ECE flag包时,将会使用CWR flag Urgent Pointer字段:紧急指针,只有当URG标志置1时紧急指针才有效。TCP的紧急方式是发送端向另一端放送紧急数据的一种方式。紧急指针指出在本报文段中紧急数据共有多少个字节。

流量分析

https://security-1258894728.cos.ap-beijing.myqcloud.com/writeup/wireshark/webshell.pcap

将http导出为php,然后去分析包

流量分析如何进行

流量分析如何进行

流量分析如何进行

导出后逐渐分析每个文件,会在config(25).php中发现敏感操作,类似于压缩文件包的操作

流量分析如何进行

继续往下分析包,找他有没有下载嘛,发现config(31).php文件最大嘛,改后缀名,改成.rar,打开后发现有密码,再返回去看他是怎么压缩的包嘛,看看他有没有设置密码

流量分析如何进行

响应包是config(25).php,那么请求包盲猜24呗,打开后发现是url编码了,解码看一下

流量分析如何进行

流量分析如何进行

发现他做了base64_encode嘛,那我们将每一个值都解码一下呗,发现z2解码后是命令

流量分析如何进行

cd /d "c:inetpubwwwroot"&C:progra~1WinRARrar a C:Inetpubwwwrootbackupwwwroot.rar C:Inetpubwwwrootbackup1.gif -hpJJBoom&echo [S]&cd&echo [E]

查找帮助文档,发现-hp是设置密码,那么JJBoom就是密码呗

流量分析如何进行

解压出来之后发现,是个gif图,但是打不开

流量分析如何进行

拖进010查看一下发现文件头是mdmp

流量分析如何进行

将后缀名改为mdmp,不知道mdmp是啥,Google一下

流量分析如何进行

进去搜一下mdmp

流量分析如何进行

那就跟着教程走嘛,发现分析出来的是某一台机器的账号密码

流量分析如何进行

流量分析如何进行

原文始发于微信公众号(巢安实验室):流量分析如何进行

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年6月16日17:48:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   流量分析如何进行https://cn-sec.com/archives/1809567.html

发表评论

匿名网友 填写信息