4.5 系统指纹识别

现在一些便携式计算机操作系统使用指纹识别来验证密码进行登录。指纹识别是识别系统的一个典型模式,包括指纹图像获取、处理、特征提取和对等模块。如果要做渗透测试,需要了解要渗透测试的操作系统的类型才可以。本节将介绍使用Nmap工具测试正在运行的主机的操作系统。

4.5.1 使用Nmap工具识别系统指纹信息

使用Nmap命令的-O选项启用操作系统测试功能。执行命令如下所示:

root@kali:~# nmap -O 192.168.41.136
Starting Nmap 6.40 ( http://nmap.org ) at 2014-04-19 19:20 CST
Nmap scan report for www.benet.com (192.168.41.136)
Host is up (0.00045s latency).
Not shown: 996 closed ports
PORT     STATE SERVICE
22/tcp  open ssh
53/tcp  open domain
80/tcp  open http
111/tcp open rpcbind
MAC Address: 00:0C:29:31:02:17 (VMware)  //MAC地址
Device type: general purpose
Running: Linux 2.6.X|3.X
OS CPE: cpe:/o:linux:linux_kernel:2.6 cpe:/o:linux:linux_kernel:3  //操作系统类型
OS details: Linux 2.6.32 - 3.9
Network Distance: 1 hop

OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 2.18 seconds

输出的信息显示了主机192.168.41.136的指纹信息,包括目标主机打开的端口、MAC地址、操作系统类型和内核版本等。

4.5.2 指纹识别工具p0f

p0f是一款百分之百的被动指纹识别工具。该工具通过分析目标主机发出的数据包,对主机上的操作系统进行鉴别,即使是在系统上装有性能良好的防火墙也没有问题。p0f主要识别的信息如下:

  • 操作系统类型;
  • 端口;
  • 是否运行于防火墙之后;
  • 是否运行于NAT模式;
  • 是否运行于负载均衡模式;
  • 远程系统已启动时间;
  • 远程系统的DSL和ISP信息等。

使用p0f分析Wireshark捕获的一个文件。执行命令如下所示:

100-01101-01

输出的信息是p0f分析targethost.pcap包的一个结果。该信息中显示了客户端与服务器的详细信息,包括操作系统类型、地址、以太网模式、运行的服务器和端口号等。

101-02注意:p0f命令的v2和v3版中所使用的选项有很大的差别。例如,在p0fv2版本中,指定文件使用的选项是-s,但是在v3版本中是-r。本书中使用的p0f版本是v3。