TTL是IP协议包中的一个值,它告诉网络,数据包(例如ICMP包)在网络中的时间是否太长而应被丢弃。有很多原因使包在一定时间内不能被传递到目的地。例如,不正确的路由表可能导致包的无限循环。一个解决方法就是在一段时间后丢弃这个包,然后给发送者一个报文,由发送者决定是否要重发。TTL的初值通常是系统缺省值,是包头中的8位的域。TTL的最初设想是确定一个时间范围,超过此时间就把包丢弃。由于每个路由器都至少要把TTL域减一,TTL通常表示包在被丢弃前最多能经过的路由器个数。当记数到0时,路由器决定丢弃该包,并发送一个ICMP报文给最初的发送者。
黑客们攻击入侵别人计算机的时候,通常做的第一件事就是判断主机是否在线。判断的方法很简单,就是借助Ping命令来完成。其方法是在命令提示符下输入“Ping IP地址”,如果返回类似这样的信息“Reply from 221.231.114.219: bytes=32 time=23ms TTL=128”,那么则说明主机在开,即对方的电脑正在使用之中。
由于不同的操作系统的漏洞、入侵方法是不同的,因此黑客们还会根据ping命令返回的信息判断对方使用的操作系统。判断的依据就是TTL的值。一般来说Windows 2000/XP的计算机TTL值为120、128,而Unix/Linux的系统返回的TTL值则为64或255。我们都知道,Unix/Linux的漏洞以及入侵方法要比Windows难的多,因此我们可以修改系统返回TTL值,从而达到欺骗黑客的目的。
运行“regedit”后打开注册表编辑器,选择“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters”,新建一个“DefaultTTL”Dword键值,并将该值修改为十进制的“255”或十六进制的“FF”,重新启动计算机使设置生效。
现在只要对方再ping计算机时,就会返回错误的TTL值,让对方误以为使用的操作系统为Unix/Linux,从而起到南辕北辙的效果,让其在错误的道路上越走越远。