如何确定远程计算机所用的操作系统

本文由 极客范 - 肖翔 翻译自 LUBOS RENDEK。欢迎加入极客翻译小组,同我们一道翻译与分享。转载请参见文章末尾处的要求。

f1eb0b415f1000a480408388d808db1a

介绍

这个小技巧会告诉你如何使用nmap命令来确定远程计算机所运行的操作系统。如果你要创建你的局域网主机的清单列表,或者你根本不知道某些本地或远程IP地址背后运行的是什么系统,你需要一些提示,此时这个技巧可能会帮上大忙。用nmap命令来完成这项任务并不意味着你能100%准确地识别远程操作系统,但nmap的肯定会为你提供一些相当有用的推断结果。

简单地扫描本地网络

当试图用nmap确定远程主机的操作系统时,NMAP会基于以下各个方面进行推断,例如:基于操作系统默认安装的端口的打开和关闭状态;已经被其他用户提交给nmap数据库的操作系统指纹;MAC地址等。

如果你不知道哪些IP地址活跃在你的网络中,你可以先尝试扫描整个子网。例如,在这里我将扫描本地子网10.1.1.*:

从上面的输出中,我们可以看到当前所有活跃的IP地址,同时也能看到一些特定主机的相关提示。

识别远程主机的操作系统

为了能让nmap做出判断,NMAP至少需要在远程主机上找到一个打开端口和一个关闭端口。基于前面的扫描结果,让我们看看更多有关主机10.1.1.13信息:

输出:

从上面的输出结果我们可以判断,这个特定的主机正在运行某个版本的Linux操作系统。基于SSH的版本,它是最有可能是内核版本为2.6的Debian6(Squeeze),其确切的内核版本最有可能在2.6.32 – 2.6.35之间。

结论

同样的技术也可用于所有在广域网上的远程主机。对系统管理员来说,扫描远程主机的操作系统版本可以带来很多方便。但另一方面,这种技术也可能被黑客滥用。他们可以利用操作系统类型和补丁级别这些准确的信息,针对任何主机实施他们的攻击。这也再次提醒我们要随时保持更新系统的补丁。



原文链接: LUBOS RENDEK 翻译: 极客范 - 肖翔

译文链接: http://www.geekfan.net/7538/

[ 转载请保留原文出处、译者和译文链接。]

肖翔
通信设备软件工程师,擅长于c/c++、Linux、VxWorks、嵌入式、通信等技术领域。喜欢广泛关注IT界和通信界的各类技术和新闻,爱好旅游和各类户外运动。译有《算法精解:C语言描述》(新浪微博:@肖翔Michael

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">