DoS与DDos攻击工具基本技术及其发展

网络技术    2009-11-05 16:39  

  DoS (Denial of Service)攻击其中文含义是拒绝服务攻击,这种攻击行动使网站服务器充斥大量要求回复的 信息,消耗网络带宽或系统资源,导致网络或系统不胜负荷以至于瘫痪而停止提供正常的网络服务。黑客不正当地采用标准协议或连接方法,向攻击的服务发出大量的讯息,占用及超越受攻击服务器所能处理的能力,使它当(Down)机或不能正常地为用户服务。

  “拒绝服务”是如何攻击的

  通过普通的网络连线,使用者传送信息要求服务器予以确定。服务器于是回复用户。用户被确定后,就可登入服务器。

  “拒绝服务”的攻击方式为:用户传送众多要求确认的信息到服务器,使服务器里充斥着这种无用的信息。

  所有的信息都有需回复的虚假地址,以至于当服务器试图回传时,却无法找到用户。服务器于是暂时等候,有时超过一分钟,然后再切断连接。服务器切断连接时,黑客再度传送新一批需要确认的信息,这个过程周而复始,最终导致服务器无法动弹,瘫痪在地。

  在这些 DoS 攻击方法中,又可以分为下列几种:

  TCP SYN Flooding

  Smurf

  Fraggle

   

  1.TCP Syn Flooding

  由于TCP协议连接三次握手的需要,在每个TCP建立连接时,都要发送一个带SYN标记的数据包,如果在服务器端发送应答包后,客户端不发出确认,服务器会等待到数据超时,如果大量的带SYN标记的数据包发到服务器端后都没有应答,会使服务器端的TCP资源迅速枯竭,导致正常的连接不能进入,甚至会导致服务器的系统崩溃。这就是TCP

  SYN Flooding攻击的过程。

Www.Hdut.Com

图1 TCP Syn攻击

  TCP Syn 攻击是由受控制的大量客户发出 TCP 请求但不作回复,使服务器资源被占用,再也无法正常为用户服务。服务器要等待超时(Time Out)才能断开已分配的资源。

  2.Smurf黑客采用 ICMP(Internet Control Message Protocol RFC792)技术进行攻击。常用的ICMP有 PING 。首先黑客找出网络上有哪些路由器会回应 ICMP 请求。然后用一个虚假的 IP 源地址向路由器的广播地址发出讯息,路由器会把这讯息广播到网络上所连接的每一台设备。这些设备又马上回应,这样会产生大量讯息流量,从而占用所有设备的资源及网络带宽,而回应的地址就是受攻击的目标。例如用500K bit/sec 流量的 ICMP echo (PING)包广播到100 台设备,产生 100 个 PING 回应,便产生 50M bit/sec流量。这些流量流向被攻击的服务器,便会使这服务器瘫痪。

  ICMP Smurf 的袭击加深了ICMP的泛滥程度,导致了在一个数据包产生成千的ICMP数据包发送到一个根本不需要它们的主机中去,传输多重信息包的服务器用作Smurf 的放大器。

Www.Hdut.Com

   

图2 Smurf 攻击图

  3.Fraggle:Fraggle

  基本概念及做法像 Smurf, 但它是采用UDP echo 讯息。

  如何阻挡“拒绝服务”的攻击

  阻挡“拒绝服务”的攻击的常用方法之一是:在网络上建立一个过滤器(filter)或侦测器(sniffer),在信息到达网站服务器之前阻挡信息。过滤器会侦察可疑的攻击行动。如果某种可疑行动经常出现,过滤器能接受指示,阻挡包含那种信息,让网站服务器的对外连接线路保持畅通。

  DDoS:

  DDoS(Distributed Denial of Service)其中文含义为分布式拒绝服务攻击。

  Distributed DoS 是黑客控制一些数量的PC 机或路由器,用这些 PC 机或路由器发动 DoS 攻击。因为黑客自己的 PC 机可能不足够产生出大量的讯息,使遭受攻击的网络服务器处理能力全部被占用。

  黑客采用 IP Spoofing 技术,令他自己的 IP 地址隐藏,所以很难追查。如果是在 Distributed DoS 情况下,被追查出来的都是被黑客控制的用户的 IP 地址;他们本身也是受害者。

  黑客一般采用一些远程控制软件,好像Trinoo, Tribal Flood Network, Stacheldraht 及其他DoS 程序。美国政府资助的cERT (Computer Emergency Response Team) 及 FBI都有免费软件如 find_dosv31,给企业检查自己的网络有没有被黑客安装这些远程控制软件。但黑客亦同时在修改软件以逃避这些检查软件。这是一场持久的网上战争。

Www.Hdut.Com

图3 黑客图

  攻击者在Client(客户端)操纵攻击过程。每个Handler(主控端)是一台已被入侵并运行了特定程序的系统主机。每个主控端主机能够控制多个Agent(代理端)。每个代理端也是一台已被入侵并运行某种特定程序的系统主机。每个响应攻击命令的代理端会向被攻击目标主机发送拒绝服务攻击数据包。

  为了提高分布式拒绝服务攻击的成功率,攻击者需要控制成百上千的被入侵主机。这些主机通常是Linux和SUN机器,但这些攻击工具也能够移植到其它平台上运行。这些攻击工具入侵主机和安装程序的过程都是自动化的。这个过程可分为以下几个步骤:

  1、探测扫描大量主机以寻找可入侵主机目标。

  2、入侵有安全漏洞的主机并获取控制权。

  3、在每台入侵主机中安装攻击程序。

  4、利用已入侵主机继续进行扫描和入侵。

  由于整个过程是自动化的,攻击者能够在5秒钟内入侵一台主机并安装攻击工具。也就是说,在短短的一小时内可以入侵数千台主机。

  几种常见分布式拒绝服务攻击工具的特征

  至今为止,攻击者最常使用的分布式拒绝服务攻击程序包括4种:Trinoo、TFN、TFN2K和Stacheldraht。

  以下是攻击者常用的分布式拒绝服务攻击工具:

  Trinoo

  客户端、主控端和代理端主机相互间通讯时使用如下端口:

  1524 tcp

  27665 tcp

  27444 udp

  31335 udp

  重要提示:以上所列出的只是该工具的缺省端口,仅作参考。这些端口可以轻易被修改。

  TFN(Tribal Flood Network)

  客户端、主控端和代理端主机相互间通讯时使用ICMP ECHO和ICMP ECHO REPLY数据包。

  Stacheldraht

  客户端、主控端和代理端主机相互间通讯时使用如下端口和数据包:

  16660 tcp

  65000 tcp

  ICMP ECHO

  ICMP ECHO REPLY

  重要提示:以上所列出的只是该工具的缺省端口,仅作参考。这些端口可以轻易被修改。

  TFN2K

  客户端、主控端和代理端主机相互间通讯时并没有使用任何指定端口(在运行时指定或由程序随机选择),但结合了UDP、ICMP和TCP数据包进行通讯。

  拒绝服务攻击工具“进化”过程

  最容易的攻击方法之一是拒绝服务(Denial of Service)攻击。在TCP/IP堆栈中存在许多漏洞,如允许碎片包、大数据包、IP路由选择、半公开TCP连接、数据包flood等等,这些都能够降低系统性能,甚至使系统崩溃。

  每发现一个漏洞,相应的攻击程序往往很快就会出现。每一个攻击程序都是独立的。一个特定的漏洞攻击程序往往只影响某一版本的TCP/IP协议(虽然Mircosoft拥有非常庞大的个人计算机市场,大多数的家庭用户几乎完全没有意识到这些漏洞的存在,也不知道如何得到和使用安全漏洞的补丁程序,多种漏洞攻击方法导致目标系统崩溃的机率相当高。)

  拒绝服务攻击程序可从互联网上下载得到,如以下网址:

  http://www.technotronic.com/denial.html

  http://www.rootshell.com/

  接着就是用Unix shell脚本将多种的拒绝服务攻击程序组合到一个工具里。“rape”就是这样一种工具:

  echo “Editted for use with www.ttol.base.org”

  echo “rapeing $IP. using weapons:”

  echo “latierra ”

  echo -n “teardrop v2 ”

  echo -n “newtear ”

  echo -n “boink ”

  echo -n “bonk ”

  echo -n “frag ”

  echo -n “fucked ”

  echo -n “troll icmp ”

  echo -n “troll udp ”

  echo -n “nestea2 ”

  echo -n “fusion2 ”

  echo -n “peace keeper ”

  echo -n “arnudp ”

  echo -n “nos ”

  echo -n “nuclear ”

  echo -n “ssping ”

  echo -n “pingodeth ”

  echo -n “smurf ”

  echo -n “smurf4 ”

  echo -n “land ”

  echo -n “jolt ”

  echo -n “pepsi ”

  这种工具的优点是允许一个攻击者使用多种攻击方法同时攻击单个IP地址(这增加了攻击成功的概率),但也意味着必须将所有编译好的攻击程序打包好(如Unix的“tar”文件),以方便传输和进行攻击。

  在允许使用多种拒绝服务攻击方法的情况下,同时又是一个单一的、更易于保存/传输/和使用的已编译程序,就是类似于Mixter编写的“targa.c”这种程序。Targa程序在一个C源程序中结合了以下多种攻击方法:

  /* targa.c - copyright by Mixter

  version 1.0 - released 6/24/98 - interface to 8

  multi-platform remote denial of service exploits

  */

  。 . 。

  /* bonk by route|daemon9 & klepto

  * jolt by Jeff W. Roberson (modified by Mixter for overdrop effect)

  * land by m3lt

  * nestea by humble & ttol

  * newtear by route|daemon9

  * syndrop by PineKoan

  * teardrop by route|daemon9

  * winnuke by _eci */

  但是,即使是象“targa”这类多种拒绝服务攻击组合工具,一个攻击者在同一时间内也只能攻击一个IP地址。

  为了增加攻击的效率,一群攻击者们需要通过IRC频道或电话来保持联系,每一个人攻击不同的系统,实现团体攻击。这种方法在探测漏洞、入侵系统、安装后门和rootkit的行动中也经常被使用。

  即使存在一些使用限制,但至少在两年内,这个工具不断地增加各种攻击程序,形成了一个名为 “Denial of Service Cluster”(拒绝服务集群)软件包。“trinoo”工具就是这样一个例子。而在计算机黑客界中也有一个由Mixter编写的类似工具“Tribe Flood Network”(TFN)。

  与trinoo只实现UDP攻击相比,TFN支持ICMP flood、UDP flood、SYN flood和Smurf攻击等。这些攻击通过发送ICMP_ECHOREPLY(ICMP Type 0)包命令控制。TFN也使用了与trinoo一样的Blowfish加密算法。

  在今后的日子里,这些拒绝服务工具包将会得到进一步的发展与完善,功能更强大,隐蔽性更强,关键字符串和控制命令口令将使用更强壮加密算法,甚至对自身进行数字签名,或在被非攻击者自己使用时自行消毁,使用加密通讯通道,使用象ICMP这种令防火墙更难监测或防御的协议进行数据包传输,等等。

   

在线留言

我要留言