论坛: 菜鸟乐园 标题: 黑客也上当―巧改TTL值欺骗入侵者 复制本贴地址    
作者: linux [wish259]    论坛用户   登录
通过Ping和Tracert程序就能判断目标主机类型,这是许多初级入侵者喜欢的方式。Ping最主要的用途就是检测目标主机是否能连通,其实质就是发送一个ICMP回显请求报文给目的主机,并等待回显的ICMP应答,然后打出回显报文。Ping程序通过在ICMP报文数据中存放发送请求的时间来计算返回时间。当应答返回时,根据现在时间减去报文中存放的发送时间就得到反应时间。
Tracert利用ICMP数据包和IP数据包头部中的TTL值。TTL(Time To Live,生存时间)是一个IP数据包的生存时间。当每个IP数据包通过路由器的时候,都会把TTL值减去1,或者减去在路由器中停留的时间,但是大多数数据包在路由器中停留的时间都小于1秒钟,因此实际上就是在TTL值减去了1。这样,TTL值就相当于一个路由器的计数器。
当路由器接收到一个TTL为0或者1的IP数据包的时候,路由器就不再转发这个数据了,而直接丢弃,并且发送一个ICMP“超时”信息给源主机。TTL是由发送主机设置的,以防止数据包不断在IP互联网上永不终止地循环。
如果你感兴趣,可以用上述两个命令做一个实验,来判断目标主机的TTL值,结果应该和下面相同:
UNIX操作系统的ICMP回显应答的TTL字段值为255。
Linux操作系统的ICMP回显应答的TTL字段值为64。
Windows NT/2000操作系统ICMP回显应答的TTL字段值为128。
Windows 95/98操作系统ICMP回显应答的TTL字段值为32。
利用TTL值,还可以推算数据包通过了多少个路由器。方法是用源地点TTL起始值(就是比返回TTL略大的一个2的乘方数,如32、64、128、256等)减去返回时的TTL值,就等于通过了多少个路由器。例如,返回TTL值为119,那么可以推算数据包离开源地址的TTL起始值为128,则可以算出源地点到目标地点要通过9个路由器网段(128-119=9)。如果返回TTL值为224,而TTL起始值可以判断为256,则可以算出源地点到目标地点要通过11个路由器网段。
许多入侵者喜欢用TTL值来判断操作系统,他们首先会Ping一下你的机子,如看到TTL值为128就认为你的系统为Windows NT/2000,如果TTL值为32则认为目标主机操作系统为Windows 95/98,如果为TTL值为255/64就认为是UNIX/Linux操作系统。既然入侵者相信TTL值所反应出来的结果,那么我们不妨修改一下TTL值来欺骗入侵者,保护我们的系统――入侵者连你的操作系统都没搞清楚,又怎么入侵我们的电脑呢?
打开Windows自带的“记事本”程序,编写如下所示的批处理命令:
@echo REGEDIT4>>ChangeTTL.reg
@echo.>>ChangeTTL.reg
@echo  [HKEY_LOCAL_MACHlNE\System\ CurrentControlSet\Services\Tcpip\Parameters]>>ChangeTTL.reg
@echo "DefaultTTL"=dword:000000">>ChangeTTL.reg
@REGEDIT /S/C ChangeTTL.reg
另存为以.bat为扩展名的批处理文件,点击这个文件,你的操作系统的缺省TTL值就会被修改为ff,即10进制的255,也就是说把你的操作系统人为地改为UNIX系统了!同时,在该文件所在的文件夹下会生成一个名为ChangeTTL.reg的注册表文件。如果你想运行完这个批处理文件,不产生ChangeTTL.reg文件,可以在此批处理文件的最后一行加上deltree/Y ChangeTTL.reg,就可以无需确认自动删除ChangeTTL.reg文件。
在上面的命令中,echo是DOS下的回显命令,在它的前面加上“@”前缀字符,表示执行时本行在命令行或DOS里面不显示。如果想看到程序执行过程,请将“@”去掉。大家在编写上述代码时要注意的是,第一行中的“REGEDIT4”一定要用大写字母,在第二行中“echo”和“.”之间没有空格。“>>”产生的内容将追加到它后面的文件即ChangeTTL.reg中(“>>”产生的内容将追加进文件中,“>”则将原文件内容覆盖)。而"DefaultTTL"=dword:000000ff",是用来设置系统缺省TTL值的。如果你想将自己的操作系统的TTL值改为其它操作系统的ICMP回显应答值,请改变“DefaultTTL”的键值,要注意它的键值为16进制,所以要将对应操作系统的TTL值改为16进制才可以。比方说,你想改为Linux操作系统,而Linux的ICMP回显应答的TTL字段值为64,则要将“DefaultTTL”的键值改为40(16进制40即10进制64)。
这样,当入侵者Ping您的机器时,他得到的就是一个假的TTL值。这个假的TTL值就会误导对方,使入侵者的判断出现失误。因为针对不同的操作系统的入侵方法并不一样,所以用这个方法欺骗对方,可以让他摸不着头脑。利用这个方法欺骗入侵者是不是很妙啊?快试试吧!

地主 发表时间: 04-08-28 20:55

回复: TSnew [tsnew]   论坛用户   登录
呵呵!!

B1层 发表时间: 04-08-29 12:27

论坛: 菜鸟乐园

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号