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捕获的一个文件。执行命令如下所示:
输出的信息是p0f分析targethost.pcap包的一个结果。该信息中显示了客户端与服务器的详细信息,包括操作系统类型、地址、以太网模式、运行的服务器和端口号等。
注意:p0f命令的v2和v3版中所使用的选项有很大的差别。例如,在p0fv2版本中,指定文件使用的选项是-s,但是在v3版本中是-r。本书中使用的p0f版本是v3。