了解TCP URG标志

时间:2014-06-29 13:24:35

标签: tcp flags

我使用Scapy用Python编写了一个简单的portscanner。

我设置Metasploitable并打开多个端口,例如。 21,22,23和8009。

然后我启动了portscan vs那些端口,Scapy告诉我它们已经打开了。

但是,如果我扫描Metasploitable上未打开的端口,我会返回TCP标志20,这是URG TCP标志。这是从URG标志的描述中取出的。

  

URG标志用于通知接收站某些数据   在一个细分市场中是紧急的,应该优先考虑。如果URG标志   设置后,接收站评估紧急指针,为16位   TCP标头中的字段。该指针指示了多少数据   在段中,从第一个字节开始计算是紧急的。

对我来说,紧急数据并没有真正响起。

我不明白为什么我会回到URG旗帜,而且我正在寻求理解为什么我会得到它,即使端口关闭也意味着什么,我可以永远如果端口已打开,则返回URG响应。

1 个答案:

答案 0 :(得分:7)

URG标志用于在TCP连接的第二个通道上发送数据。除非您还要发送数据,否则设置它没有意义。数据将保存在接收端的单独缓冲区中,程序会发出可用的紧急数据信号,并使用特殊标志读取recv系统调用。

AFAIK,唯一使用它的协议是FTP,如果你想在传输过程中发送命令,你可以设置URG标志。假设服务器忙于发送数据而不是监听新命令,但通过设置URG标志,服务器被特殊信号中断。

当然你读得对吗?通常在关闭端口上设置的标志是RST

历史记录:URG标志也是使Windows 95和NT与WinNuke崩溃的原因。