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

运维 系统运维
本文分享的这个小技巧会告诉你如何使用nmap命令来确定远程计算机所运行的操作系统。如果你要创建你的局域网主机的清单列表,或者你根本不知道某些本地或远程IP地址背后运行的是什么系统,你需要一些提示,此时这个技巧可能会帮上大忙。

介绍

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

简单地扫描本地网络

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

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

  1. # nmap -sP 10.1.1.* 
  2. Starting Nmap 6.00 ( http://nmap.org ) at 2013-01-08 08:14 EST 
  3. Nmap scan report for 10.1.1.1 
  4. Host is up (0.0026s latency). 
  5. MAC Address: C4:7D:4F:6F:3E:D2 (Cisco Systems) 
  6. Nmap scan report for 10.1.1.11 
  7. Host is up. 
  8. Nmap scan report for 10.1.1.13 
  9. Host is up (0.0020s latency). 
  10. MAC Address: 00:13:02:30:FF:EC (Intel Corporate) 
  11. Nmap scan report for 10.1.1.14 
  12. Host is up (0.0022s latency). 
  13. MAC Address: A8:26:D9:ED:29:8E (HTC) 
  14. Nmap scan report for 10.1.1.250 
  15. Host is up (0.0041s latency). 
  16. MAC Address: 00:23:EB:71:E0:F6 (Cisco Systems) 
  17. Nmap done: 256 IP addresses (5 hosts up) scanned in 35.37 seconds 

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

识别远程主机的操作系统

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

  1. # nmap -O -sV 10.1.1.13 

输出:

  1. Nmap scan report for 10.1.1.13  
  2. Host is up (0.0073s latency).  
  3. Not shown: 995 closed ports  
  4. PORT     STATE SERVICE              VERSION  
  5. 22/tcp   open  ssh                  OpenSSH 5.5p1 Debian 6+squeeze2 (protocol 2.0)  
  6. 53/tcp   open  domain               ISC BIND 9.7.3  
  7. 80/tcp   open  http                 Apache httpd 2.2.16 ((Debian))  
  8. 111/tcp  open  rpcbind (rpcbind V2) 2 (rpc #100000)  
  9. 3389/tcp open  ms-wbt-server        xrdp  
  10. MAC Address: 00:13:02:30:FF:EC (Intel Corporate)  
  11. Device type: general purpose  
  12. Running: Linux 2.6.X  
  13. OS CPE: cpe:/o:linux:kernel:2.6  
  14. OS details: Linux 2.6.32 - 2.6.35  
  15. Network Distance: 1 hop  
  16. Service Info: OS: Linux; CPE: cpe:/o:linux:kernel  
  17. OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ . 
  18. Nmap done: 1 IP address (1 host up) scanned in 20.57 seconds 

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

结论

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

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

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

责任编辑:黄丹 来源: 极客范儿
相关推荐

2021-06-11 07:26:16

操作系统内存管理Cpu

2020-09-17 13:12:05

阿里云计算机操作系统

2009-06-27 21:43:57

Linux操作系统

2010-11-16 09:44:42

2009-11-23 09:59:08

计算机Linux操作系统

2009-07-09 09:42:33

2009-07-06 09:26:58

Linux微软操作系统

2021-12-08 00:02:46

网络安全计算机

2020-09-18 18:36:39

阿里云2.0云原生物流

2018-01-03 14:26:14

图形界面操作系统计算机

2023-09-05 08:14:47

2023-08-28 08:01:02

2010-04-20 10:12:40

Unix操作系统

2011-03-03 10:48:00

云计算操作系统

2009-09-17 15:50:01

计算机操作系统

2023-01-03 00:00:17

2014-04-10 09:40:51

System 360计算机计算机系统

2015-05-05 15:32:59

linux远程访问windows

2009-06-10 09:26:58

2018-06-12 08:53:38

AI内存系统
点赞
收藏

51CTO技术栈公众号