论坛: 编程破解 标题: 求助:网络编程相关 复制本贴地址    
作者: beyes [beyes]    论坛用户   登录
我需要目标主机给我返回一个超时的ICMP报文,超时报文有两种:TTL超时,ICMP分片组装超时。对单机好像没法让它返回TTL超时报文,所以我想让目标主机返回ICMP分片组装超时。我用原始套接字构造了UDP包,先后构造了初始分片(flags字段设为001,分片偏移设为0),最后分片(IP头的flags字段设为000,分片偏移不为0)和中间的分片,但只要是IP头的flags字段为001,对方机器就不响应,不返回任何包,flags字段为000分片时,还能返回一个目的端口无法到达的报文。用TCP包也不行。后来我够造两个报文,先发一个初始分片,再发一个最后分片,还是不响应。
按道理对方机器会给我返回分片组装超时错误的ICMP报文呀。不得其解,哪位大哥知道,帮忙解决一下,小弟不胜感激。
可以发到我的邮箱
EMAIL:beyesbobi@yahoo.com.cn
欢迎指教。


地主 发表时间: 04-04-22 10:27

回复: 286 [unique]   版主   登录
1 对单机好像没法让它返回TTL超时报文,
把TTL值设为1,对方即会返回给你一个TTL超时错误。

2 我用原始套接字构造了UDP包
ICMP本身就是网络层的程序,你怎么能构造UDP包呢?你应该直接用RAW SOCKET构造原始的ICMP包。

3 按道理对方机器会给我返回分片组装超时错误的ICMP报文呀。
现在的很多计算机都有防火墙,而过滤ICMP包更是他们最关注的,更多的网站几乎把所有ICMP包都过滤了。所以你连可以,但PING是不通的。

4 你的问题有很多人常范错误,总说我按XXXX去作,但为什么不对呢?
谁知道对不对呢?通过网络可以传数据,这是肯定的,但你总说出错,谁也指不出哪错了。
你要么把部分关键源码发出来,要么把试验数据、返回值、自己的分析、分析结果、实际结果等项说出来大家才可能帮你。

B1层 发表时间: 04-04-22 17:24

回复: sinister [sinister]   论坛用户   登录
你是不是想做 TCP/IP协议栈指纹判断?不知道你看过 NMAP 的代码没有?如果要做
到它那种程度并不只是简单的一种判断。它有至少7种判断组合,来确定对方的OS版本。它
对目标主机也有要求。比如必须有一个TCP PORT开放,一个 TCP PORT 关闭和一个UDP PORT
关闭。如果不满足的话。那么很难精确判断出来。这种方法存在一些缺陷比如对方只开了一
个 TCP PORT,或者被FILEWALL阻断的话,那么准确性可想而知了。看你利用的方法相对来
说比较新的技术。是根据 ICMP 的返回报来判断的,比如IP LEN,IP ID,IP CHECKSUM,IP TOS...等等。关于具体实现细节,我也忘的差不多了。但构造 UDP 把发送是对的!它的
ECHO 包,端口不可达包返回时,有些OS是会把你原始的发送数据加到 ICMP 包后面的,
比如你发送出去时的 UDP 数据。接收时没有必要来判断 UDP 部分,因为它就是你发送时
候的数据。而这只是限于某些系统。有些OS并不会这样做。具体哪些还要去查些资料。


关于为什么接收不到,我并不想做过多的推断,因为这个需要你自己去 抓包 分析。

B2层 发表时间: 04-04-22 23:43

回复: beyes [beyes]   论坛用户   登录
谢谢版主和sinister.
我就是要目标主机返回分片重组超时的ICMP包给我。我要做的东西和tcp/ip协议

栈指纹鉴别技术有关,但不是这个。NMAP原理我知道,但没有源代码,能告诉我

在哪下源代码吗?
另外,回答版主的几点问题。
1 将ttl设为1绝对不行,ttl为1,中间有个路由器,不就挂了吗?
2 就是一般防火墙都禁止icmp入站,所以我才用udp包,用原始套接字一样可以构

造udp包,并且只要灵活运用协议,一样可以让对方机器返回icmp包。当然前提是

对方机器没有禁止出站icmp包。

B3层 发表时间: 04-04-23 21:46

回复: abctm [abctm]   版主   登录
建议考虑去CSDN看看

B4层 发表时间: 04-04-23 22:01

回复: 286 [unique]   版主   登录
1 是你说的"对单机好像没法让它返回TTL超时报文",我才考虑让TTL=1,有了路由器还叫单机吗?此处建议你看看Tracert.exe原理.
2 "所以我才用udp包,用原始套接字一样可以构造udp包,并且只要灵活运用协议,一样可以让对方机器返回icmp包。"
返回ICMP包是不错,但他也只会返回UDP包出错的相关信息,不会返回ICMP包出错的相关信息。

B5层 发表时间: 04-04-26 09:41

回复: hannyu [hannyu]   论坛用户   登录
学习荒废中……看得我心痒,可惜现在没时间试验,明年就好了:)

B6层 发表时间: 04-04-26 17:47

回复: beyes [beyes]   论坛用户   登录
我就要一个icmp超时错误报文。管他udp包,icmp包,还是tcp包,只要能返回就行。单机不是直连,比如说单机扫描。中间当然可能很多路由器了。
我想办法就只有伪装成分片包了,让返回分片超时错误。
谁知道怎么用编程实现。
是我表达能力有限吗?怎么都抓不住重点。
急啊!哪位老大帮忙实现。
只要能解决,别说我不知道traceroute原理了,就是说我不懂tcp/ip原理也可以。

B7层 发表时间: 04-04-26 20:08

论坛: 编程破解

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

粤ICP备05087286号