从返回TTL值判断操作系统

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/T cpip/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值就会误导对方,使入侵

者的判断出现 失误,因为针对不同的操作系统的入侵方法并不一样,所以用 这个方法欺骗对方,可以

让他摸不着头脑!利用这个方法欺骗 入侵者是不是很妙啊?

你可能感兴趣的:(从返回TTL值判断操作系统)