大家帮忙想想修改了源地址的数据包有什么用?

ytlook 2008-06-04 06:32:36
好不容易修改了数据包IP头中的源地址Source IP的值,又给发了出去。不过突然发现没啥用啊,用它做IP欺骗也不行呀。

首先直接发过去修改后的包,服务器不认

其次,先通过三次握手,然后把要发的包Source IP、SYN、ACK、Sequence什么的根据握手的结果修改好发出去,可是服务器又不认了啊

再次,通过伪造握手包,即握手包中就用修改后的Source IP,但这样要算出服务器返回的握手包中的特征值难度也太大了吧~

网上看到不少要修改数据包IP头中的Source IP的内容,不过我突然想问:修改好的包有什么用?怎么用啊?比方说服务器是一个HTTP服务器,它能被骗吗?照现在来看貌似它理都不理这个包~

呵呵,还望高手指教啊~
...全文
251 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
白小木 2010-08-08
  • 打赏
  • 举报
回复
怎么修改数据包源IP的啊,我现在急需一个这程序啊,指教小小弟呗。我QQ:562178352
ytlook 2008-06-09
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 vocanicy 的回复:]
理论上还是有可能猜出服务器应答的ISN的

ISN随时间而变化,因此每个连接都有不同的ISN。
RFC793指出ISN可看作一个32bit的计数器,每隔4ms加1(实际上不是所有系统都按这个来实现,有的是8ms加1)。
另外每建立一个连接后,这个变量也会改变(有的系统建立一个连接后加64000)。

所以你必须先分析服务器的操作系统,在本地搭建模拟环境测试ISN变化时间和每连接增长数。

了解服务器系统的ISN规律之后,就可以着手攻击

先建立一个正常连接,得到当时的ISN,然后通过时间计算下一ISN实施攻击

两个困难:
1、通过网络实现毫秒级的时间控制,基本上不可能
只能在考虑网络平均延时后,计算一个理论时间
所以你必须重复无数次的攻击直到碰对一次,就像中彩票一样

2、前提条件是要等到服务器不繁忙的时段进行攻击
否则就算你知道了某时刻的ISN,如果其他用户连接上导致ISN改变
[/Quote]

它要是真的是这个算法就好了,您提到那个算法也是很多论文上提到的,其实这个是几十年前的某个Unix的算法了,现在的都已经过加密,我做了一百多次试验,取来回时间间隔一样的组,结果它的值能差上几千万的,少的一千多万,多的八千多万,根本没有任何规律。

在这里我还要痛斥那些论文,都是“天下论文一大抄”,明明是一个已没有任何实用价值的例子(现实中已不存在这么笨的算法),可还是每篇相关的论文都不约而同的引用了,写论文的人根本没有做任何的验证!写出来的论文没有任何实际意义,更别提什么实用价值了,也不知道这样的狗屁论文是怎么发表出来的。
lok_fun 2008-06-08
  • 打赏
  • 举报
回复
有见地!
zhengq06 2008-06-06
  • 打赏
  • 举报
回复
向高手们学习. 顶!
vocanicy 2008-06-06
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 ytlook 的回复:]
呵呵,有没有办法把服务器返回的SYN的值猜出来?貌似难度很大的样子

查了不少论文,都大同小异,说SYN的SIN是按时序往上递增,可我发现理论总归是理论,现实中的SIN都是经过加密处理的,没规律可循!

很郁闷,有谁能算出来啊?

不然的话那个IP欺骗啊、TCP会话劫持啊等经典的黑客攻击方法,不都没法实现了嘛~
[/Quote]

理论上还是有可能猜出服务器应答的ISN的

ISN随时间而变化,因此每个连接都有不同的ISN。
RFC793指出ISN可看作一个32bit的计数器,每隔4ms加1(实际上不是所有系统都按这个来实现,有的是8ms加1)。
另外每建立一个连接后,这个变量也会改变(有的系统建立一个连接后加64000)。

所以你必须先分析服务器的操作系统,在本地搭建模拟环境测试ISN变化时间和每连接增长数。

了解服务器系统的ISN规律之后,就可以着手攻击

先建立一个正常连接,得到当时的ISN,然后通过时间计算下一ISN实施攻击

两个困难:
1、通过网络实现毫秒级的时间控制,基本上不可能
只能在考虑网络平均延时后,计算一个理论时间
所以你必须重复无数次的攻击直到碰对一次,就像中彩票一样

2、前提条件是要等到服务器不繁忙的时段进行攻击
否则就算你知道了某时刻的ISN,如果其他用户连接上导致ISN改变
WinEggDrop 2008-06-06
  • 打赏
  • 举报
回复
顶楼提的IP欺骗可不是想用代理服务器.他是想直接自己发送假源IP的syn包等去模拟一次真实的三次握手的TCP连接.
greatws 2008-06-06
  • 打赏
  • 举报
回复
IP欺骗可以用代理服务器实现

TCP会话劫持,这个是直接修改链路层源MAC和目的MAC,达到劫持的目的

UDP是可以的,TCP有序列号,你乱猜一个序列号,基本上再过几轮就RST了


WinEggDrop 2008-06-06
  • 打赏
  • 举报
回复
题外话:如果有这种方法存在,那么防火墙基本要失效,因为你根本可以模拟一个127.0.0.1的IP去连接自己,防火墙是不会阻止本地自己连自己的127.0.0.1的任何数据的.
WinEggDrop 2008-06-06
  • 打赏
  • 举报
回复
[Quote=引用楼主 ytlook 的帖子:]
好不容易修改了数据包IP头中的源地址Source IP的值,又给发了出去。不过突然发现没啥用啊,用它做IP欺骗也不行呀。

首先直接发过去修改后的包,服务器不认

其次,先通过三次握手,然后把要发的包Source IP、SYN、ACK、Sequence什么的根据握手的结果修改好发出去,可是服务器又不认了啊

再次,通过伪造握手包,即握手包中就用修改后的Source IP,但这样要算出服务器返回的握手包中的特征值难度也太大了吧~

网上看…
[/Quote]

如果使用syn方法实现到三次握手,那么所有限制IP来源的防火墙或过滤规则早就如同空设了.这种假IP模拟,只能猜测sequence number,以大量的syn来获取意外的一次成功机会.
ytlook 2008-06-05
  • 打赏
  • 举报
回复
呵呵,有没有办法把服务器返回的SYN的值猜出来?貌似难度很大的样子

查了不少论文,都大同小异,说SYN的SIN是按时序往上递增,可我发现理论总归是理论,现实中的SIN都是经过加密处理的,没规律可循!

很郁闷,有谁能算出来啊?

不然的话那个IP欺骗啊、TCP会话劫持啊等经典的黑客攻击方法,不都没法实现了嘛~
greatws 2008-06-05
  • 打赏
  • 举报
回复
说错了,是SYN,SEQ是Sequence Number...
greatws 2008-06-05
  • 打赏
  • 举报
回复
TCP不可能,要3次握手的,你发送SEQ帧的时候IP就不是自己,怎么收到服务器的SEQ ACK?

自由的风 2008-06-05
  • 打赏
  • 举报
回复
同样的问题,我2003年就问过了,答案是不可能
自由的风 2008-06-05
  • 打赏
  • 举报
回复
不可能
Eleven 2008-06-04
  • 打赏
  • 举报
回复
Up
qgw_2000 2008-06-04
  • 打赏
  • 举报
回复
还可以用来实现transparent proxy.
dadayanyan 2008-06-04
  • 打赏
  • 举报
回复
如果只改IP地址等字段,还需要计算校验和,
如果校验和错误,对方主机网卡即使收到也会丢弃
修改包可以进行tcp会话劫持,arp欺骗,ip欺骗等等
但是如果对于会话来说还要维护自动机控制会话处于某种状态
zys85 2008-06-04
  • 打赏
  • 举报
回复
发udp包,tcp3次握手,他要发回包的,你给他的信息都不对他怎么回你
ytlook 2008-06-04
  • 打赏
  • 举报
回复
呵呵,不求收到发回的数据包,但求把HTTP请求递交上去~

然后,修改Source IP主要是为了绕过JSP的request.getRemoteAddr()获取客户端的真实IP~

呵呵,哪位大牛能实现或者有更好的办法~谢谢啦~
greatws 2008-06-04
  • 打赏
  • 举报
回复
你都改了源IP,服务器怎么会把包发到真实主机上?

修改源IP主要作用就是欺骗和攻击

18,363

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧