TTL值全称是“生存时间(Time To Live)”,简单的说它表示DNS记录在DNS服务器上缓存时间。
TTL是数据包生存周期,根据减少的数可以判断经过了多少中间设备
在没有经过修改的情况下:
UNIX及类UNIX操作系统ICMP回显应答的TTL字段值为255
Compaq Tru64 5.0 ICMP回显应答的 TTL字段值为64
微软Windows NT/2K操作系统ICMP回显应答的TTL字段值为128
微软Windows 95操作系统ICMP回显应答的 TTL字段值为32
LINUX Kernel 2.2.x & 2.4.x ICMP 回显应答的 TTL 字段值为 64
FreeBSD 4.1, 4.0, 3.4;
Sun Solaris 2.5.1, 2.6, 2.7, 2.8;
OpenBSD 2.6, 2.7,
NetBSD
HP UX 10.20
ICMP 回显应答的 TTL 字段值为 255
Windows 95/98/98SE
Windows ME
ICMP 回显应答的 TTL 字段值为 32
Windows NT4 WRKS
Windows NT4 Server
Windows 2000
ICMP 回显应答的 TTL 字段值为 128
这样,我们就可以通过这种方法来辨别
操作系统 TTL
LINUX 64
WIN2K/NT 128
WINDOWS 系列 32
UNIX 系列 255
-------------------------------------------------------------------------------------------
大家知道,通过Ping和Tracert程序就能判断目标主机类型 ,Ping最主要的用处就是检测目标主机是否能连通。Tracert利 用ICMP数据包和IP数据包头部中的TTL值,防止数据包不断在IP 互联网上永不终止地循环。
许多***者首先会Ping一下你的机子,如看到TTL值为 128就认为你的系统为Windows NT/2000;如果TTL 值为32则认为目标主机操作系统为Windows 95/98;如果TTL值为255/64就认为是UNIX/Linux操作系统。既然***者相信TTL值所反映出来的结果,那么我们只要修改TTL 值,***者就无法***电脑了。
操作步骤:
1.打开“记事本”程序,编写批处理命令:
@echo REGEDIT4>>ChangeTTL.reg
@echo.>>ChangeTTL.reg
@echo [HKEY_LOCAL_MACHlNE\System\CurrentControlSet\Services\Tcpi\Parameters]
>>ChangeTTL.reg
@echo "DefaultTTL"=dword:000000">>ChangeTTL.reg
@REGEDIT /S/C ChangeTTL.reg
2.把编好的程序另存为以.bat为扩展名的批处理文件, 点击这个文件,你的操作系统的缺省TTL值就会被修改为ff,即 10进制的255,也就是说把你的操作系统人为地改为UNIX系统了 。同时,在该文件所在的文件夹下会生成一个名为 ChangeTTL.reg 的注册表文件。如果你想运行完这个批处理文件而不产生ChangeTTL.reg文件,可以在此批处理文件的最后一行加上 deltree/Y ChangeTTL.reg,就可以无须确认自动删除ChangeTTL.reg文件 。
说明:在上面的命令中,echo是DOS下的回显命令,如 果想看到程序执行过程,请将“@”去掉。“> >”产生的内容将追加到它后面的文件即ChangeTTL.reg中。 而“DefaultTTL"=dword?000000ff”则是用来设置系统缺省TTL 值的,如果你想将自己的操作系统的TTL值改为其他操作系统的 ICMP回显应答值,请改变“"DefaultTTL"”的键值,要注意将 对应操作系统的TTL值改为十六进制才可以。
这样,当***者Ping你的机器时,他得到的就是一个假 的TTL值,这个假的TTL值就会误导对方,使***者的判断出现失误,因为针对不同的操作系统的***方法并不一样,所以用 这个方法欺骗对方,可以让他摸不着头脑!利用这个方法欺骗***者是不是很妙啊?