【问题标题】:Understanding TCP URG flag [closed]了解 TCP URG 标志 [关闭]
【发布时间】:2014-06-29 13:24:34
【问题描述】:

我使用 Scapy 用 Python 制作了一个简单的端口扫描器。

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

然后我对这些端口启动端口扫描,Scapy 确实告诉我它们是打开的。

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

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

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

我不明白为什么我会收到 URG 标志,我正在寻求了解我收到它的原因,即使端口已关闭,这意味着什么,我可以永远如果端口打开,则返回 URG 响应。

【问题讨论】:

标签: tcp flags


【解决方案1】:

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

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

你确定没看错?通常在关闭端口上设置的标志是RST

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

【讨论】:

  • 我安装了 metasploitable linux dist 并使用 NAT 启动它。我没有做任何事情。每个 mashine 都在 VM-ware 中运行。我尝试了几种不同的代码块,但我无法得到不同。所以我 100% 确定我做对了 :-)
  • 哦,您看到的是十进制 20,而不是十六进制。所以有点0x100x4,也就是ACK|RST
  • Yes ofc .. 你是对的.. 它返回 0x14 已关闭.. 新语言等于忘记基本内容.. 谢谢 ;)
  • telnet 也使用紧急标志。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-18
  • 2019-08-19
  • 2017-03-07
  • 2018-08-10
  • 1970-01-01
  • 2012-04-13
  • 2021-12-25
相关资源
最近更新 更多