上一篇: 二进制转十进制,十进制转二进制的算法
返回TTL值判断操作系统...
[ 2008/06/21 09:56 | by selboo ]
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值就会误导对方,使入侵
者的判断出现 失误,因为针对不同的操作系统的入侵方法并不一样,所以用 这个方法欺骗对方,可以
让他摸不着头脑!利用这个方法欺骗 入侵者是不是很妙啊?