论坛: 菜鸟乐园 标题: Yahoo网站DDOS入侵手法!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 复制本贴地址    
作者: lulumy [lulumy]    论坛用户   登录
近有关骇客最热门的话题,一定非Yahoo网站被骇客入侵弄当的新闻莫属。这次Yahoo网站的入侵事件,和以往骇客入侵的事情相比较,其实所造成的破坏来说,这次入侵事件在有关计算机硬件或数据上面,和以往骇客的入侵相比较是完全轻微的多,因为Yahoo网站并没有因为入侵而造成任何数据毁损或硬件坏掉的情形发生。不过在Yahoo被入侵之后,接二连三许多全球知名的网站,如E*Trade Inc.、ZDNet Inc.、eBay.com、Buy.com、MSN、CNN与Amazon.com….等等,也相继前后传出被骇客入侵的消息,所以使得这些公司的股价纷纷下挫。以经济的眼光来看待这件事,此次骇客的入侵可说是造成了经济上非常严重的损失,当然相对也有经营网络安全的公司因此而受惠,但毕竟比起Yahoo这些龙头网络老大来说,此次事件的损失是远远大于网络安全公司的受益。

这次骇客入侵事件,为什么会造成这么大的震撼?首先,受创的都是全球知名的大公司,这些网络先驱的龙头大哥,在大家印象中应该是「百毒不侵」、最了解网络的人,没想到连他们都会受到骇客攻击,那其它一拖拉古小杂碎网络公司,不就只好像是待宰的羔羊,随时看骇客大爷高兴。对于现在全世界一窝蜂推展网络电子商务的热潮而言,此次事件无疑是浇了一桶「冰块」下来,让大家知道原来网络没有那么神奇。再来,此次Yahoo等网站被攻击的方法,可是让骇客又找到了一个新的入侵天地,原来使用正常的TCP/IP讯息就可以弄垮目标网站……

「杰克!这真的是太神奇了!」

咳!咳!

在写这篇稿子的时候,我手上已经有拿到这些攻击程序样本的原始码,不过本人实在穷的很,没办法像骇客找到一堆机器来试验被攻击的滋味,当然我更不可能实际去网络上抓一堆机器试验,拜托…..我可还想活到看看今年老虎伍兹可以拿到几个四大赛冠军,没必要为了一篇稿子去坐牢吧!

所以这篇文章,我只想介绍一下Yahoo网站被入侵所使用的手法,让大家了解什么是分布式攻击,不然整天看电视在听新闻播报员在哪介绍「分布式阻绝服务入侵」,我就不相信有几个人真搞得懂它是什么「碗糕」,其实说穿了,这个入侵法真的不是很困难,但是实作起来倒是真的有点难度,大家看完后就晓得了。

入侵Yahoo网站所使用的手法

其实Yahoo网站入侵的方法在之前杂志里我就有稍微介绍过,还记得我在「Windows网络入侵入门4」里面所介绍的入侵方法吗?没错,这次事件也是属于「Denial of Service」攻击的一种,也就是它的入侵目的就是弄当对方机器上的服务。不过这次Yahoo被入侵会引起这么大的注目,原因是因为骇客使用了新的入侵手法,这个中文翻译为「分布式阻绝服务入侵」(英文原文是「DDOS-Distributed Denial of Service Attack」稍后我会再详细介绍)的入侵方法,和之前我介绍利用系统本身设计的漏洞来执行「Denial of Service」入侵手段是完全不同。「分布式阻绝服务入侵」手段,严格来说它并不是一个非法的入侵行为,但是结果却会造成目标机器失去功效。所以在Yahoo被入侵之后,接二连三E*Trade Inc.、ZDNet Inc.、eBay.com……..这些公司同样也受害,原因就是因为「分布式阻绝服务入侵」它是一个正常的行为,并不像系统有漏洞抓个Patch程序修正就可以阻绝被入侵这么简单,它要被防堵需要费一些工夫,而且这个入侵方法要被追踪简直是难上加难,稍后我会介绍为何追踪它困难的原因。






(图1�U攻击Yahoo网站的方法应该是属于「Tribe Flood Network」类型 )

在网络上,华盛顿大学(University of Washington)一位名为David Dittrich的高手,曾经在去年1999年10月、11月的时候,分别针对三种不同的「分布式阻绝服务入侵」手法做过分析,内容非常精彩,不过有点麻烦的是数据都是原文,而且坦白讲可能需要点技术的底子才看得懂,无论如何有兴趣的读者可以去以下网址取得这些数据�U

Trinoo http://staff.washington.edu/dittrich/misc/trinoo.analysis

Tribe Flood Network http://staff.washington.edu/dittrich/misc/tfn.analysis

Stacheldraht http://staff.washington.edu/dittrich/misc/stacheldraht.analysis



(图2�UDavid Dittrich有对三种DDOS攻击做过分析介绍)

Tribe Flood Network运作说明

这里,我大概讲解一下TFN它攻击的运作原理,对于大家了解「分布式阻绝服务入侵」是什么东西会有一些帮助,至于其它Trinoo、Stacheldraht的攻击方法其实都差不了太多,各位可以自己看David Dittrich的文件比较看看它们的差异。

为了以后文章进行的方便,有些名词必须先在这里说明�U

Client程序-所谓Client程序就是骇客用来下攻击指令的地方,它们可以遥控网络上许多的Daemon程序执行攻击。

Daemon程序-接受Client程序送过来的指令,然后对Target目标做出攻击。

Master机器-执行Client程序的主机。

Agent机器-执行Daemon程序的主机。

TFN攻击法的组成是分成Client程序和Daemon程序两个部分。入侵者要攻击目标以前,首先它必须将Daemon程序安装在网络上许多的机器里面,安装机器的数量越多,攻击时的效果越好,因为机器越多台可以产生阻塞网络的TCP/IP封包越多,当然能塞住对方网站的时间也越久。安装完Daemon程序之后,接下来入侵者只要控制Client程序,由Client程序下命令给Daemon程序叫他们执行攻击,此时「万D齐发」,大量的TCP/IP封包同时涌入到目标机器内,就可以达到阻断该网站对外连通的通路。



(图3�U「分布式阻绝服务入侵」示意图)





(图4�UTFN攻击法分成Client/Daemon两个程序)



(图5)

在布局好Daemon程序「td」之后,攻击者便可以使用Client程序「tfn」下达指令给它,「tfn」程序是以命令列的方式来控制的「td」(如图6),命令如下�U

用法�U./tfn <iplist> <type> [ip] [port]

<iplist> contains a list of numerical hosts that are ready to flood

<type> -1 for spoofmask type (specify 0-3), -2 for packet size,

is 0 for stop/status, 1 for udp, 2 for syn, 3 for icmp,

4 to bind a rootshell (specify port)

5 to smurf, first ip is target, further ips are broadcasts

[ip] target ip[s], separated by @ if more than one

[port] must be given for a syn flood, 0 = RANDOM

参数说明�U

<iplist>-是个文件名称,里面指定网络上一堆Agent机器的网址,所以一个「tfn」程序可以控制多少个「td」程序,完全是看iplist里面的记载。

<type>-设定攻击时送出的封包类型、封包大小…等等。<type>内容是以数字来表示各种不同的类型设定,各数字代表意义为�U

-2 <bytes> set packet size for packets used for udp/icmp/smurf attacks

-1 <mask> set spoof mask. 0 will use random ips, 1 uses the correct

class a, 2 correct class b and 3 correct class c ip value

0 stop current floods; if no floods are found, display status

1 <targets> udp flood. target is one ip or multiple ips separated by @

2 <targets> <port> syn flood. if port is 0, random ports are used.

3 <targets> icmp echo request flood.

4 <port> only if compiled with ID_SHELL. bind a rootshell to <port>

5 <target@bcasts> smurf amplifier icmp attack. unlike the above floods,

this only supports a single target. further ips separated

by @ will be used as smurf amplifier broadcast addresses

[ip]-要攻击目标的ip地址

[port]-要攻击目标的哪一个TCP/IP Port

所以假设我已经安置好大量的「td」程序,那要启动TFN攻击是真的很容易,下达如�U「tfn iplist 2 192.168.100.1 0」之类的命令就可以弄当目标机器。所以「分布式阻绝服务入侵」攻击法难的不在于它的原理,而是在于事前的布局,并且目前这个攻击法讲实话还没有一个很有效的防堵措施,并且这种分布式攻击法的观念出来之后,等于是为骇客开启另一个攻击的管道。各位还记得我在之前杂志所介绍的「Back Orifice」特落依木马入侵程序吗?如果现在这类程序里面加入如「分布式阻绝服务入侵」功能的话,那可真的是不敢想象,因特网上有这么多的Windows机器,而且一般用Windows系统的人,对于这种网络安全的重视程度大多不若搞UNIX机器的人,所以我要建构Windows的Agent机器平台是真的太容易了,只要透过电子邮件系统、加上一些骗术,大概就可以在一堆Windows机器内置入我的攻击程序,再加上Windows网络管理方面的缺失,试想有几个使用者会在自己机器上安装网络监控软件,所以对于骇客而言,「分布式阻绝服务入侵」才只是个开始,而不是结束,所以这才是为什么目前有许多机构都在积极研究「分布式阻绝服务入侵」的原因,毕竟它可不是靠什么系统漏洞去攻击你,而是用正常却大量的TCP/IP讯息来阻断你的对外通讯。



(图6�U「tfn」程序的用法)

为什么「分布式阻绝服务」侦察到来源非常困难?

各位应该已经看到电视新闻报导,美国政府决定要跟骇客宣战,FBI也誓言一定要将此次事件的骇客绳之于法…….不过你若听到一些网络专家的看法,他们却都是回答说要抓到幕后破坏者很难。

「为什么这些专家这么说?」

还记得我在介绍「Back Orifice」特洛依木马程序时,曾经提到如何隐藏自己IP的一个技巧吗?这里「分布式阻绝服务入侵」也是用相同的方法来保护攻击者。试想今天我们所谓的「分布式阻绝服务入侵」,其实是靠网络上大量Agent机器里面的Daemon程序在做攻击,骇客实际上控制的地方是在Master机器,所以从Yahoo!这些被攻击的网站,他们看到攻击他们的IP地址是Agent机器的地址,不是Master机器,所以你单单从Yahoo!的网络监控软件记录,只能得知到Agent机器的位置,而无法得知Master机器在哪。

OK!所以要追查Master机器必须从Agent机器下手,设下陷阱才能追踪到Master机器的来源。不过这时问题又来了,假设骇客在网络上布置了1000台Agent机器,每次攻击只从中取400台来做攻击,这时你要在哪台Agent机器设下陷阱才能抓到骇客?可能你布下陷阱的那台Agent机器只用来做攻击一次就被抛弃了,所以这时所布下的陷阱根本没有用。再来就算你真的从Agent机器找到Master机器的地址,又如何能得知是谁用Client程序来作攻击呢?假设Master机器是在学校、网络咖啡….等等这些公共场合的机器,就算你知道机器位置,也无法得知是谁在用Client程序攻击,而且UNIX机器还可以用Cron Job之类的方法设置定时启动装置,所以你也很难从时间来比对出是谁使用Client程序攻击。

更不好的一个消息是TFN2K之类新的攻击程序,它可以假造Master机器来源的IP地址,也就是说Master机器丢给Agent机器命令时,它所附上的IP地址是假的,本来Agent机器它就不需要知道Master机器的位置,它只要接到命令、然后发射攻击就好,管它是谁给它下命令对不对,所以就算Master机器的IP地址是假的,Agnet机器能跟攻击目标沟通就好,Master机器到Agent机器这段,只要维持单一方向的TCP/IP通讯就可以了(注),所以这类新的攻击程序要从Agent机器追踪到Master机器是更加困难!(注�U前面这段不懂TCP/IP架构的人可能不是很懂,你只要想成正常TCP/IP通讯是两个正确的IP地址在哪边沟通,而新攻击法它是假造地址的Master机器送讯息给Agent机器,所以从Agnet机器看到Master机器的IP地址是假的,但是这样并不影响攻击,因为Agent机器只要接到命令就好,它并不一定需要回复它接到了命令,所以Master机器的地址是假的也没关系)

杂志内其实我不应该讲太多这类新的攻击程序构想,各位只要知道「分布式阻绝服务入侵」很难追查到来源就好,不过这是针对计算机技术部分。我看到外国一篇报导,他们说其实利用人性的特点来设陷阱来捕捉幕后骇客会比较容易,这点我是蛮赞同的。其实若做这件事的骇客从此就收手不干的话,我想从目前的信息要追查到是谁干的会有点困难,但是若他还想继续犯案的话,我想时间一长,一定会有地方会露出破绽的。

检查我的系统是否有Daemon程序?

目前其实对「分布式阻绝服务入侵」并没有一个很好的防范措施,不过现在倒是可以先从拔掉Daemon程序下手。不管那种分布式阻绝服务入侵方法,它的攻击一定是透过Daemon程序,所以我们如果可以将Daemon程序铲除的话,就可以防止骇客继续破坏。在David Dittrich 的网站上,有提供检查系统是否有「分布式阻绝服务入侵」档案的扫描程序,各位可以去以下网址下载�U

「http://staff.washington.edu/dittrich/misc/ddos/」,如图7所示。



(图7)

或者若是骇客没有改写TFN程序的话,你可以在UNIX下面使用strings指令,检查看看你的系统是否有被人偷偷安装TFN程序�U

# strings - td ←在UNIX下输入此行命令

. . .↓看看是否有以下字符串

%d.%d.%d.%d

/bin/sh

tfn-daemon

already %s flooding

multiple targets

ICMP flood: %s

tfn-child

SMURF (target@bcast@...): %s

UDP flood: %s

SYN flood: port %d, multiple targets

SYN flood: port %d, %s

ready - size: %d spoof: %d

%s flood terminated

packet size: %d bytes

spoof mask: *.*.*.* (%s)

spoof mask: 1.*.*.* (%s)

spoof mask: 1.1.*.* (%s)

spoof mask: 1.1.1.* (%s)

spoof test: %s

shell bound to port %s

. . .

[0;35m[tribe flood network]

(c) 1999 by

[5mMixter

ICMP

SMURF

. . .

# strings - tfn ←在UNIX下输入此行命令

. . . ↓看看是否有以下字符串

%d.%d.%d.%d

ERROR reading IP list

[1;37m

[request: change packet size]

[request: change spoofmask]

[request: stop and display status]

[request: udp flood %s]

[request: syn flood [port: %s] %s]

[request: icmp flood %s]

[request: bind shell to port %s]

[request: smurf (target@bcast@...) %s]

[0;0m

[0m%s:

[0;31m

[0;34mtimeout

[1;34m

usage: %s <iplist> <type> [ip] [port]

<iplist> contains a list of numerical hosts that are ready to flood

<type> -1 for spoofmask type (specify 0-3), -2 for packet size,

is 0 for stop/status, 1 for udp, 2 for syn, 3 for icmp,

4 to bind a rootshell (specify port)

5 to smurf, first ip is target, further ips are broadcasts

[ip] target ip[s], separated by %s if more than one

[port] must be given for a syn flood, 0 = RANDOM

skipping

[0;35m[tribe flood network]

(c) 1999 by

[5mMixter

. . .

其余其它检查「Trin00」和「Stacheldraht」的方法,请自行参考David Dittrich的说明,这里我就不一一列出。(都是用strings指令,然后看看里面是否含有攻击程序的字符串讯息)


地主 发表时间: 09/21 15:27

论坛: 菜鸟乐园

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

粤ICP备05087286号