如何准确的判断目标主机的操作系统?
发布网友
发布时间:2022-03-27 18:20
我来回答
共4个回答
热心网友
时间:2022-03-27 19:50
TTL(Time to Live 生存时间)
TTL是IPv4协议包头中的一个值,它告诉网络路由器包在网络中的时间是否太长而应被丢弃。有很多原因使包在一定时间内不能被传递到目的地。例如,不正确的路由表可能导致包的无限循环。一个解决方法就是在一段时间后丢弃这个包,然后给发送者一个报文,由发送者决定是否要重发。TTL的初值通常是系统缺省值,是包头中的8位的域。TTL的最初设想是确定一个时间范围,超过此时间就把包丢弃。由于每个路由器都至少要把TTL域减1,TTL通常表示包在被丢弃前最多能经过的路由器个数。当记数到0时,路由器决定丢弃该包,并发送一个ICMP报文给最初的发送者。
Windows 95/98中TTL的缺省值为32。有人建议当到达一个节点比较困难时,把此值设为128。ping和tracerouter都使用TTL值以尝试到达给定的主机或跟踪到那个主机的路由。traceroute把包的TTL值设得较小,使它在到达目的的路上被各个路由器连续的丢弃。发出包到受到返回的ICMP报文之间的时间用来计算从一个路由器到另一个路由器的时间。
由于不同的操作系统的默认TTL值不同,因此有文章说可以通过返回的TTL值判断目标系统的类型,这是正确的,但不是TTL的功能,只是对TTL理解的一个应用。TTL的值可以修改。有些特殊的、系统(如NIDS)会定义特殊的TTL值,以拒绝非法访问数据进入。
我们在执行PING命令时可以用-i参数指定TTL值,大家可以将TTL设置为0,则该包将被立即丢弃。
如: ping -i 0 127.0.0.1
指定数据报被路由器丢弃之前允许通过的网段数量。
TTL 是由发送主机设置的,以防止数据包不断在 IP 互联网络上永不终止地循环。转发 IP 数据包时,要求路由器至少将 TTL 减小 1。
使用PING时涉及到的 ICMP 报文类型
一个为ICMP请求回显(ICMP Echo Request)
一个为ICMP回显应答(ICMP Echo Reply)
TTL 字段值可以帮助我们识别操作系统类型。
UNIX 及类 UNIX 操作系统 ICMP 回显应答的 TTL 字段值为 255
Compaq Tru64 5.0 ICMP 回显应答的 TTL 字段值为 64
微软 Windows NT/2K操作系统 ICMP 回显应答的 TTL 字段值为 128
微软 Windows 95 操作系统 ICMP 回显应答的 TTL 字段值为 32
这样,我们就可以通过回显的TTL这种方法来辨别操作系统
LINUX 64
WIN2K/NT 128
WINDOWS 系列 32
UNIX 系列 255
(说明:如果是有意修改了TTL的值,这种办法就不保证了。)
热心网友
时间:2022-03-27 21:08
你可以单击开始按钮,在弹出的开始菜单左侧就是你现在使用的操作系统的名称
热心网友
时间:2022-03-27 22:42
ping 主机的IP地址,看生存周期(TTL)值
但是,管理员会手动修改TTL的,所以不能完全依赖
也可以用抓包器等一些软件
热心网友
时间:2022-03-28 00:34
要是你用的是windows的话,直接右击我的电脑属性就可以查看了
要是LINUX或UNIX的话我就不知道了
一般企业里用的都是LINUX,Unix比较少人用。
LINUX有一个特征就是他的浏览器了,它的浏览器不IE的。