黑客经验谈之如何防止ddos攻击

2008-02-23 06:59:09来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

进入2000年以来,网络遭受攻击事件不断发生,全球许多著名网站如yahoo、cnn、buy、ebay、fbi,包括中国的新浪网相继遭到不名身份的黑客攻击,值得注意的是,在这些攻击行为中,黑客摈弃了以往常常采用的更改主页这一对网站实际破坏性有限的做法,取而代之的是,在一定时间内,彻底使被攻击的网络丧失正常服务功能,这种攻击手法为 DDoS,即分布式拒绝服务攻击(Distributed denial of service )。

简单的讲,拒绝服务就是用超出被攻击目标处理能力的海量数据包消耗可用系统,带宽资源,致使网络服务瘫痪的一种攻击手段。在早期, 拒绝服务攻击主要是针对处理能力比较弱的单机,如个人pc,或是窄带宽连接的网站,对拥有高带宽连接,高性能设备的网站影响不大,但在99年底,伴随着DDoS的出现,这种高端网站高枕无忧的局面不复存在,与早期的DoS攻击由单台攻击主机发起,单兵作战相较,DDoS实现是借助数百,甚至数千台被植入攻击守护进程的攻击主机同时发起的集团作战行为,在这种几百,几千对一的较量中, 网络服务提供商所面对的破坏力是空前巨大的。

拒绝服务攻击自问世以来,衍生了多种形式,现将两种使用较频繁的TCP-SYN flood, UDP flood做一个介绍 。TCP-SYN flood又称半开式连接攻击,每当我们进行一次标准的TCP连接(如WWW浏览,下载文件等)会有一个一个三次握手的过程,首先是请求方向服务方发送一个SYN消息,服务方收到SYN后,会向请求方回送一个SYN-ACK表示确认,当请求方收到SYN-ACK后则再次向服务方发送一个ACK消息,一次成功的TCP连接由此就建立,可以进行后续工作了,如图所示:

而TCP-SYN flood在它的实现过程中只有前两个步骤,当服务方收到请求方的SYN并回送SYN-ACK确认消息后, 请求方由于采用源地址欺骗等手段,致使服务方得不到ACK回应,这样,服务方会在一定时间处于等待接收请求方ACK消息的状态,一台服务器可用的TCP连接是有限的,如果恶意攻击方快速连续的发送此类连接请求,则服务器可用TCP连接队列很快将会阻塞,系统可用资源,网络可用带宽急剧下降,无法向用户提供正常的网络服务。

Udp在网络中的应用也是比较广泛的,比如DNS解析、realaudio实时音乐、网络管理、联网游戏等,基于udp的攻击种类也是比较多的,如目前在互连网上提供www、mail等服务的设备一般为使用unix操作系统的服务器,他们默认是开放一些有被恶意利用可能的udp服务的,如:echo,chargen. echo服务回显接收到的每一个数据包,而原本作为测试功能的chargen服务会在收到每一个数据包时随机反馈一些字符,如果恶意攻击者将这两个udp服务互指,则网络可用带宽会很快耗尽。

自99年后半年开始,DDoS攻击不断在Internet出现,并在应用的过程中不断的得到完善,在Unix或nt环境上截至目前已有一系列比较成熟的软件产品,如Trinoo,TFN,TFN2K,STACHELDRATH等,他们基本核心及攻击思路是很相象的,下面就通过Trinoo对这类软件做一介绍。

Trinoo是基于UDP flood的攻击软件,它向被攻击目标主机随机端口发送全零的4字节UDP包,被攻击主机的网络性能在处理这些超出其处理能力垃圾数据包的过程中不断下降,直至不能提供正常服务甚至崩溃。

Trinoo攻击功能的实现,是通过三个模块付诸实施的,

1、攻击守护进程(NS);2、攻击控制进程(MASTER);3、客户端(NETCAT,标准TELNET程序等)。

攻击守护进程NS是真正实施攻击的程序,它一般和攻击控制进程(MASTER)所在主机分离,在原始C文件ns.c编译的时候,需要加入可控制其执行的攻击控制进程MASTER所在主机IP,(只有在ns.c中的IP方可发起ns的攻击行为)编译成功后,黑客通过目前比较成熟的主机系统漏洞破解(如rpc.cmsd,rpc.ttdbserver,rpc.statd)可以方便的将大量NS植入因特网中有上述漏洞主机内。ns运行时,会首先向攻击控制进程(MASTER)所在主机的31335端口发送内容为HELLO的UDP包,标示它自身的存在,随后攻击守护进程即处于对端口27444的侦听状态,等待master攻击指令的 到来。

攻击控制进程(MASTER)在收到攻击守护进程的HELLO包后,会在自己所在目录生成一个加密的名为...的可利用主机表文件, MASTER的启动是需要密码的,在正确输入默认密码gOrave后, MASTER即成功启动,它一方面侦听端口31335,等待攻击守护进程的HELLO包,另一方面侦听端口27665,等待客户端对其的连接。当客户端连接成功并发出指令时, MASTER所在主机将向攻击守护进程ns所在主机的27444端口传递指令。

客户端不是trinoo自带的一部分,可用标准的能提供TCP连接的程序,如TELNET,NETCAT等,连接MASTER所在主机的27665端口, 输入默认密码betaalmostdone后,即完成了连接工作,进入攻击控制可操作的提示状态。

目前版本的trinoo有六个可用命令,mtimer:设定攻击时长,如mtimer 60,攻击60秒,如果不设置的话,默认是无限。dos:对某一目标主机实施攻击,如dos 12.34.45.56 mdie:停止正在实施的攻击,使用这一功能需要输入口令killme,mping:请求攻击守护进程NS回应,监测ns是否工作。mdos, 对多个目标主机实施攻击,msize:设置攻击UDP包的大小。

我们来看一次攻击的实例:

被攻击的目标主机victim IP为:12.23.34.45

ns被植入三台sun的主机里,他们的IP对应关系分别为

client1:11.11.11.11 

client2:22.22.22.22 

client3:33.33.33.33

master所在主机为masterhost:11.22.33.44

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:黑客经验交流技巧篇之防注入代码

下一篇:骇客学堂:网络入侵检测初步探测方法