2010-10-18 136 views
2

有人可以告诉我“测试ICMP”的工作原理吗? (在本地网络中检测嗅探的方法之一)嗅探检测

+1

你的措辞对我没有任何意义。也许你可以澄清? – jdizzle 2010-10-18 22:09:00

+0

我听说发送数据包ICMP到怀疑是嗅探器的主机。这个数据包应该有一些变化(MAC地址),但我不确定是什么和为什么。 – Saint 2010-10-18 22:38:32

回答

5

嗅探检测基本上检测网络中是否存在嗅探器。用于检测它们的嗅探器的主要功能是将网卡置于混杂模式,监听所有流量。通常,嗅探器被放置在具有完整TCP/IP堆栈的机器上,该堆栈将受到该模式的影响。

ICMP是ping命令的后面的协议。为了ping一台机器,你发送一个ICMP回应请求包给它,并等待一个ICMP响应。通常,ICMP请求被嵌入在以太网数据包中,并通过网络传送。标准的以太网数据包将包括所寻址网卡的MAC地址以及嵌入式ICMP数据包中该机器的IP地址。数据包将被适当的卡检测到,并且该机器将响应ping。这是标准过程。

现在让我们看看,如果我们用怀疑的嗅探器地址的IP地址,但随着以太网信封不同,错误的MAC地址发送一个数据包ping(ICMP回应请求一个)会发生什么。

  1. 如果嗅探机网卡是上混杂模式,则分组将不由该机器接收。当然,机器不会回应。 ping尝试将失败。

  2. 如果嗅探器中的网卡处于混杂模式,则机器将在网络中看到所有数据包。该机器上的TCP/IP堆栈因此将通过识别接收到的分组IP地址来接受该分组。这个堆栈会发送一个响应。尝试ping成功

与其他检测方法类似,这具有误报和漏报。嗅探机可能被指示忽略所有的ICMP请求。检测混杂模式并不能完全检测嗅探器,尽管这是一个非常重要的线索。

+0

非常感谢。这正是我需要:)你知道也许如何发送这样的icmp数据包(怀疑ip,但不同的,错误的mac地址)在.NET/C#中? – Saint 2010-10-19 06:01:22