根据TTL判断主机的 *** 作系统是什么?

根据TTL判断主机的 *** 作系统是什么?,第1张

什么是TTL

TTL(Time To Live,生存时间)是IP协议包中的一个值,当我们使用Ping命令进行网络连通测试或者是测试网速的时候,本地计算机会向目的主机发送数据包,但是有的数据包会因为一些特殊的原因不能正常传送到目的主机,如果没有设置TTL值的话,数据包会一直在网络上面传送,浪费网络资源。数据包在传送的时候至少会经过一个以上的路由器,当数据包经过一个路由器的时候,TTL就会自动减1,如果减到0了还是没有传送到目的主机,那么这个数据包就会自动丢失,这时路由器会发送一个ICMP报文给最初的发送者。举个例子,如果一个主机的TTL是64,那么当它经过64个路由器后还没有将数据包发送到目的主机的话,那么这个数据包就会自动丢弃。

如何通过TTL来判断目的主机的 *** 作系统类型

不同的 *** 作系统的默认TTL值是不同的, 所以我们可以通过TTL值来判断主机的 *** 作系统,但是当用户修改了TTL值的时候,就会误导我们的判断,所以这种判断方式也不一定准确。下面是默认 *** 作系统的TTL:

WINDOWS NT/2000 TTL:128

WINDOWS 95/98 TTL:32

UNIX TTL:255

LINUX TTL:64

WIN7 TTL:64

我们先来看两个例子:

例1:

D:\Documents and Settings\hx>ping 61.152.93.131

Pinging 61.152.93.131 with 32 bytes of data:

Reply from 61.152.93.131: bytes=32 time=21ms TTL=118

Reply from 61.152.93.131: bytes=32 time=19ms TTL=118

Reply from 61.152.93.131: bytes=32 time=18ms TTL=118

Reply from 61.152.93.131: bytes=32 time=22ms TTL=118

Ping statistics for 61.152.93.131:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss

Approximate round trip times in milli-seconds:

Minimum = 18ms, Maximum = 22ms, Average = 20ms

例2:

D:\Documents and Settings\hx>ping 61.152.104.40

Pinging 61.152.104.40 with 32 bytes of data:

Reply from 61.152.104.40: bytes=32 time=28ms TTL=54

Reply from 61.152.104.40: bytes=32 time=18ms TTL=54

Reply from 61.152.104.40: bytes=32 time=18ms TTL=54

Reply from 61.152.104.40: bytes=32 time=13ms TTL=54

Ping statistics for 61.152.104.40:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss

Approximate round trip times in milli-seconds:

Minimum = 13ms, Maximum = 28ms, Average = 19ms

上面的两个例子中,例1里面的TTL值是118,比较接近128,所以我们可以初步判断这台机洞明器的 *** 作系统是Windows *** 作系统,128-118=10,所以它经过了10个路由器(不正颤纤包含本机路由器)到达目的主机。在例2中我们可以看到TTL值是54,比较接近64,所以可以判断出这台机器使用的是Linux的 *** 作系统,64-54=10,所以一共经过了10个路由器(不包含本机路由器)。有人也许会问为什么第二个例子举仿中不认为它的TTL默认值是128,然后经过了74个路由器,所以128-74=54呢?首先,路由器在选择路径的时候会选择最佳的路由路径,当然,如果你想知道它经过了哪些路由器的话,可以使用cmd命令里面的tracert命令来查看,详情如下:

D:\Documents and Settings\hx>tracert 61.152.104.40

Tracing route to 61.152.104.40 over a maximum of 30 hops

1 13 ms 16 ms 9 ms 10.120.32.1

2 9 ms 9 ms 11 ms 219.233.244.105

3 12 ms 10 ms 10 ms 219.233.238.173

4 15 ms 15 ms 17 ms 219.233.238.13

5 14 ms 19 ms 19 ms 202.96.222.73

6 14 ms 17 ms 13 ms 202.96.222.121

7 14 ms 15 ms 14 ms 61.152.81.86

8 15 ms 14 ms 13 ms 61.152.87.162

9 16 ms 16 ms 28 ms 61.152.99.26

10 12 ms 13 ms 18 ms 61.152.99.94

11 14 ms 18 ms 16 ms 61.152.104.40

Trace complete.

我们可以看到,如果不包含本机路由的话(第一个路由地址10.120.32.1为本机网络IP),数据包是经过了10个路由器,而不是前面所说的74个路由器。

如何修改本机电脑上面的默认TTL值

通过修改本机上的TTL值可以混淆攻击者的判断(当然,很少有用户会这么做)。TTL值在注册表的位置是:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters (通过在cmd命令里面输入:regedit,然后回车的方式可以打开注册表)。其中有个DefaultTTL的DWORD值,其数据就是默认的TTL值了,我们可以修改DefaultTTL里面的TTL默认值,但不能大于十进制的255。

TTL=128 说明你直接和对方可以进行通信。TTL=64 跨多个路由器进行通信。ping 发出的是 hello 报文,基于ICMP 的协议,如果跨的路由器很多那就说明 TTL(time to live) 值就减了多少,每跨一个路由器就减1。

在IPv4包头中TTL是一个8 bit字段,如下图所示:

扩展资料

TTL的主要作用是避免IP包在网络中的无限循环和收发,节省了网络资源,并能使IP包的发送者能收到告警消息。

TTL 是由发送主机设置的,以防止数据包不断在IP互联网络上睁链慎永不终止地循环。转发IP数据包时,要求路由器至少将 TTL 减小 1。

TTL值的注册表位置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

其中有个DefaultTTL的DWORD值,其数据就是默认的TTL值了,我们可以修改,但不能大于悉敬十进制的255。Windows系统设置后重启才生效。

生存时间,就是一条域名解析记录在DNS服务器中的存留时间。当各地的DNS服务器接受到解析请求时,就会向域名指定的NS服务器(权威域名服务器)发出解析请求从而获得解析记录。

在获唤慧得这个记录之后,记录会在DNS服务器(各地的缓存服务器,也叫递归域名服务器)中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将不再向NS服务器发出请求,而是直接返回刚才获得的记录;而这个记录在DNS服务器上保留的时间,就是TTL值。

参考资料:百度百科-TTL

和XP是基本一样的,

点击开始》运行,在运行对话框中输入regedit命令,d出注册派敏表编辑器,尘散枝依次打开HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Tcpip/Parameters,找到DefaultTTL,将该值掘此修改为【十进制】的255,重新启动就行了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12429216.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存