0

我正在研究有人如何检测另一台机器是在运行 Windows 还是 Linux,它是否在虚拟机中运行,是否在 NAT\proxy\VPN 后面等等。我看到了一些有趣的工具,比如p0f,它可以进行被动检测。基本上,我知道 TCP 和其他底层协议在实现上存在差异,更不用说 Windows 而不是 Linux 上存在的应用程序级别的东西,但我找不到任何东西,更糟糕的是,我真的不知道该看什么术语在谷歌中。

您是否有链接或教程来解释如何检测以区分 Linux 和 Windows?

4

4 回答 4

1

这不是我知识渊博的主题,但尝试查找“TCP 堆栈指纹”并查看nmap的源代码。我相信 nmap 能够使用堆栈指纹识别,这涉及测试 TCP 实现中的差异,以便尝试确定主机上的环境。

我没有在很大程度上使用 nmap,所以我不能保证它的实现的质量或准确性,但源代码是可用的。

对于 Web,Web 浏览器之间的差异有相当广泛的记录。浏览器之间差异的一个示例是创建 XmlHttpRequest 对象的方式。通过尝试以不同方式实例化 XmLHttpObject 并测试哪些方式成功,您可能能够确定运行代码的浏览器或 JavaScript 引擎。

于 2010-08-11T12:34:52.570 回答
0

这一切都是以前做过的。从nmap开始怎么样?

于 2010-08-11T12:32:18.103 回答
0

这里 - http://nmap.org/book/osdetect.html

于 2010-08-11T12:51:38.393 回答
0

Nmap -O 非常适合通过探测来检测系统操作系统。

p0f是另一个可以在侦听器模式下设置的工具,它可以检测与您建立连接的系统上的操作系统。

于 2011-02-18T09:58:06.470 回答