红蓝对抗-AWD全流程攻略04(流量分析)

01 简介

        AWD比赛中我们会进行流量监控,通过linux中的tcpdump进行流量记录,我们记录了流量之后可以对他们的攻击进行分析,我们通过wireshark查看流量包对我们哪里进行了攻击并且对其进行了溯源进行防御并且编写脚本进行得分。

02 工具

Wireshark

Wireshark(前称Ethereal)是一个网络封包分析软件,网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。
        在过去,网络封包分析软件是非常昂贵的,或是专门属于盈利用的软件。Ethereal的出现改变了这一切。在GNUGPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。Ethereal是全世界最广泛的网络封包分析软件之一。

WireShark能干什么:

Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包资料。

WireShark不能干什么:
为了安全考虑,wireshark只能查看封包,而不能修改封包的内容,或者发送封包。

tcpdump

Linux作为网络服务器,特别是作为路由器和网关时,数据的采集和分析是不可少的。TcpDump是Linux中强大的网络数据采集分析工具之一。
用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。

Wirshark 分析

三次握手协议

第一次握手:客户端的应用进程主动打开,并向服务段发出请求报文段。其首部中
SYN=1,seq=x
第二次握手:服务器应用进程被动打开。若同意客户端的请求,则发回确认报文。其首部中:SYN=1,ACK=1,ack=x+1,seq=y
第三次握手:客户端收到确认报文之后,通知上层应用进程连接已建立,并向服务器发出确认报文。其首部ACK=1.ack=y+1

 

过滤规则

 

【过滤IP地址】
(1) ip.addr == 192.168.1.1 //只显示源/目的IP为192.168.1.1的数据包
(2) not ip.src==1.1.1.1//不显示源IP为1.1.1.1的数据包
(3) ip.src == 1.1.1.1 or ip.dst == 1.1.1.2 //只显示源IP为1.1.1.1或目的IP为1.1.1.2的数据包

【过滤端口】
(1) tcp.port eg 80                #不管端口是来源的还是目标的都显示
(2) tcp.port ==80
(3) tcp.port eg 2722
(4) tcp.port eq 80 or udp.port eq 80
(5) tcp.dstport == 80                #只显tcp协议的目标端口80
(6) tcp.srcport  == 80               #只显tcp协议的来源端口80
(7) udp.port eg 15000
(8) tcp.port >= 1 and tcp.port <= 80          #过滤端口范围1-80

【过滤MAC地址】
(1) eth.dst == A0:00:00:04:C5:84                 #过滤目标mac

(2) eth.src eq A0:00:00:04:C5:84                 #过滤来源mac

(3) eth.dst == A0:00:00:04:C5:84

(4) eth.dst == A0-00-00-04-C5-84

(5) eth.addr eq  A0:00:00:04:C5:84       #过滤来源MAC和目标MAC都等于A0:00:00:04:C5:84的

【http请求方式过滤】
(1) http.request.method == “GET"
(2) http.request.method == “POST"
(3) http.host matches "www.baidu.com|baidu.cn        #matches可以写多个域名
(4) http.host contains "www.baidu.com"                     #contains只能写一个域名
(6) http contains "GET" 

(7) http.request.method == "GET" && http contains "Host:"

(8) http.request.method == "GET" && (5) http contains "User-Agent:"

(9) http.request.method == "POST" && http contains "Host: "

(10) http.request.method == "POST" && http contains "User-Agent:"

(11) http contains "HTTP/1.1 200 ОK" && http contains "Content-Type:"

(12) http contains "HTTP/1.0 200 ОK" && http contains "Content-Type:"

 tcpdump 分析

过滤规则

首选介绍一下 tcpdump的常用参数

tcpdump采用命令行方式,它的命令格式为:tcpdump

[-adeflnNOpaStvx] [-c 数量]
[-F 文件名 ] [-i 网络接口 ]
[-r 文件名] [-s snaplen]
[-T 类型 ] [-w 文件名 ] [表达式 ] 

 

tcpdump的选项介绍 (一)
-A                以ASCII格式打印出所有分组,并将链路层的头最小化。
-c                在收到指定的数量的分组后,tcpdump就会停止。

-C               在将一个原始分组写入文件之前,检查文件当前的大小是否超过了参数file_size 中指定的大小。如果超过了指定大小,则关闭当前文件,然后在打开一个新的文件。参数file_ size 的单位是兆字节(是1,000,000字节,而不是1,048,576字节)。
-d                将匹配信息包的代码以人们能够理解的汇编格式给出。

-dd              将匹配信息包的代码以C语言程序段的格式给出。
-ddd            将匹配信息包的代码以十进制的形式给出。
-D               打印出系统中所有可以用tcpdump截包的网络接口。
-e                在输出行打印出数据链路层的头部信息。

tcpdump的选项介绍 (二) 

-E           用spi@ipaddr algo:secret 解密那些以addr作为地址,并且包含了安全参数索引值。
-f            将外部的Internet地址以数字的形式打印出来。
-F           从指定的文件中读取表达式,忽略命令行中给出的表达式。
-i            指定监听的网络接口。
-l            使标准输出变为缓冲行形式,可以把数据导出到文件。
-L           列出网络接口的已知数据链路。
-m          从文件module中导入SMI  MIB模块定义。该参数可以被使用多次,以导入多个MIB模块。
-M          如果tcp报文中存在TCP-MD5选项,则需要用secret作为共享的验证码用于验证TCP-MD5。

 tcpdump的选项介绍 (三) 

-s                从每个分组中读取最开始的snaplen个字节,而不是默认的68个字节。

-T                将监听到的包直接解释为指定的类型的报文,常见的类型有rpc远程过程调用和
snmp(简单网络管理协议)。
-t                 不在每一行中输出时间戳。
-tt                在每一行中输出非格式化的时间戳。
-ttt               输出本行和前面一行之间的时间差。
-tttt              在每一行中输出由date处理的默认格式的时间戳。
-u                输出未解码的NFS句柄。
-v                输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息。
-V               输出详细的报文信息。
-w               直接将分组写入文件中,而不是不分析并打印出来。

例:

  •  tcpdump 写入 1.pacp 

 

  •  监听ens33 网卡 流量写入 2.pacp

  • 监听ens33 网卡 流量写入 3.pacp,数据包不截断,只捕获与端口 22 相关的数据包 
  • 捕获网络接口 ens33 上所有与端口 22 相关的数据包,并将它们保存到 3.pcap 文件中。

 

列举1:(端口过滤)

抓取所有经过 ens33,目的或源端口是22的网络数据:

tcpdump -i ens33 port 22

指定源端口:tcpdump -i ens33 src port 22

指定目的端口:tcpdump-i ens33 dst port 22

列举2:(网络过滤)
tcpdump -i ens33 net 192.168.1.1

tcpdump -i ens33 src net 192.168.1.1

tcpdump -i ens33 dst net 192.168.1.1

列举3:(协议过滤)

tcpdump -i ens33 arp

tcpdump -i ens33 ip

tcpdump -i ens33 tcp

tcpdump -i ens33 udp

tcpdump -i ens33 icmp

 稍后补充分析案例

  • 17
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值