查看: 2618|回复: 11

伪造ICMP重定向包需要具备的条件

[复制链接]
发表于 2007-4-30 19:15:50 | 显示全部楼层 |阅读模式
我想做一个实验,就是冒充网关发送一个“ICMP重定向”包给一台主机,告诉它我才是到达DNS服务器的最佳路径,可这个实验做了好久都没成功。请问伪造一个ICMP重定向包需要具备什么条件,试过将一个“ICMP端口不可达”的包改为“ICMP重定向包”,可就是不行,我将捉到的“ICMP端口不可达”的包按照ICMP重定向的报文格式来伪造CMP重定向的包,主要对该包做了以下修改并填充了相关的值:
帧头的源地址和目的地址
IP包头的源地址和目的地址,
ICMP包头中的类型(5)和代码(1),还填充上了新的路由器地址(我自己的)
ICMP差错报文中的IP包头里的源地址和目的地址

然后将该被修改过的包发送到对方的主机,可是对方的主机根本就没有反应,也没修改自身的路由表,对方的系统是xp和linux Ubuntu都有试过,而且对方xp系统的注册表里的EnableICMPRedirect设置为1,也就是说允许对ICMP重定向包文进行响应,可是为什么还不行?该伪造的“ICMP重定向包”已具备了以下条件:
1. 新路由必须是直达的
2. 重定向包必须来自去往目标的当前路由
3. 重定向包不能通知主机用自己做路由
4. 被改变的路由必须是一条间接路由
这些条件都做到了,请问当一台主机接收到一份“ICMP重定向”报文时,需要该报文俱备哪些条件才会更改自身的路由表,接收方会对该包的长度,标识符,检验和,TTL,和出错的报文里的协议字段(即封装在ICMP包里的IP头部中的协议字段)做检查吗?是不是xp的系统不会向应这些包而不修改自身的路由表?当机收到“ICMP重定向”报文时会不会去验证新路由到底是不是个路由器?
以下这图是我所在的网络环境:


这个是我伪造的ICMP重定向包,希望高手能帮我分析一些,看看是不是这个伪造不行,还是说所在的网络环境网络不行??


我的疑惑太多了,这个实验搞了两天都没搞清楚,参考了不少资料。希望有人能一一回答我这个问题,帮我解开这些迷惑,谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?CSNA会员注册

×
回复

使用道具 举报

发表于 2007-5-1 13:04:06 | 显示全部楼层
支持一下!
这个问题虽然我不能解答,不过想来应该先研究一下ICMP的协议,然后进行抓包分析一下。通过修改ICMP的字段信息,多研究一下,应该是可以得到答案的。

对于数据包的构造和更改,推荐使用科来网络分析系统6.4自带的”数据包构造器“,相信这个是目前最好用的数据包编辑器。
回复

使用道具 举报

 楼主| 发表于 2007-5-1 13:35:56 | 显示全部楼层
我已经摸索好久了,也参考了不少资料,科来网络分析系统我没用过,sniffer pro在修改数据包方面不太好,在编缉数据包方面不好定位,没有相应字段所对应的数据,要对协议字段的所在的位置熟悉才好改
回复

使用道具 举报

发表于 2007-5-1 13:49:11 | 显示全部楼层
ICMP 里边有序列号,个人觉得解决ICMP序列号问题比较难
回复

使用道具 举报

 楼主| 发表于 2007-5-1 14:10:05 | 显示全部楼层
接收方会验证报文中的序列号吗??这个是主要的原因吗?
朋友,请你说清楚点好吗
回复

使用道具 举报

 楼主| 发表于 2007-5-1 14:21:25 | 显示全部楼层
不说序列号的问题,ICMP重定向报文根本没有序列号,
不知是不是检验和的问题导致对方不接该包,因为该包是从从端口不可达改过来的,并没有改检验和字段,不知是不是这个问题
回复

使用道具 举报

 楼主| 发表于 2007-5-2 14:10:05 | 显示全部楼层
没人知道吗!!!!!!!!!!!
回复

使用道具 举报

发表于 2007-5-2 14:11:47 | 显示全部楼层
高手都去睡觉了啊  哎
回复

使用道具 举报

 楼主| 发表于 2007-5-3 21:34:16 | 显示全部楼层
晕!!!!!!!!!!!!!!!!!!!!!!!!
回复

使用道具 举报

发表于 2007-5-4 11:14:11 | 显示全部楼层
期待高手回答,我也来学学!!
回复

使用道具 举报

发表于 2007-5-4 13:57:23 | 显示全部楼层
期待斑竹来解释这个问题他是个高手
回复

使用道具 举报

 楼主| 发表于 2007-5-5 13:01:57 | 显示全部楼层
对,帮我顶顶
。。。。。。。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | CSNA会员注册

本版积分规则

快速回复 返回顶部 返回列表