分享
 
 
 

DoS系列(2)--分布式拒绝服务攻击工具mstream

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

☆ 简介

分布式拒绝服务攻击工具mstream是基于stream2.c源码的。目前为止有七种公认的分布式拒绝服务攻击

trinoo [03]

Tribe Flood Network (TFN) [04]

Tribe Flood Network 2000 (tfn2k) [06]

stacheldraht/stacheldrahtV4 [05]

stacheldraht v2.666

shaft [07]

mstream

与其它DDoS工具相比,mstream显得粗糙多了。逆向工程还原出的C代码表明mstream

尚处在早期开发阶段,含有大量的BUGs以及未完成的特性。然而由于stream/stream2

攻击本身所具有的威力,即使参与的攻击机只有几台,也足以对victim(以及agent)

所在网络产生极大影响。

mstream的源代码于2000年4月29日被人匿名发布到vuln-dev@securityfocus.com以及

BugTraq邮件列表上,因此本文做少许修正,希望紧急事件响应小组、厂商花点时间

提出自己的响应办法。仍存留在本文中的错误可能正是这次匆忙而就的修正所致。

提醒读者的是,对源代码的修改必将导致与本文分析细节不相符,比如提示、口令、

命令、TCP/UDP端口号、所支持的攻击方式、签名、特性等等。事实上,外面广为流

传的代码的通讯端口已与本文分析中的不同。

本文使用了CERT Distributed System Intruder Tools workshop于1999年11月所发

布的术语标准。强烈建议先阅读如下链接以做背景知识

http://www.cert.org/reports/dsit_workshop.pdf

http://staff.washington.edu/dittrich/misc/ddos/

2000年4月下旬在某大学一台被入侵的Linux主机上发现了mstream agent,该机正以

伪造的源IP对超过一打(12个)的目标主机进行flooding攻击。

这个子网的出口上应用了RFC 2267所定义的外出过滤规则(参考资源[13]),在32bits

范围内伪造的源IP中,只有一小部分(匹配子网掩码的)能离开子网发送出去。然而,

此时出口路由器(内侧有18个子网)停止响应。这意味着做外出过滤规则的路由设备本

身将遭受攻击,尽管原来所定攻击目标只收到比攻击者预期要少得多的攻击报文。教

训是,对于DDoS,简单的包过滤机制并不是一个快速有效的解决方案。我们已经提醒

了路由厂商,希望他们能找出问题原因并修正之。

应用外出过滤规则后被拒绝外出的攻击报文无法到达下一跳路由器,下一跳路由器感

受不到攻击。这意味着基于IDS的边界路由器、DMZ上的IDS或者ISP方的监视设备无法

确认攻击发生。除非你正在监视路由器本身,而用户抱怨并暗示攻击来自你的子网。

这也使Sniffer抓包分析更加困难,只能在应用外出过滤规则的路由器内侧才能抓到

所有包。

2000年2月上旬一家电子商务网站遭受攻击,至今为止他们还不知道对方使用何种攻

击工具,只知道他们的路由器崩溃了,每次都依赖于他们的上级路由器阻断攻击、恢

复通讯。法律部门在缺乏证据的情况下无法介入,他们不能认定这是DoS、DDoS攻击

而非路由器、浏览器自身技术故障。针对Yahoo!的攻击描述在Packetstormsecurity

找到(参考资源[11]),并没有更多其它可用信息。

1999年trinoo、TFN和stacheldraht伴随着大量自动入侵行为,mstream则处在代码开

发的早期阶段,通常是手工入侵、安装(包括handler和agent),并用一个略微改动后

的Linux rootkit version 4 [10]保护自己。

附录D介绍了一次针对agent的入侵和踪迹隐藏。附录E介绍了一次针对handler的入侵

和踪迹隐藏。

☆ mstream network: client(s)--handler(s)--agent(s)--victim(s)

与trinoo和shaft一样,mstream network由一个或多个handlers(master.c)以及大量

的agents(server.c)组成。Attacker到handler之间的通讯是未加密的TCP传输,

handler到agent之间的通讯是未加密的UDP传输。整个结构看上去像这个样子

--------------------------------------------------------------------------

+----------+ +----------+

| attacker | | attacker |

+----------+ +----------+

| |

. . . --+------+---------------+------+----------------+-- . . .

| | |

| | |

+-----------+ +-----------+ +-----------+

| handler | | handler | | handler |

+-----------+ +-----------+ +-----------+

| | |

| | |

. . . ---+------+-----+------------+---+--------+------------+-+-- . . .

| | | | |

| | | | |

+-------+ +-------+ +-------+ +-------+ +-------+

| agent | | agent | | agent | | agent | | agent |

+-------+ +-------+ +-------+ +-------+ +-------+

图: mstream network

--------------------------------------------------------------------------

☆ 通讯

Attacker - Handler(s) : 6723/tcp (in published source)

15104/tcp ("in the wild")

12754/tcp (in recovered source)

Agent - Handler(s) : 9325/udp (in published source)

6838/udp ("in the wild")

Handler - Agent(s) : 7983/udp (in published source)

10498/udp ("in the wild")

Attacker到Handler的远程控制是通过TCP连接完成的,端口号不定(很容易产生变体)。

Handler所等待的命令应该完整地位于单个TCP报文的数据区(PDU)中,而不是断续的

字节流。这意味着不能使用"telnet"控制Handler,netcat [19]可以胜任。Security

Focus [20]中的源代码并未包含这样的客户端工具。

Attacker到Handler的传输未做加密处理,尽管stacheldraht表明增加Blowfish

block cipher并不困难。命令行靠空格分隔参数。

与trinoo类似,Handler(s)与Agent(s)之间的通讯通过UDP报文完成。Agents命令行

靠斜杠('/')分隔参数,多项参数自身靠冒号(':')分隔。

我们所检查的代码中最多允许3个Attackers连接到一个Handler,或许这是一个保护

性措施,也可能是个多余的访问限制。

连接建立后,必须提交正确的口令,缺省值如下

Attacker - Handler(s) : "sex" (in published source [20])

"N7%diApf!" (in recovered source)

如果口令不正确,所有目前已建立连接的用户被提醒有人正试图访问该Handler,然

后关闭这个未通过验证的连接。如果口令正确,所有目前已建立连接的用户被提醒产

生新的会话连接,通过验证的用户得到一个" "提示符。

☆ Handler命令

Handler命令行至多由3个空格分隔的参数组成(argv[0] - argv[2])。

如果攻击者建立连接后420秒内未输入一条命令,连接终止。

Handler命令集如下

help

显示如下信息

Available commands:

stream stream attack !(进行stream攻击)

servers Prints all known servers.(显示所有已知servers/agents)

ping ping all servers.

who tells you the ips of the people logged in

mstream lets you stream more than one ip at a time

servers

显示当前所有已知Agents

who

显示当前已建立连接的用户

ping

确认Agents的活动状态。对所有已知Agents发送"ping",每收到一个"pong"回应

就报告用户。

stream

针对单个主机攻击,seconds指定攻击持续时间。Handler将主机名解析成IP地址

并发送命令"mstream/arg1:arg1/arg2"到所有Agents,这里arg1是victim目标IP

地址,arg2是攻击持续时间。

mstream

针对多台主机攻击,seconds指定攻击持续时间。Handler发送命令

"mstream/arg1/arg2"到所有Agents,这里arg1是冒号分隔的victim目标IP地址

列表,arg2是攻击持续时间。

quit

终止Attacker到Ha

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有