一文教你怎么搞定流量包(二)

前言

承接第一篇CTF流量分析,中间涉及部分知识内容,顺便自己再熟悉一遍,常规CTF或者说工控流量分析用到的工具wireshark之外似乎不怎涉及,,,

协议

TCP协议

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、可靠的、 基于IP的传输层协议。

OSI七层模型

TCP协议的报文格式

TCP三次握手以及四次挥手,三次握手以及四次挥手首先需要了解这几个概念

  • 第一次握手:客户端发送一个TCP的SYN标志位置1的包指明客户打算连接的服务器的端口,以及初始序号X,保存在包头的序列号(Sequence Number)字段里。
  • 第二次握手:服务器发回确认包(ACK)应答。即SYN标志位和ACK标志位均为1同时,将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即X+1。
  • 第三次握手:客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方。

四次挥手顺序:

  • 第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
  • 第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1,Server进入CLOSE_WAIT状态。
  • 第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
  • 第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手

到这里为止,就直接对接上连载文一的问题一,方便直接确定,简单理解就是

端口开放:
攻击方发送SYN包,受害主机返回SYN ACK 攻击主机发送 ACK,受害主机 返回RST ACK
端口CLOSE
攻击方发送SYN包,受害主机返回RST ACK
可结合文一的数据包来分析。

ARP协议

ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。简单来说就是可以确定主机mac地址的协议。

ARP协议报文格式

图片[1]-一文教你怎么搞定流量包(二)-安全小天地
图片来源于网上老师傅的,其实也无需对报文格式了解,概念本身就比较好理解。

ICMP协议

ICMP 是 TCP/IP 模型中网络层的重要成员,与 IP 协议、ARP 协议、RARP 协议及 IGMP 协议共同构成 TCP/IP 模型中的网络层。ping 和 tracert是两个常用网络管理命令,ping 用来测试网络可达性,tracert 用来显示到达目的主机的路径。

简单理解来说就理解为ping的时候利用的就是ICMP协议。

HTTP协议

HTTP是一个属于应用层的面向对象的协议, HTTP请求由三部分组成,分别是:请求行、消息报头、请求正文,可以根据请求包的内容去理解

HTTP协议的报文格式

涉及工控的部分协议
Modbus协议

直接看该协议的pdf,看的头懵,直接切入重点

具体的交互线圈寄存等也时不大了解,一般牵涉到的这类协议的话,直接用脚本提取应该就行,文末附的有参考链接,内有脚本和原理。

S7comm协议

S7协议基于OSI模型,S7协议包含三部分

Header->Parameter->Data
一般题目中的似乎好像再数据部分吧,,,,,

还有其它协议 MMS协议等等。但是工控类的题目总的来说也有技巧吧。

过滤语法

ip.addr==x.x.x.x 含有地地址x.x.xx
ip.src==x.x.x.x 源地址为x.x.x.x
ip.dst==x.x.x.x 目的地址为x.x.x.x
arp|http|tcp 过滤各类协议
tcp.port == 22 tcp端口为22的流量
http.request.method== “POST” 请求方式为POST的http协议流量
tcp contains “flag” tcp协议中含有字符“flag”,内容过滤
http.request.uri contains “flag” htttp请求中含有字符串

eth.dst == A0:00:00:04:C5:84 // 过滤目标mac
eth.src eq A0:00:00:04:C5:84 // 过滤来源mac
eth.dst==A0:00:00:04:C5:84
eth.dst==A0-00-00-04-C5-84
eth.addr eq A0:00:00:04:C5:84 / / 过滤来源MAC和目标MAC都等于A0:00:00:04:C5:84的

http.request.method == “GET”
http.request.method == “POST”
http.request.uri == “/img/logo-edu.gif”
http contains “GET”
http contains “HTTP/1.”

// GET包
http.request.method == “GET” && http contains “Host: “
http.request.method == “GET” && http contains “User-Agent: “

// POST包
http.request.method == “POST” && http contains “Host: “
http.request.method == “POST” && http contains “User-Agent: “

// 响应包
http contains “HTTP/1.1 200 OK” && http contains “Content-Type: “
http contains “HTTP/1.0 200 OK” && http contains “Content-Type: “

//联合语句
http contains “HTTP/1.0 200 OK” && http contains “Content-Type: “

参考链接

文字来源于- 火线 Zone-云安全社区,安全小天地只做文章分享,如有侵权,请联系站长删除


「渗透云记」公众号里主要记录我每天的所思所想,我会坚持更新质量不错的文章,感兴趣的小伙伴可以扫描下方二维码,谢谢支持! 安全小天地 - 公众号 - 渗透云记
© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容