|
作者: 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号