【发布时间】:2011-11-11 22:44:05
【问题描述】:
我想识别其源 IP 地址被伪造的 UDP 或 TCP 数据包。我的猜测是,即使数据包是用具有 hping 的程序伪造的,所有伪造数据包的 MAC src 地址仍然相同,这是正确的吗?
如果我的想法不正确,我该如何识别这些被伪造的数据包,并且看起来每个数据包都有不同的来源?
谢谢。
【问题讨论】:
标签: networking tcp udp spoofing
我想识别其源 IP 地址被伪造的 UDP 或 TCP 数据包。我的猜测是,即使数据包是用具有 hping 的程序伪造的,所有伪造数据包的 MAC src 地址仍然相同,这是正确的吗?
如果我的想法不正确,我该如何识别这些被伪造的数据包,并且看起来每个数据包都有不同的来源?
谢谢。
【问题讨论】:
标签: networking tcp udp spoofing
MAC 地址也可以伪造。
使用 TCP,很容易识别/处理这个问题。您将使用 SYN-ACK 回复虚假的 SYN 数据包。如果它是一个真正的客户端,它会回复一个 ACK 来完成握手。唯一需要注意的是,您必须实现 syn-cookie,这样您就不会在等待 ACK 时创建状态并耗尽资源。
对于 UDP,没有办法知道,因为协议是无连接的。如果您向虚假数据包发送回复,则不能保证“真实”客户端的回复。所以没有办法辨别真假。
【讨论】:
在我看来,UDP 和 TCP 与此无关。您只谈论第 2 层 (MAC) 和第 3 层 (IP)。即使那样,您也无法知道,因为源 MAC 地址应该是离接收者最近的路由器的地址(假设数据包不是来自您的子网。)所以您应该看到大多数情况下相同的 MAC 地址入站数据包(同样,仅限互联网流量)。
现在有像 p0f 这样的分析工具可以处理数据包的签名,您可以尝试根据该信息进行一些启发式分析,但无法确定非常具体的内容。
【讨论】:
您可以从数据包中获取最近节点的 MAC 地址。是的,您可以将 ACK 数据包发送到虚假源地址(IP),然后使用 Traceroute 命令知道源数据包的路径,这样您至少可以找到原始数据包的位置。它在 TCP 中运行良好,您也可以得到确认。
【讨论】: