免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: skipjack
打印 上一主题 下一主题

一种新的带宽攻击方式 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2006-05-15 15:14 |只看该作者
原帖由 skipjack 于 2006-5-15 15:07 发表


没有你想像的那么复杂,过程是这样的:
1.用ADSL拨一次号,与ddos防护的服务器进行一次http访问,把此次三次握手的ack包保存起来。当然如果服务器用cookie认证也把http get这个数据包保存。
2.再用ADSL拨一 ...


我不知道你看过Linux的syncookie实现没有,反正你的方法肯定不会通过Linux的cookie检查。
saddr和sport不一样的话根本不行。


  1. static __u32 check_tcp_syn_cookie(__u32 cookie, __u32 saddr, __u32 daddr,
  2.                                   __u16 sport, __u16 dport, __u32 sseq,
  3.                                   __u32 count, __u32 maxdiff)
  4. {
  5.         __u32 diff;

  6.         /* Strip away the layers from the cookie */
  7.         cookie -= cookie_hash(saddr, daddr, sport, dport, 0, 0) + sseq;

  8.         /* Cookie is now reduced to (count * 2^24) ^ (hash % 2^24) */
  9.         diff = (count - (cookie >> COOKIEBITS)) & ((__u32) - 1 >> COOKIEBITS);
  10.         if (diff >= maxdiff)
  11.                 return (__u32)-1;

  12.         return (cookie -
  13.                 cookie_hash(saddr, daddr, sport, dport, count - diff, 1))
  14.                 & COOKIEMASK;   /* Leaving the data behind */
  15. }
复制代码


  1. static u32 cookie_hash(u32 saddr, u32 daddr, u32 sport, u32 dport,
  2.                        u32 count, int c)
  3. {
  4.         __u32 tmp[16 + 5 + SHA_WORKSPACE_WORDS];

  5.         memcpy(tmp + 3, syncookie_secret[c], sizeof(syncookie_secret[c]));
  6.         tmp[0] = saddr;
  7.         tmp[1] = daddr;
  8.         tmp[2] = (sport << 16) + dport;
  9.         tmp[3] = count;
  10.         sha_transform(tmp + 16, (__u8 *)tmp, tmp + 16 + 5);

  11.         return tmp[17];
  12. }
复制代码

论坛徽章:
0
22 [报告]
发表于 2006-05-15 15:30 |只看该作者
原帖由 JohnBull 于 2006-5-15 15:14 发表


我不知道你看过Linux的syncookie实现没有,反正你的方法肯定不会通过Linux的cookie检查。
saddr和sport不一样的话根本不行。

[code]
static __u32 check_tcp_syn_cookie(__u32 cookie, __u32 saddr, __u ...


重放的saddr和sport为什么不一样?攻击对象是采用静态cookie的ddos设备,如果是动态的cookie就又回到猜序号的老路上去了。你贴的源码中有SHA关键字,呵呵...我想性能是个大问题。等一会儿,我仔细看看。

论坛徽章:
0
23 [报告]
发表于 2006-05-15 15:34 |只看该作者
原帖由 skipjack 于 2006-5-15 15:30 发表


重放的saddr和sport为什么不一样?攻击对象是采用静态cookie的ddos设备,如果是动态的cookie就又回到猜序号的老路上去了。你贴的源码中有SHA关键字,呵呵...我想性能是个大问题。等一会儿,我仔细看看。


sorry,犯晕了,不是saddr和sport不同,而是secret不同。所以你的攻击方法对于Linux而言理论上还是可以持续2分钟的。

但是按我前面所说,你描述的攻击方法还是等于变相“取得了被攻击主机的权限”了啊,你要是想攻击任意服务器还是不现实。

[ 本帖最后由 JohnBull 于 2006-5-15 15:44 编辑 ]

论坛徽章:
0
24 [报告]
发表于 2006-05-15 16:00 |只看该作者

质疑

我现在有些质疑想在此提出:
你即使程序自己发送重复的ACK,但你的操作系统协议栈在接收到回应数据报后会给服务器端发送正确真是的ACK包,因此滑动窗口会自动对于接收端来讲,TCP滑动窗口会向前移动,一旦移动后就无法后退,因此你的重复ACK也无用了。这是我的一点看法。

论坛徽章:
0
25 [报告]
发表于 2006-05-15 16:08 |只看该作者
说得再明白点就是:服务器端一旦收到来自你操作系统协议栈的ACK包(非你程序发出的),就会自动将服务器端的滑动窗口向前移动。一旦移动后就无法后退。使得攻击无效。有不同意见的话,欢迎发表。

论坛徽章:
0
26 [报告]
发表于 2006-05-15 16:13 |只看该作者
原帖由 lxdlj 于 2006-5-15 16:00 发表
我现在有些质疑想在此提出:
你即使程序自己发送重复的ACK,但你的操作系统协议栈在接收到回应数据报后会给服务器端发送正确真是的ACK包,因此滑动窗口会自动对于接收端来讲,TCP滑动窗口会向前移动,一旦移动后 ...


Mmmm....

>>你的操作系统协议栈在接收到回应数据报后会给服务器端发送正确真是的ACK包,
>>因此滑动窗口会自动对于接收端来讲,TCP滑动窗口会向前移动...

我的协议栈没有此次通讯的sock句柄,为什么会给服务器端发送正确真的ACK包????

论坛徽章:
0
27 [报告]
发表于 2006-05-15 16:17 |只看该作者
原帖由 lxdlj 于 2006-5-15 16:08 发表
说得再明白点就是:服务器端一旦收到来自你操作系统协议栈的ACK包(非你程序发出的),就会自动将服务器端的滑动窗口向前移动。一旦移动后就无法后退。使得攻击无效。有不同意见的话,欢迎发表。


你把攻击程序想的层次太高了,它们都是raw socket直接封装,直接发送。作者原文那只是一个实验,实验的结论成立后,真正的攻击程序就不会那么温柔了。呵呵...TCP协议到是挺了解的,但对攻击程序就是破坏协议这一点了解不足

论坛徽章:
0
28 [报告]
发表于 2006-05-15 16:27 |只看该作者
原帖由 JohnBull 于 2006-5-15 15:34 发表


sorry,犯晕了,不是saddr和sport不同,而是secret不同。所以你的攻击方法对于Linux而言理论上还是可以持续2分钟的。

但是按我前面所说,你描述的攻击方法还是等于变相“取得了被攻击主机的权限”了啊,你要 ...


>>所以你的攻击方法对于Linux而言理论上还是可以持续2分钟的
错了吧,应该说我有两分钟的时间可以用重放的ack包和服务器建立连接,一旦连接建立,如果我不发fin rst之类的数据包,他就只能靠超时删除。但我会始终制造流量,所以可以说我控制了这条连接。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
29 [报告]
发表于 2006-05-15 16:36 |只看该作者
看了,那么这个应用在什么地方啊~~~

论坛徽章:
0
30 [报告]
发表于 2006-05-15 17:00 |只看该作者
原帖由 大大狗 于 2006-5-15 16:36 发表
看了,那么这个应用在什么地方啊~~~


我也不知道,只是对原文的一点改进建议。
因为原文我读了好几遍才明白是啥意思
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP