「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「专栏简介」:此文章已录入专栏《网络安全快速入门》
为什么要识别操作系统?
不同的操作系统,同一种操作系统的不同版本,默认开放的服务以及公开的漏洞都是不一样的。
操作系统识别
- 一、手动识别
- 1. 改变大小写
- 2. TTL
- 二、工具识别
- 1. Nmap
- 2. p0f
一、手动识别
通过改变路径大小写和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:
由此可见,Nmap的扫描结果并不是100%正确,但参考性相对来说高一些。
2. p0f
p0f是一款被动指纹识别工具,抓取经过的流量,根据数据包判断操作系统。
在命令行输入 p0f 后回车,进入被动检测状态,然后使用浏览器访问目标网站。
如下图所示,os 这一栏展示 p0f 识别出的操作系统。
p0f 工具也不能保证100%的准确率,大部分识别工具的结果,都只能提供一定的参考价值。
更多推荐
信息收集之 操作系统识别
发布评论