我正在研究一个人如何检测另一台机器是运行Windows还是Linux,如果它运行在虚拟机器内,如果它在NAT \ proxy \ VPN后面,那么什么不是。 我看到了一些有趣的工具,比如 p0f ,它可以进行被动检测。 基本上,我知道TCP和其他底层协议存在实现差异,更不用说Windows上而不是Linux上存在的应用程序级别的东西,但是我找不到任何东西,更糟糕的是,我真的不知道要查找哪些术语在谷歌。
您是否有链接或教程解释要检测哪些内容以区分Linux和Windows?
答案 0 :(得分:1)
这不是我掌握了很多知识的主题,而是尝试寻找“TCP堆栈指纹”,并查看nmap的源代码。我相信nmap能够使用堆栈指纹识别,它涉及测试TCP实现的差异,以便尝试确定主机上的环境。
我没有在很大程度上使用过nmap,所以我不能保证它的实现的质量或准确性,但源代码可用。
对于网络,Web浏览器之间的差异相当广泛。浏览器之间差异的一个例子是创建XmlHttpRequest对象的方式。通过尝试以不同方式实例化XmLHttpObject并测试哪些成功,您可以确定运行代码的浏览器或JavaScript引擎。
答案 1 :(得分:0)
以前都做过。如何从nmap开始?
答案 2 :(得分:0)
答案 3 :(得分:0)
Nmap -O非常适合通过探测来检测系统操作系统。
p0f是另一个可以在侦听器模式下设置的工具,可以检测与您建立连接的系统上的操作系统。