操作系统识别
一、手动识别
通过改变路径大小写和Ping命令,可以粗略的区分操作系统。
1. 改变大小写
Windows系统不区分大小写,Linux系统区分大小写。
根据这个特点,在地址栏中改变路径的大小写,如果页面不受影响,就是Windows系统;如果页面变成找不到,就是Linux系统。
1)比如这个网站:
将地址栏中的路径由小写改为大写,页面不受影响,说明网站不区分大小写,是Windows系统。
2)再看下面这个网站:
将地址栏中的路径由大写改为小写,页面变成了404,说明网站区分大小写,是Linux系统。
2. TTL
TTL(Time To Live)是IPv4请求包的一个字段,用来表示IP数据包在网络中可以转发的最大跳数(最大255)。
其中Windows系统的默认TTL是128,Linux系统的默认TTL是64,我们可以通过TTL来判断目标的操作系统。
1)直接ping目标网站,如果TTL在65~128之间,说明是Windows系统.
下面是我ping的本网段的Windows系统,由于没有出网络,ttl没有减少,是128。
2)如果TTL在1~64之间,说明是Linux系统。
下面是我ping的本网段的Linux系统,由于没有出网络,ttl没有减少,是64。
TTL只能粗略的判断操作系统,但不能判断出操作系统的版本。
由于TTL的默认值可以被修改,所以根据TTL值判断的操作系统类型只能作为一个参考。
二、工具识别
1. Nmap
Nmap(Network Mapper)是一个网路探测和嗅探工具,根据特征行为指纹匹配特征库,来判断操作系统及版本;
-O参数可以扫描目标网站的操作系统。
语法:nmap -O IP
1)我们去网上找个网站测试一下,从下图中的扫描结果中可以发现,目标网站是Linux系统,版本大概是2.4或者2.6之间。
值得一提的是,我们用 ping 命令再来测试这个网站的操作系统,根据TTL(128)判断是Windows系统,如下图:
很明显,目标主机修改了TTL的默认值,这也说明,根据TTL判断操作系统很容易被欺骗。
2)我们再拿自己的虚拟机来测试一下,从下图中可以发现,nmap扫描的结果是win XP、win 7 或 win2012:
实际上我的虚拟机是 win 10: