识别操作系统
在确定目标主机在线之后,应当识别他们使用的操作系统。这阶段工作通常称为识别操作系统(也称为操作系统指纹识别)。识别操作系统的方式有三种:主动式和被动式。
主动式识别工具向目标主机发送数据包,并根据目标的响应来确定其使用的操作系统。这种方式的优点在于探测速度快,缺点是目标主机可能会发现我们探测操作系统的行为。
被动式识别方法克服了主动式识别的缺点。Michal Zalewsky是这种探测方式的先驱,他设计的p0f工具率先实现了被动式识别方法。被动式识别方法的缺点是,他比主动式是被方法的识别速度慢。
p0f
p0f采用被动式的方法探测目标主机的操作系统类型。这个工具可以识别一下几种主机:
- 连接到您主机的机器(SYN模式、即默认模式)
- 您主机可以访问的机器(SYN+ACK模式)
- 您主机不能访问的机器(RST+模式)
- 您可以监控到期网络通信的机器
这个程序通过自身发出的TCP数据包分析操作系统的类型。然后,它会统计在默认情况下不会产生的非标准数据包。例如,Linux内核操作系统默认使用64字节的ping数据包,而Windows操作系统则使用32字节的ping数据包。这两个操作系统在TTL值上同样存在差异。Windows发出的数据包,其TTL值是128;而不同版本的Linux操作系统,其数据包的TTL值各有所不同。p0f程序正是根据这些细微的差别识别远程主机的操作系统。
可以在终端输入p0f -h查看它的使用方法:
使用p0f程序识别远程主机的操作系统,可以使用以下命令:
之后你需要使用浏览器来对远程主机进行一个简单的访问,或者你也可以让远程主机来访问你,只有有流量产生即可。
如果p0f成功的是被出远程主机的操作系统,这个程序将会在日志文件p0f.log和屏幕上显示出相关的记录信息。
通过对上面的信息的查看你可以发现相关的操作系统的类型以及版本。
Nmap
Nmap是一款非常受欢迎的功能强大的端口扫描程序。它还能够识别操作系统的操作系统,能够进行主动式的操作系统指纹识别。如需使用操作系统识别功能,只需要在Namp选项中加入“-O”即可!
banner抓取
Banner抓取是最基础,最简单的指纹识别,不需要专门的工具就可以做,操作简单,通常获取的信息也相对准确,banner抓取是应用程序指纹识别而不是操作系统指纹识别。
但是很多网站会修改Banner或者禁止输出Banner。除了web服务器程序,很多FTP、SMTP服务也会返回banner信息。可以用Telnet命令链接端口进行测试。如:
Telnet 《target—IP》《target-Port》