|
作者: 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号