操作系统/服务识别
识别操作系统
通过识别操作系统,可以确定目标主机的系统类型,这样,渗透测试者可以有针对地对目标系统的程序实施漏洞探测,以节省不必要的时间。
1、基于TTL识别
TTL(Time To live,生存时间),该字段指定IP包被路由器抛弃之前允许通过的最大网段数量。其中,不同的操作系统响应的TTL值不同。所以,使用Ping命令进行系统识别。
各个操作系统的初始TTL值列表:
实例1:使用ping测试目标主机:192.168.10.7的操作系统类型
从输出的信息可以看到,响应包中的TTL值为128。由此判断主机为windows系统;
实例2:使用ping测试安装kali的目标主机:192.168.10.207
从输出的信息可以看出,响应ttl64。由此判断主机为Linux系统。
备注:由于本地主机的目标经过的路由器太多,判断的结果可能很不准确。
2、使用NMAP识别
由于TTL只是一种模糊判断,所以得到的结果不一定准确。NMAP工具提供了可以探测操作系统的功能。
语法格式:nmap -O [target]
实例:使用NMAP探测目标主机192.168.10.7的操作系统类型
执行:root@kalitian:~# nmap -O 192.168.10.7
备注:从输出信息可以看到,识别出目标主机的操作系统为 Microsoft Windows 7|2008|8.1,虽然无法确定具体哪个版本,但是显示了更近的系统版本。
服务识别
识别服务主要是探测服务的版本信息。通常情况下,在一些旧版本中可能存在漏洞。如果存在漏洞,用户可以对该主机实施渗透,进而获取其它重要信息。
使用Nmap工具
在Nmap工具中提供了一个-sV选项,可以用来识别服务的版本。使用Nmap识别服务版本的语法格式如下:
nmap -sV [host] -sV表示实施服务版本探测。
实例:识别目标主机:192.168.10.7上的所有开发服务及版本;
以上输出信息中可以看出识别的服务相关信息。在输出的信息中包含4列:分别是PORT(端口)、STATE(状态)、SERVICE(服务)和VERSION(版本)。