欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

恶意流量分析实践系列一

来源:本站整理 作者:佚名 时间:2020-03-11 TAG: 我要投稿

最近研究恶意流量分析,网上似乎相关的文章不多,而且能讲清楚为什么的也近乎没有,这次借完成报告的机会,写几篇相关文章系列,希望能以初学者的视角,探索流量分析中的奥秘,来发掘恶意流量的行为模式。本系列分析的PCAP包均来至于malware-traffic-analysis.net(除非有特殊说明)。点这里下载PCAP 提取码:fnuf
 
从TCP到HTTP
我们使用WireShark打开本次分析的PCAP包,先输入TCP过滤如下图:

这里我们先简单回忆部分TCP协议知识点:
SYN:同步标志FIN: 关闭标志ACK: 响应标志PSH: DATA传输标志RST: 链接重置标志Seq: 序列号Ack: 确认号Len: 携带数据长度
在Flags字段可以清楚的观察到所有属性值,如同:

我们可以很清楚的体现出一次一次http从链接到关闭的完整过程:首先是三次握手,之后客户端发起一次TCP请求即是HTTP请求,实际上就是GET一次,GET这一行实际上属于他上面一个的TCP中,我们可以观察这两行的值


之后随机服务器返回一次TCP,Ack=594,实际是由客户端上一次请求时Len+1所得,并非是随机生成,同时自身携带Len=762长度的data,客户端收到数据后发送一个关闭请求,其中Seq=594,Ack为服务端之前返回的Len+1即为763,之后服务端发送Seq=763,Ack=595的确认关闭包,完成后发送一次关闭链接的包,最后由客户端发送一个Seq=595,Ack=764的确认包,一次HTTP结束,这其中实际上HTTP就是被封装在一次TCP中,由此我们可以很清楚的看出TCP协议主要作用于链接通信过程(所以称TCP为传输层协议),而发送的数据主要被封装在HTTP协议中便于客户端和服务器打包以及解析(所以称为应用成协议),因为其定义数据报文格式便于解析,所以被广泛应用,但其缺点也体现出来,每一次CS(客户端服务端)交互都是一次TCP建立,到关闭的过程,实际上当大量请求作于服务器时,会极其消耗其资源,所以便提出长连接,以及由其发展出的WebSocket技术,之后有机会在做介绍,在实际应用开发过程中,基本每种语言都给我们提供了socket API(套接字编程),这极大的简化了开发者的开发网络应用的周期,特别是各种应用框架的诞生,又更进一步减轻了开发网络应用的学习成本,Python的Flask,Sanic, Django等,这里不做详细介绍,后面有机会在出专题系列,对了值得一提的还有一种RPC开发模式,gRPC等一类用于使用该模式快速开发的玩意才属于框架,扯远了。
回归正题,上面我们简要分析一次完整的HTTP协议,剩余的可以自行了解HTTP协议细节,我们之后的分析多为恶意流量分析的实践,遇到新的协议,我也会做一下分析。
 
HTTP前奏DNS
当我们直接打开该PCAP包时,不做过滤时,在最开头可以看见两行DNS如图:

DNS简要分析
首先我们选中第一行,查看其协议属性

可以发现DNS协议的下层协议为UDP传输协议,UDP和TCP的最大区别可以理解为UDP只管发送,不用考虑是否发送成功,TCP则需要考虑是否发送成功,不成功则重发的机制,DNS协议开头为Transaction ID为标识字段,2字节,用于辨别DNS应答报文是哪个请求报文的响应Flags标志位有如下属性:
QR: 查询/响应,1为响应,0为查询Opcode: 查询或响应类型,这里0表示标准,1表示反向,2表示服务器状态请求AA: 授权回答,在响应报文中有效,待会儿再看TC: 截断,1表示超过512字节并已被截断,0表示没有发生截断RD: 是否希望得到递归回答RA: 响应报文中为1表示得到递归响应zero: 全0保留字段Questions: (问题数),2字节,通常为1Answer RRs: (资源记录数),Authority RRs(授权资源记录数),Additional RRs(额外资源记录数)通常为0字段Queries为查询或者响应的正文部分,分为Name Type ClassName (查询名称):这里是ping后的参数,不定长度以0结束Type (查询类型):2字节,这里是主机A记录.其各个取值的含义如下:

助记符
说明
1
A
IPv4地址
2
NS
名字服务器
5
CNAME
规范名称。定义主机的正式名字的别名
6
SOA
开始授权。标记一个区的开始
11
WKS
熟知服务,定义主机提供的网络服务
12
PTR
指针。把IP地址转化为域名
13
HINFO
主机信息,给出主机使用的硬件和操作系统的表述
15
MX
邮件交换。把邮件改变路由送到邮件服务器
28
AAAA
IPv6地址
252
AXFR
传送整个区的请求
255
ANY
对所有记录的请求
Class :2字节,IN表示Internet数据,通常为1
在上图我们可以发现Queries 中查询的域名为:va872g.g90e1h.b8.642b63u.j985a2.v33e.37.pa269cc.e8mfzdgrf7g0.groupprograms[.]in
我们在来看看192.168.138.2(看IP,其属于本地域名服务器)返回的应答,其中在Answers字段返回了Address值为:62.75.195.236,即是上方域名的地址,也就是之后客户发起HTTP请求的目标服务器地址,如下图:

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载