集群幽魂ddos攻击器器怎么用

图解DoS与DDos攻击工具基本技术
  “拒绝服务”是如何攻击的
  通过普通的网络连线,使用者传送信息要求服务器予以确定。服务器于是回复用户。用户被确定后,就可登入服务器。
  “拒绝服务”的攻击方式为:用户传送众多要求确认的信息到服务器,使服务器里充斥着这种无用的信息。
  所有的信息都有需回复的虚假地址,以至于当服务器试图回传时,却无法找到用户。服务器于是暂时等候,有时超过一分钟,然后再切断连接。服务器切断连接时,黑客再度传送新一批需要确认的信息,这个过程周而复始,最终导致服务器无法动弹,瘫痪在地。
在这些 DoS 攻击方法中,又可以分为下列几种:
  TCP SYN Flooding
  Fraggle
  1.TCP Syn Flooding
  由于TCP协议连接三次握手的需要,在每个TCP建立连接时,都要发送一个带SYN标记的数据包,如果在服务器端发送应答包后,客户端不发出确认,服务器会等待到数据超时,如果大量的带SYN标记的数据包发到服务器端后都没有应答,会使服务器端的TCP资源迅速枯竭,导致正常的连接不能进入,甚至会导致服务器的系统崩溃。这就是TCP
 SYN Flooding攻击的过程。
图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
的放大器。
图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,给企业检查自己的网络有没有被黑客安装这些远程控制软件。但黑客亦同时在修改软件以逃避这些检查软件。这是一场持久的网上战争。
图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拥有非常庞大的个人计算机市场,大多数的家庭用户几乎完全没有意识到这些漏洞的存在,也不知道如何得到和使用安全漏洞的补丁程序,多种漏洞攻击方法导致目标系统崩溃的机率相当高。)
  拒绝服务攻击程序可从互联网上下载得到,如以下网址:
  /denial.html
  接着就是用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"这类多种拒绝服务攻击组合工具,一个攻击者在同一时间内也只能攻击一个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这种令防火墙更难监测或防御的协议进行数据包传输,等等。
常见的DoS攻击
  拒绝服务攻击是一种对网络危害巨大的恶意攻击。今天,DoS具有代表性的攻击手段包括Ping &
of & Death、TearDrop、UDP & flood
& 、SYN & flood、Land
& Attack、IP & Spoofing
& DoS等。我们看看它们又是怎么实现的。
  死亡之 & ping & (
& ping & of &
death & ) & :ICMP
& (Internet & Control
& Message &
Protocol,Internet控制信息协议)在Internet上用于错误处理和传递控制信息。它的功能之一是与主机联系,通过发送一个
"回音请求 "(echo & request)信息包看看主机是否 "活着
"。最普通的ping程序就是这个功能。而在TCP/IP的RFC文档中对包的最大尺寸都有严格限制规定,许多操作系统的TCP/IP协议栈都规定
包大小为64KB,且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区。 "Ping
& of & Death " &
就是故意产生畸形的测试Ping(Packet & Internet
& Groper)包,声称自己的尺寸超过 & ICMP
& 上限,也就是加载的尺寸超过 &
64KB上限,使未采取保护措施的网络系统出现内存分配错误,导致 & TCP/IP
& 协议栈崩溃,最终接收方荡机。
  泪滴( & teardrop & )
& :泪滴攻击利用在 & TCP/IP
& 协议栈实现中信任IP &
碎片中的包的标题头所包含的信息来实现自己的攻击。IP &
分段含有指示该分段所包含的是原包的哪一段的信息,某些 & TCP/IP协议栈(例如NT
& 在service & pack
& 4 & 以前)在收到含有重叠偏移的伪造分段时将崩溃。
& UDP & 洪水 &
(UDP & flood) &
:如今在Internet上UDP(用户数据包协议)的应用比较广泛,很多提供WWW和Mail等服务设备通常是使用Unix的服务器,它们默认打开一些被黑客恶意利用的UDP服务。如echo服务会显示接收到的每一个数据包,而原本作为测试功能的chargen服务会在收到每一个数据包时随机反馈一些字符。UDP
& flood假冒攻击就是利用这两个简单的 & TCP/IP
& 服务的漏洞进行恶意攻击,通过伪造与某一主机的 &
Chargen & 服务之间的一次的 & UDP
& 连接,回复地址指向开着Echo &
服务的一台主机,通过将Chargen & 和 &
Echo服务互指,来回传送毫无用处且占满带宽的垃圾数据,在两台主机之间生成足够多的无用数据流,这一拒绝服务攻击飞快地导致网络可用带宽耗尽。
& SYN & 洪水 & (
& SYN & flood &
) & :我们知道当用户进行一次标准的TCP(Transmission
& Control &
Protocol)连接时,会有一个3次握手过程。首先是请求服务方发送一个SYN(Synchronize
& Sequence &
Number)消息,服务方收到SYN后,会向请求方回送一个SYN-ACK表示确认,当请求方收到SYN-ACK后,再次向服务方发送一个ACK消息,这样一次TCP连接建立成功。
"SYN & Flooding
"则专门针对TCP协议栈在两台主机间初始化连接握手的过程进行DoS攻击,其在实现过程中只进行前2个步骤:当服务方收到请求方的SYN-ACK确认消息后,请求方由于采用源地址欺骗等手段使得服务方收不到ACK回应,于是服务方会在一定时间处于等待接收请求方ACK消息的状态。而对于某台服务器来说,可用的TCP连接是有限的,因为他们只有有限的内存缓冲区用于创建连接,如果这一缓冲区充满了虚假连接的初始信息,该服务器就会对接下来的连接停止响应,直至缓冲区里的连接企图超时。如果恶意攻击方快速连续地发送此类连接请求,该服务器可用的TCP连接队列将很快被阻塞,系统可用资源急剧减少,网络可用带宽迅速缩小,长此下去,除了少数幸运用户的请求可以插在大量虚假请求间得到应答外,服务器将无法向用户提供正常的合法服务。
  Land & (Land & Attack)攻击:在
& Land & 攻击中,黑客利用一个特别打造的SYN
包--它的原地址和目标地址都被设置成某一个服务器地址进行攻击。此举将导致接受服务器向它自己的地址发送
& SYN-ACK & 消息,结果这个地址又发回
消息并创建一个空连接,每一个这样的连接都将保留直到超时,在 & Land
& 攻击下,许多 & UNIX将崩溃,NT
& 变得极其缓慢(大约持续五分钟)。
  IP欺骗DOS攻击:这种攻击利用TCP协议栈的RST位来实现,使用IP欺骗,迫使服务器把合法用户的连接复位,影响合法用户的连接。假设现在有一个合法用户(100.100.100.100)已经同服务器建立了正常的连接,攻击者构造攻击的TCP数据,伪装自己的IP为
100.100.100.100,并向服务器发送一个带有RST位的TCP数据段。服务器接收到这样的数据后,认为从100.100.100.100发送的连接有错误,就会清空缓冲区中已建立好的连接。这时,合法用户100.100.100.100再发送合法数据,服务器就已经没有这样的连接了,该用户就被拒绝服务而只能重新开始建立新的连接。
  常见的DDoS攻击
  smurf、Fraggle & 攻击、Trinoo、Tribe
Network(TFN)、TFN2k以及Stacheldraht是比较常见的DDoS攻击程序,我们再看看它们的原理,其攻击思路基本相近。
& Smurf & 攻击:Smurf是一种简单但有效的
攻击技术,Smurf还是利用ping程序进行源IP假冒的直接广播进行攻击。在Internet上广播信息可以通过一定的手段(通过广播地址或其他机制)发送到整个网络中的机器。当某台机器使用广播地址发送一个ICMP
& echo请求包时(例如Ping),一些系统会回应一个ICMP
echo回应包,这样发送一个包会收到许多的响应包。Smurf攻击就是使用这个原理来进行的,同时它还需要一个假冒的源地址。也就是说Smurf在网络中发送的源地址为要攻击的主机地址,目的地址为广播地址的ICMP
echo请求包,使许多的系统同时响应并发送大量的信息给被攻击主机(因为他的地址被攻击者假冒了)。Smurf是用一个伪造的源地址连续ping一个或多个计算机网络,这就导致所有计算机响应的那个主机地址并不是实际发送这个信息包的攻击计算机。这个伪造的源地址,实际上就是攻击的目标,它将被极大数量的响应信息量所淹没。对这个伪造信息包做出响应的计算机网络就成为攻击的不知情的同谋。一个简单的
攻击最终导致网络阻塞和第三方崩溃,这种攻击方式要比 & ping
& of & death &
洪水的流量高出一两个数量级。这种使用网络发送一个包而引出大量回应的方式也被叫做Smurf "放大 "。
  Fraggle & 攻击:Fraggle & 攻击对
& Smurf & 攻击作了简单的修改,使用的是
& UDP & 应答消息而非 &
   "trinoo "攻击:trinoo & 是复杂的 &
DDoS & 攻击程序,是基于UDP &
flood的攻击软件。它使用 "master "程序对实际实施攻击的任何数量的 "代理
"程序实现自动控制。当然在攻击之前,侵入者为了安装软件,已经控制了装有master程序的计算机和所有装有代理程序的计算机。攻击者连接到安装了
master程序的计算机,启动master程序,然后根据一个IP地址的列表,由master程序负责启动所有的代理程序。接着,代理程序用UDP
信息包冲击网络,向被攻击目标主机的随机端口发出全零的4字节UDP包,在处理这些超出其处理能力垃圾数据包的过程中,被攻击主机的网络性能不断下降,直到不能提供正常服务,乃至崩溃。它对IP地址不做假,因此此攻击方法用得不多。
   "Tribal & Flood & Network "和
& "TFN2K " & 攻击:Tribe
Network与trinoo一样,使用一个master程序与位于多个网络上的攻击代理进行通讯,利用ICMP给代理服务器下命令,其来源可以做假。
TFN可以并行发动数不胜数的DoS攻击,类型多种多样,而且还可建立带有伪装源IP地址的信息包。 &
可以由TFN发动的攻击包括:SYN & flood、UDP &
flood、ICMP回音请求flood及Smurf(利用多台服务器发出海量数据包,实施DoS攻击)等攻击。TFN的升级版TFN2k进一步对命令数据包加密,更难查询命令内容,命令来源可以做假,还有一个后门控制代理服务器。
   "stacheldraht
"攻击:Stacheldraht也是基于TFN和trinoo一样的客户机/服务器模式,其中Master程序与潜在的成千个代理程序进行通讯。在发动攻击时,侵入者与master程序进行连接。Stacheldraht增加了新的功能:攻击者与master程序之间的通讯是加密的,对命令来源做假,而且可以防范一些路由器用RFC2267过滤,若检查出有过滤现象,它将只做假IP地址最后8位,从而让用户无法了解到底是哪几个网段的哪台机器被攻击;同时使用rcp
& (remote &
copy,远程复制)技术对代理程序进行自动更新。Stacheldraht &
同TFN一样,可以并行发动数不胜数的DoS攻击,类型多种多样,而且还可建立带有伪装源IP地址的信息包。Stacheldraht所发动的攻击包括
UDP & 冲击、TCP & SYN
& 冲击、ICMP & 回音应答冲击
如何防止DoS/DdoS攻击
  DoS攻击几乎是从互联网络的诞生以来,就伴随着互联网络的发展而一直存在也不断发展和升级。值得一提的是,要找DoS的工具一点不难,黑客群居的网络社区都有共享黑客软件的传统,并会在一起交流攻击的心得经验,你可以很轻松的从Internet上获得这些工具,像以上提到的这些DoS攻击软件都是可以从网上随意找到的公开软件。所以任何一个上网者都可能构成网络安全的潜在威胁。DoS攻击给飞速发展的互联网络安全带来重大的威胁。然而从某种程度上可以说,DoS攻击永远不会消失而且从技术上目前没有根本的解决办法。
  面对凶多吉少的DoS险滩,我们该如何对付随时出现的黑客攻击呢?让我们首先对造成DoS攻击威胁的技术问题做一下总结。DoS攻击可以说是如下原因造成的:
  1.软件弱点是包含在操作系统或应用程序中与安全相关的系统缺陷,这些缺陷大多是由于错误的程序编制,粗心的源代码审核,无心的副效应或一些不适当的绑定所造成的。由于使用的软件几乎完全依赖于开发商,所以对于由软件引起的漏洞只能依靠打补丁,安装hot
& fixes和Service &
packs来弥补。当某个应用程序被发现有漏洞存在,开发商会立即发布一个更新的版本来修正这个漏洞。由于开发协议固有的缺陷导致的DoS攻击,可以通过简单的补丁来弥补系统缺陷。
  2.错误配置也会成为系统的安全隐患。这些错误配置通常发生在硬件装置,系统或者应用程序中,大多是由于一些没经验的,无责任员工或者错误的理论所导致的。如果对网络中的路由器,防火墙,交换机以及其他网络连接设备都进行正确的配置会减小这些错误发生的可能性。如果发现了这种漏洞应当请教专业的技术人员来修理这些问题。
  3.重复请求导致过载的拒绝服务攻击。当对资源的重复请求大大超过资源的支付能力时就会造成拒绝服务攻击(例如,对已经满载的Web服务器进行过多的请求使其过载)。
  要避免系统免受DoS攻击,从前两点来看,网络管理员要积极谨慎地维护系统,确保无安全隐患和漏洞;而针对第三点的恶意攻击方式则需要安装防火墙等安全设备过滤DoS攻击,同时强烈建议网络管理员应当定期查看安全设备的日志,及时发现对系统的安全威胁行为。
3& Dos/DDos攻击工具分析
3.1& Dos攻击工具分析
3.1.1& Flood
Flood的字面意思是“淹没”,Flood是Dos攻击的一种手段,具有高带宽的计算机可以通过大量发送TCP、UDP、ICMP报文,将低带宽的计算机“淹没”,降低受害者计算机的响应速度,最终导致系统蓝屏或者死机。
3.1.2& Smurf
攻击者首先(利用IP Spoofed)假冒目标主机向路由器发出ICMP Echo
Request数据报。因为目的地址是广播地址,路由器收到数据报后会对该网段内的所有主机发出此ICMP包。而所有的主机在接收到此信息后对源地址(被假冒的攻击目标)发出ICMP
Echo Request响应。这样,所有的
ICMP数据报在极短的时间内涌入目标主机,使目标主机因为无法响应如此多的系统中断而死机或暂停服务。
3.1.3& Land
Land利用向目标系统发送大量源地址和目标地址相同的包。目标系统接收到Land包后,向包中的目标地址(目标系统本身)发送SYN-ACK包,收到这个包后再向“目的地址”发送ACK,并创建一个空连接,从而目标系统在解释Land包时占用大量系统资源,使网络功能完全瘫痪。
3.2& DDos攻击工具分析
3.2.1& Trinoo
Trinoo攻击是由大量主控端、代理端组成。
Trinoo网络进行攻击时,攻击者先连接主控端,输入发动攻击指令,使用端口是27665/TCP,随后主控端与各代理端进行通信,传送攻击指令和目标主机IP,使用端口是27444/UDP,最后代理端向目标发动攻击。
3.2.2& TFN2K
TFN2K由客户程序、守护程序、主控端、代理端及目标主机组成。进行TFN2K攻击时,主控端通过TCP、UDP、ICMP或随机性使用其中之一的数据报向代理端主机发送命令。对目标主机攻击方法包括TCP/SYN、UDP、ICMP/PING、SMURF等。主控端和代理端之间数据报的头信息也是随机的,TFN2K的守护程序是完全沉默的,它不会对接收到的命令作任何响应。客户端重复发送每一个命令20次,并且认为守护程序应该至少能接收到1次。这些命令数据报可能混杂了许多随机IP地址的伪造数据报。所有命令都经过CAST-255算法加密,加密密钥在程序编译时定义,并作为TFN2K客户端程序的口令,所有加密数据在发送前都被编码成打印的ACSⅡ字符。TFN2K守护程序接收数据报并解密数据,守护进程为每一个攻击产生子进程。TFN2K的客户守护程序还通过修改argv[0]的内容,即可以执行文件名以及修改进程名以更好地掩饰自己。
4& Dos /DDos攻击的检测
(1)根据分析,攻击者在进行DDos攻击前总需要解析目标的主机名。BIND域名服务器能够记录这些请求。在DDos攻击前,域名服务器会接收到大量的反向解析目标IP主机名的PTR查询请求。
(2)当DDos攻击一个网站时,会出现明显超出该网络正常工作时极限通信流量的现象。因此,可以在主干路由器建立ACL访问控制规则,以监测和过滤这些通信数据流。
(3)检测特大型的ICMP和UDP数据报。正常的UDP会话一般都使用小的UDP包,通常有效数据内容不超过10字节。正常的ICMP消息一般为64~128字节。那些明显大的数据报很有可能就是控制通信用的,主要含有加密后的目标地址和一些命令选项。一旦捕获到(没有经过伪造的)控制信息通信,DDos服务器的位置就无可遁形了,因为控制信息通信数据报的目标地址是不能伪造的。
(4)检查不属于正常连接通信的TCP和UDP数据报。最隐秘的DDos工具随机使用多种通信协议(包括基于连接的协议)通过信道发送数据。优秀的防火墙和路由规则能够发现这些数据报。另外那些连接高于1024而且不属于常用网络服务的目标端口也是非常值得怀疑的。
(5)检测数据段内容只包含文字和数字字符的数据报。检测数据段内容只包含文字和数字字符(例如:没有标点、空格和控制字符)的数据报。这往往是数据经过
Base 64编码后而只会含有Base
64字符集的特征。TFN2K发送的控制信息数据报就是此种类型的数据报。TFN2K的特征模式是在数据段中有一种‘A’(AAAA…),这里经过调整数据段大小和加密算法的结果。如果没有使用Base
64编码,对于使用了加密算法的数据报,这个连续字符就是‘\0’。
(6)数据段内容只包含二进制和high-bit字符的数据报。虽然此时可能在传输二进制文件,但如果这些数据报不属于正常有效的通信时,可以怀疑正在传输的是没有被BASE
64编码但经过加密的控制信息通信数据报(如果实施这种规则,必须将20、21、80等端口的数据排除在外)。
5& Dos /DDos攻击及防范策略
由于软件缺陷和协议漏洞问题现无法解决,黑客往往利用这些缺陷和漏洞在INTERNET进行大规模Dos/DDos攻击,攻击实现容易,对网络危害巨大,再加之攻击时使用的是虚假的IP地址,攻击变化多样,这样导致防御困难。下面对Dos/DDos攻击防御进行探讨,最大限度的减少Dos/DDos攻击带来的危害。
(1)利用防火墙防范Dos/DDos攻击。目前绝大数的主流防火墙(如Cisco
PIX、NetScreen、SmartHammer等)都支持IP
Inspect(IP检测)功能,防火墙会对进入防火墙的信息进行严格的检测。这样,各种针对系统漏洞的攻击包会自动被系统过滤掉,从而保护了网络免受来自外部的系统漏洞攻击。
(2)使用路由器防范Dos/DDos攻击。对路由器进行合理设置,升级版本过低的IOS版本,为路由器建立Log
server,设置SYN包速率。设置ACL过滤、TCP监听功能,过滤不必要的UDP和ICMP数据报。使用Unicast
reverst-path功能。
(3)提高计算机系统的安全性,安装杀毒软件及防火墙工具,及时对系统进行检测及病毒扫描,及时对系统升级,安装漏洞补丁,合理设置登录密码,及时审查日志,关闭不常用的服务。
(4)入侵检测系统(IDS)抵御Dos/DDos攻击。入侵检测系统对正常通信数据量作了基线定义(也可以自定义具体正常数据量),系统能够检测到与基线不一致的数据量,当检测到与基线不一致的数据量时会告知管理员,并做相应的处理。
(5)与网络服务提供商进行充分的协作。请求网络服务商说明实现路由的访问控制,以实现对带宽总量的限制以及不同的访问地址在同一时间对带宽的占有量。当受到攻击时,应及时告知服务商,寻求服务商提供说明及解决方案。
(6)退让策略,采用DNS轮循或通过网络负载、服务器集群等技术增加响应主机数量,但成本较高。
(7)协议改进,典型SYN
Cookie技术,就是给每一个请求连接的IP地址分配一个Cookie,如果短时间内连续收到某个IP的重复SYN报文,就认定是受到了攻击,以后从这个IP地址来的包会被丢弃。
(8)作好使用分析,当受到Dos/DDos攻击时,就可以发现某IP地址发送过来的流量势必会大量增加。当检测是Dos/DDos攻击时,应当中断该IP的网络连接,拒绝该IP访问。
(9)遭受Dos/DDos攻击,立即启动预定的应对策略,尽快的反方向追踪攻击数据报的来源,并且迅速与网络提供商和有关应急组织取得联系,分析受影响的系统,确定涉及的其它节点,从而阻挡已知攻击节点的攻击流量,必要时断开网络连接。
Dos/DDos攻击严重的威胁着网络安全,给网络带来了巨大的灾难。攻击者往往利用协议漏洞和软件缺陷,所以我们增强计算机系统安全体系建设的同时也须加大网络安全管理力度,使用先进的防御技术及采用优秀的防御工具,对网络实施实时监控,在遭受攻击时采取一定的应对措施,定能有效的防范攻击。
DDoS攻击教程
先介绍一下DDoS攻击的原理:
&DDoS把DoS又向前发展了一步,DDoS的行为更为自动化,它可以方便地协调从多台计算机上启动的进程,让一股DoS洪流冲击网络,并使网络因过载而崩溃。确切地讲,DDoS攻击是指在不同的高带宽主机上安装大量的DoS服务程序,它们等待来自中央客户端的命令,中央客户端随后通知全体受控服务程序,并批示它们对一个特定目标发送尽可能多的网络访问请求。
&对DoS而言,其攻击方式很多,主要使用的攻击有4种,分别是TCP-SYN flood,UDP
flood,ICMP flood,smurf。
当用户进行一次标准的TCP连接时,会有一个3次握手过程。首先是请求服务方发送一个SYN消息,服务方收到SYN后,会向请求方回送一个SYN-ACK
表示确认,当请求方收到SYN-ACK后,再次向服务方发送一个ACK消息,这样,一次TCP连接建立成功。但是TCP-SYN
flood在实现过程中只进行前2个步骤:当服务方收到请求方的SYN-ACK确认消息后,请求方由于采用源地址欺骗等手段使得服务方收不到ACK回应,于是,服务方会在一定时间处于等待接收请求方ACK消息的状态。对于某台服务器来说,可用的TCP连接是有限的,如果恶意攻击方快速连续地发送此类连接请求,该服务器可用的TCP连接队列将很快被阻塞,系统可用资源急剧减少,网络可用带宽迅速缩小,长此下去,网络将无法向用户提供正常的服务。
由于UDP(用户数据包协议)在网络中的应用比较广泛,基于UDP攻击种类也较多。如今在Internet上提供WWW和Mail等服务设备通常是使用
Unix的服务器,它们默认一些被恶意利用的UDP服务,如echo和chargen服务,它会显示接收到的每一个数据包,而原本作为测试功能的
chargen服务会在收到每一个数据包时随机反馈一些字符,如果恶意攻击者将这2个UDP服务互指,则网络可用带宽将很快耗尽。
由于在早期的阶段,路由器对包的最大尺寸都有限制,许多操作系统对TCP/IP栈的实现在ICMP包上都是规定64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区,当产生畸形的,声称自己的尺寸超过ICMP上限的包也就是加载的尺寸超过64K上限时,就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使接受方当机。如果对方的操作系统已经可以防御堆栈崩溃,也占去许多带宽。
一个简单的smurf攻击通过使用将回复地址设置成受害网络的广播地址的ICMP应答请求(ping)数据包来淹没受害主机的方式进行,最终导致该网络的所有主机都对此ICMP应答请求作出答复,导致网络阻塞,比ping
of death洪水的流量高出一或两个数量级。更加复杂的Smurf将源地址改为第三方的受害者,最终导致第三方雪崩。
tfn2k的程序及分析:
$tar zxvf tfn2k.tgz
在src目录下就是源文件,
其中主要的两个文件就是tfn.c和td.c
你可以看一下Makefile文件
SERVER_OBJ = pass.o aes.o base64.o cast.o flood.o ip.o process.o
tribe.o td.o
CLIENT_OBJ = pass.o aes.o base64.o cast.o ip.o tribe.o tfn.o
可以看出tfn和td各是由哪些.o链接而成的。
tfn和td的网络通讯是经过CAST-256算法(RFC
2612)加密,还可能混杂了许多虚假数据包。参看security_through_obscurity()和encode64()等函数。
尽管tfn没有密码保护,每一个发送给td的命令都有一个16位二进制形式的数在ICMP_ECHOREPLY包的id域。这个序列号通常是0x0000,这样看起来更象ping初始包的响应。参看passchk()函数。
tfn_sendto()函数是根据hosts.txt向td发命令。
usage()函数是使用帮助。
td的守护程序是完全沉默的,它不会对接收到的命令有任何回应。客户端重复发送每一个命令20次(RETRY=20),并且认为守护程序应该至少能接收到其中一个。如果没有接收到需要重新发送,你也可以修改RETRY(tfn.c文件中)的值。
守护进程为每一个攻击产生子进程(td.c文件中)。
在看td.c文件时有些迷惑,它作为服务器端并没有绑定固定的端口,后来才明白从tfn到td的通讯是通过ICMP_ECHOREPLY数据包完成,这样在tfn和td就没有任何基于TCP或UDP的通讯了。
td试图通过修改argv[0]内容以掩饰自己。伪造的进程名在编译时指定,因此每次安装时都有可能不同。这个功能使TFN2K伪装成代理端主机的普通正常进程。只是简单地检查进程列表未必能找到td(及其子进程),在你运行
以后,在运行
可能根本就找不到td.(不要以为它没有运行啊!)。
td.c的tribe_cmd()是根据id(0--10)执行命令,它要调用process.c中的函数。
process.c 中的
commerce_syn(),commerce_udp(),commerce_icmp(),commerce_mix(),commerce_smurf()
等函数就是发动攻击的具体程序,根据id(0--11)分别对应着tcp,udp,icmp,mix,smurf等攻击。
防御措施:
见下列链接文章,我就不重复了。
其它DDoS工具
1. Trinoo: 它是基于UDP
flood的攻击软件,它向被攻击目标主机的随机端口发出全零的4字节UDP包,在处理这些超出其处理能力垃圾数据包的过程中,被攻击主机的网络性能不断下降,直到不能提供正常服务,乃至崩溃,它对IP地址不做假,此攻击方法用得不如TFN多。
下载地址_blank
href=http://darknet.evilnerds.org/dos/ddos/trinoo.tar.gz&http://darknet.evilnerds.org/dos/ddos/trinoo.tar.gz
Stacheldraht:对命令来源做假,而且可以防范一些路由器用RFC2267过滤。若检查出有过滤现象,它将只做假IP地址最后8位,从而让用户无法了解到底是哪几个网段的哪台机器被攻击。此外,它还具有自动更新功能,可随软件的更新而自动更新。
下载地址_blank
href=http://darknet.evilnerds.org/dos/ddos/stachel-yps.tar.gz&http://darknet.evilnerds.org/dos/ddos/stachel-yps.tar.gz
DDOS全名是Distributed Denial of service
(分布式拒绝服务攻击),很多DOS攻击源一起攻击某台服务器就组成了DDOS攻击,DDOS
最早可追溯到1996年最初,在中国2002年开始频繁出现,2003年已经初具规模.
DDoS攻击概念
DDOS的产生
被DDoS攻击时的现象
大级别攻击运行原理
黑客如何组织一次DDoS攻击
DDOS攻击的目的
DDOS的主要几个攻击
TCP全连接攻击
·&& SYN攻击解析
如何防止和减少DDOS攻击的危害
·&& 预防为主保证安全
·&& 寻找机会应对攻击
DDoS攻击概念
  DoS的攻击方式有很多种,最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源,从而使服务器无法处理合法用户的指令。
  DDoS攻击手段是在传统的DoS攻击基础之上产生的一类攻击方式。单一的DoS攻击一般是采用一对一方式的,当被攻击目标CPU速度低、内存小或者网络带宽小等等各项性能指标不高,它的效果是明显的。随着计算机与网络技术的发展,计算机的处理能力迅速增长,内存大大增加,同时也出现了千兆级别的网络,这使得DoS攻击的困难程度加大了
目标对恶意攻击包的"消化能力"加强了不少,例如你的攻击软件每秒钟可以发送3,000个攻击包,但我的主机与网络带宽每秒钟可以处理10,000个攻击包,这样一来攻击就不会产生什么效果。
  这时候分布式的拒绝服务攻击手段(DDoS)就应运而生了。你理解了DoS攻击的话,它的原理就很简单。如果说计算机与网络的处理能力加大了10倍,用一台攻击机来攻击不再能起作用的话,攻击者使用10台攻击机同时攻击呢?用100台呢?DDoS
就是利用更多的傀儡机来发起进攻,以比从前更大的规模来进攻受害者。
  高速广泛连接的网络给大家带来了方便,也为DDoS攻击创造了极为有利的条件。在低速网络时代时,黑客占领攻击用的傀儡机时,总是会优先考虑离目标网络距离近的机器,因为经过路由器的跳数少,效果好。而现在电信骨干节点之间的连接都是以G为级别的,大城市之间更可以达到2.5G的连接,这使得攻击可以从更远的地方或者其他城市发起,攻击者的傀儡机位置可以在分布在更大的范围,选择起来更灵活了。
DDOS的产生
最早可追述到1996年最初,在中国2002年开始频繁出现,2003年已经初具规模。近几年由于宽带的普及,很多网站开始盈利,其中很多非法网站利润巨大,造成同行之间互相攻击,还有一部分人利用网络攻击来敲诈钱财。同时windows平台的漏洞大量的被公布,流氓软件,病毒,木马大量充斥着网络,有些懂技术的人可以很容易非法入侵控制大量的个人计算机来发起DDOS攻击从中谋利。攻击已经成为互联网上的一种最直接的竞争方式,而且收入非常高,利益的驱使下,攻击已经演变成非常完善的产业链。通过在大流量网站的网页里注入病毒木马,木马可以通过windows平台的漏洞感染浏览网站的人,一旦中了木马,这台计算机就会被后台操作的人控制,这台计算机也就成了所谓的肉鸡,每天都有人专门收集肉鸡然后以几毛到几块的一只的价格出售,因为利益需要攻击的人就会购买,然后遥控这些肉鸡攻击服务器。
被DDoS攻击时的现象
  能瞬间造成对方电脑死机或者假死,我曾经在测试过,攻击不到1秒钟,电脑就已经死机和假死,鼠标图标不动了,系统发出滴滴滴滴的声音,告诉你们,不要学我哦,小心将电脑主板搞坏了
大级别攻击运行原理
  一个比较完善的DDoS攻击体系分成四大部分,先来看一下最重要的第2和第3部分:它们分别用做控制和实际发起攻击。请注意控制机与攻击机的区别,对第
4部分的受害者来说,DDoS的实际攻击包是从第3部分攻击傀儡机上发出的,第2部分的控制机只发布命令而不参与实际的攻击。对第2和第3部分计算机,黑客有控制权或者是部分的控制权,并把相应的DDoS程序上传到这些平台上,这些程序与正常的程序一样运行并等待来自黑客的指令,通常它还会利用各种手段隐藏自己不被别人发现。在平时,这些傀儡机器并没有什么异常,只是一旦黑客连接到它们进行控制,并发出指令的时候,攻击傀儡机就成为害人者去发起攻击了。
  有的朋友也许会问道:"为什么黑客不直接去控制攻击傀儡机,而要从控制傀儡机上转一下呢?"。这就是导致DDoS攻击难以追查的原因之一了。做为攻击者的角度来说,肯定不愿意被捉到,而攻击者使用的傀儡机越多,他实际上提供给受害者的分析依据就越多。在占领一台机器后,高水平的攻击者会首先做两件事:1.
考虑如何留好后门!2.
如何清理日志。这就是擦掉脚印,不让自己做的事被别人查觉到。比较不敬业的黑客会不管三七二十一把日志全都删掉,但这样的话网管员发现日志都没了就会知道有人干了坏事了,顶多无法再从日志发现是谁干的而已。相反,真正的好手会挑有关自己的日志项目删掉,让人看不到异常的情况。这样可以长时间地利用傀儡机。
  但是在第3部分攻击傀儡机上清理日志实在是一项庞大的工程,即使在有很好的日志清理工具的帮助下,黑客也是对这个任务很头痛的。这就导致了有些攻击机弄得不是很干净,通过它上面的线索找到了控制它的上一级计算机,这上级的计算机如果是黑客自己的机器,那么他就会被揪出来了。但如果这是控制用的傀儡机的话,黑客自身还是安全的。控制傀儡机的数目相对很少,一般一台就可以控制几十台攻击机,清理一台计算机的日志对黑客来讲就轻松多了,这样从控制机再找到黑客的可能性也大大降低。
黑客如何组织一次DDoS攻击
  这里用"组织"这个词,是因为DDoS并不象入侵一台主机那样简单。一般来说,黑客进行DDoS攻击时会经过这样的步骤:
搜集了解目标的情况
  下列情况是黑客非常关心的情报:
  被攻击目标主机数目、地址情况
  目标主机的配置、性能
  目标的带宽
  对于DDoS攻击者来说,攻击互联网上的某个站点,如http : //www . mytarget .
com,有一个重点就是确定到底有多少台主机在支持这个站点,一个大的网站可能有很多台主机利用负载均衡技术提供同一个网站的www服务。以yahoo为例,一般会有下列地址都是提供http
: //www . yahoo . com 服务的:
  66.218.71.87
  66.218.71.88
  66.218.71.89
  66.218.71.80
  66.218.71.81
  66.218.71.83
  66.218.71.84
  66.218.71.86
  如果要进行DDoS攻击的话,应该攻击哪一个地址呢?使66.218.71.87这台机器瘫掉,但其他的主机还是能向外提供www服务,所以想让别人访问不到http://www
. yahoo . com
的话,要所有这些IP地址的机器都瘫掉才行。在实际的应用中,一个IP地址往往还代表着数台机器:网站维护者使用了四层或七层交换机来做负载均衡,把对一个IP地址的访问以特定的算法分配到下属的每个主机上去。这时对于DDoS攻击者来说情况就更复杂了,他面对的任务可能是让几十台主机的服务都不正常。
  所以说事先搜集情报对DDoS攻击者来说是非常重要的,这关系到使用多少台傀儡机才能达到效果的问题。简单地考虑一下,在相同的条件下,攻击同一站点的2台主机需要2台傀儡机的话,攻击5台主机可能就需要5台以上的傀儡机。有人说做攻击的傀儡机越多越好,不管你有多少台主机我都用尽量多的傀儡机来攻就是了,反正傀儡机超过了时候效果更好。
  但在实际过程中,有很多黑客并不进行情报的搜集而直接进行DDoS的攻击,这时候攻击的盲目性就很大了,效果如何也要靠运气。其实做黑客也象网管员一样,是不能偷懒的。一件事做得好与坏,态度最重要,水平还在其次。
占领傀儡机
  黑客最感兴趣的是有下列情况的主机:
  链路状态好的主机
  性能好的主机
  安全管理水平差的主机
  这一部分实际上是使用了另一大类的攻击手段:利用形攻击。这是和DDoS并列的攻击方式。简单地说,就是占领和控制被攻击的主机。取得最高的管理权限,或者至少得到一个有权限完成DDoS攻击任务的帐号。对于一个DDoS攻击者来说,准备好一定数量的傀儡机是一个必要的条件,下面说一下他是如何攻击并占领它们的。
  首先,黑客做的工作一般是扫描,随机地或者是有针对性地利用扫描器去发现互联网上那些有漏洞的机器,像程序的溢出漏洞、cgi、Unicode、ftp、数据库漏洞…(简直举不胜举啊),都是黑客希望看到的扫描结果。随后就是尝试入侵了,具体的手段就不在这里多说了,感兴趣的话网上有很多关于这些内容的文章。
  总之黑客现在占领了一台傀儡机了!然后他做什么呢?除了上面说过留后门擦脚印这些基本工作之外,他会把DDoS攻击用的程序上载过去,一般是利用ftp。在攻击机上,会有一个DDoS的发包程序,黑客就是利用它来向受害目标发送恶意攻击包的。
  经过前2个阶段的精心准备之后,黑客就开始瞄准目标准备发射了。前面的准备做得好的话,实际攻击过程反而是比较简单的。就象图示里的那样,黑客登录到做为控制台的傀儡机,向所有的攻击机发出命令:"预备~
,瞄准~,开火!"。这时候埋伏在攻击机中的DDoS攻击程序就会响应控制台的命令,一起向受害主机以高速度发送大量的数据包,导致它死机或是无法响应正常的请求。黑客一般会以远远超出受害方处理能力的速度进行攻击,他们不会"怜香惜玉"。
  老道的攻击者一边攻击,还会用各种手段来监视攻击的效果,在需要的时候进行一些调整。简单些就是开个窗口不断地ping目标主机,在能接到回应的时候就再加大一些流量或是再命令更多的傀儡机来加入攻击。
  防范DDOS攻击的工具软件:CC v2.0
  防范DDOS比较出色的防火墙:硬件有Cisco的Guard、Radware的DefensePro,绿盟的黑洞,傲盾硬件的KFW系列,傲盾软件的傲盾防火墙。软件有冰盾DDOS防火墙、8Signs
Firewall等。
DDOS攻击的目的
  黑客一般都出于商业目的,比如有人雇佣黑客对一个网站进行攻击,事后给钱,不过如果该网站报警,那么黑客和这位雇佣黑客的幕后黑手将受到法律严惩!
DDOS的主要几个攻击
TCP全连接攻击
  和SYN攻击不同,它是用合法并完整的连接攻击对方,SYN攻击采用的是半连接攻击方式,而全连接攻击是完整的,合法的请求,防火墙一般都无法过滤掉这种攻击,这种攻击在现在的DDOS软件中非常常见,有UDP碎片还有SYN洪水,甚至还有TCP洪水攻击,这些攻击都是针对服务器的常见流量攻击
SYN变种攻击
  发送伪造源IP的SYN数据包但是数据包不是64字节而是上千字节这种攻击会造成一些防火墙处理错误锁死,消耗服务器CPU内存的同时还会堵塞带宽。
TCP混乱数据包攻击
  发送伪造源IP的 TCP数据包,TCP头的TCP Flags 部分是混乱的可能是syn ,ack ,syn+ack
,syn+rst等等,会造成一些防火墙处理错误锁死,消耗服务器CPU内存的同时还会堵塞带宽。
针对用UDP协议的攻击
  很多聊天室,视频音频软件,都是通过UDP数据包传输的,攻击者针对分析要攻击的网络软件协议,发送和正常数据一样的数据包,这种攻击非常难防护,一般防护墙通过拦截攻击数据包的特征码防护,但是这样会造成正常的数据包也会被拦截,
针对WEB Server的多连接攻击
  通过控制大量肉鸡同时连接访问网站,造成网站无法处理瘫痪,这种攻击和正常访问网站是一样的,只是瞬间访问量增加几十倍甚至上百倍,有些防火墙可以通过限制每个连接过来的IP连接数来防护,但是这样会造成正常用户稍微多打开几次网站也会被封,
针对WEB Server的变种攻击
  通过控制大量肉鸡同时连接访问网站,一点连接建立就不断开,一直发送发送一些特殊的GET访问请求造成网站数据库或者某些页面耗费大量的CPU,这样通过限制每个连接过来的IP连接数就失效了,因为每个肉鸡可能只建立一个或者只建立少量的连接。这种攻击非常难防护,后面给大家介绍防火墙的解决方案
针对WEB Server的变种攻击
  通过控制大量肉鸡同时连接网站端口,但是不发送GET请求而是乱七八糟的字符,大部分防火墙分析攻击数据包前三个字节是GET字符然后来进行http协议的分析,这种攻击,不发送GET请求就可以绕过防火墙到达服务器,一般服务器都是共享带宽的,带宽不会超过10M
所以大量的肉鸡攻击数据包就会把这台服务器的共享带宽堵塞造成服务器瘫痪,这种攻击也非常难防护,因为如果只简单的拦截客户端发送过来没有GET字符的数据包,会错误的封锁很多正常的数据包造成正常用户无法访问,后面给大家介绍防火墙的解决方案
针对游戏服务器的攻击
  因为游戏服务器非常多,这里介绍最早也是影响最大的传奇游戏,传奇游戏分为登陆注册端口7000,人物选择端口7100,以及游戏运行端口00
等,因为游戏自己的协议设计的非常复杂,所以攻击的种类也花样倍出,大概有几十种之多,而且还在不断的发现新的攻击种类,这里介绍目前最普遍的假人攻击,假人攻击是通过肉鸡模拟游戏客户端进行自动注册、登陆、建立人物、进入游戏活动从数据协议层面模拟正常的游戏玩家,很难从游戏数据包来分析出哪些是攻击哪些是正常玩家。
  以上介绍的几种最常见的攻击也是比较难防护的攻击。一般基于包过滤的防火墙只能分析每个数据包,或者有限的分析数据连接建立的状态,防护SYN,或者变种的SYN,ACK攻击效果不错,但是不能从根本上来分析tcp,udp协议,和针对应用层的协议,比如http,游戏协议,软件视频音频协议,现在的新的攻击越来越多的都是针对应用层协议漏洞,或者分析协议然后发送和正常数据包一样的数据,或者干脆模拟正常的数据流,单从数据包层面,分析每个数据包里面有什么数据,根本没办法很好的防护新型的攻击。
SYN攻击解析
  SYN攻击属于DOS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。TCP协议建立连接的时候需要双方相互确认信息,来防止连接被伪造和精确控制整个数据传输过程数据完整有效。所以TCP协议采用三次握手建立一个连接。
  第一次握手:建立连接时,客户端发送syn包到服务器,并进入SYN_SEND状态,等待服务器确认; 
  第二次握手:服务器收到syn包,必须确认客户的SYN
同时自己也发送一个SYN包即SYN+ACK包,此时服务器进入SYN_RECV状态;
  第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
  SYN攻击利用TCP协议三次握手的原理,大量发送伪造源IP的SYN包也就是伪造第一次握手数据包,服务器每接收到一个SYN包就会为这个连接信息分配核心内存并放入半连接队列,如果短时间内接收到的SYN太多,半连接队列就会溢出,操作系统会把这个连接信息丢弃造成不能连接,当攻击的SYN包超过半连接队列的最大值时,正常的客户发送SYN数据包请求连接就会被服务器丢弃,
每种操作系统半连接队列大小不一样所以抵御SYN攻击的能力也不一样。那么能不能把半连接队列增加到足够大来保证不会溢出呢,答案是不能,每种操作系统都有方法来调整TCP模块的半连接队列最大数,例如Win2000操作系统在注册表
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters里
TcpMaxHalfOpen,TcpMaxHalfOpenRetried
,Linux操作系统用变量tcp_max_syn_backlog来定义半连接队列的最大数。但是每建立一个半连接资源就会耗费系统的核心内存,操作系统的核心内存是专门提供给系统内核使用的内存不能进行虚拟内存转换是非常紧缺的资源windows2000
系统当物理内存是4g的时候核心内存只有不到300M,系统所有核心模块都要使用核心内存所以能给半连接队列用的核心内存非常少。Windows
2003 默认安装情况下,WEB
SERVER的80端口每秒钟接收5000个SYN数据包一分钟后网站就打不开了。标准SYN数据包64字节 5000个等于 5000*64
*8(换算成bit)/K也就是
2.5M带宽,如此小的带宽就可以让服务器的端口瘫痪,由于攻击包的源IP是伪造的很难追查到攻击源,,所以这种攻击非常多。
如何防止和减少DDOS攻击的危害
拒绝服务攻击的发展
  从拒绝服务攻击诞生到现在已经有了很多的发展,从最初的简单Dos到现在的DdoS。那么什么是Dos和DdoS呢?DoS是一种利用单台计算机的攻击方式。而DdoS(Distributed
Service,分布式拒绝服务)是一种基于DoS的特殊形式的拒绝服务攻击,是一种分布、协作的大规模攻击方式,主要瞄准比较大的站点,比如一些商业公司、搜索引擎和政府部门的站点。
DdoS攻击是利用一批受控制的机器向一台机器发起攻击,这样来势迅猛的攻击令人难以防备,因此具有较大的破坏性。如果说以前网络管理员对抗Dos可以采取过滤IP地址方法的话,那么面对当前DdoS众多伪造出来的地址则显得没有办法。所以说防范DdoS攻击变得更加困难,如何采取措施有效的应对呢?下面我们从两个方面进行介绍。
DDOS的防护方法
  1 手工防护
  一般而言手工方式防护DDOS主要通过两种形式:
  系统优化――主要通过优化被攻击系统的核心参数,提高系统本身对DDoS攻击的响应能力。但是这种做法只能针对小规模的DDOS进行防护。
  网络追查――遭受DDoS攻击的系统的管理人员一般第一反应是询问上一级网络运营商,这有可能是ISP、IDC等,目的就是为了弄清楚攻击源头。
  2 退让策略
  为了抵抗DDOS攻击,客户可能会通过购买硬件的方式来提高系统抗DDOS的能力。但是这种退让策略的效果并不好,一方面由于这种方式的性价比过低,另一方面,黑客提高供给流量之后,这种方法往往失效,所以不能从根本意义上防护DDoS攻击。
  3 路由器
  通过路由器,我们可以实施某些安全措施,比如ACL等,这些措施从某种程度上确实可以过滤掉非法流量。一般来说,ACL可以基于协议或源地址进行设置,但是目前众多的DDOS攻击采用的是常用的一些合法协议,比如http协议,这种情况下,路由器就无法对这样的流量进行过滤。同时,如果DDOS攻击采用地址欺骗的技术伪造数据包,那么路由器也无法对这种攻击进行有效防范。
  另一种基于路由器的防护策略是采用Unicast Reverse Path Forwarding
(uRPF)在网络边界来阻断伪造源地址IP的攻击,但是对于今天的DDOS攻击而言,这种方法也不能奏效,其根本原因就在于uRPF的基本原理是路由器通过判断出口流量的源地址,如果不属于内部子网的则给予阻断。而攻击者完全可以伪造其所在子网的IP地址进行DDoS攻击,这样就完全可以绕过uRPF防护策略。除此之外,如果希望uRPF策略能够真正的发挥作用,还需要在每个潜在攻击源的前端路由器上配置uRPF,但是要实现这种情况,现实中几乎不可能做到。
  4 防火墙
  防火墙几乎是最常用的安全产品,但是防火墙设计原理中并没有考虑针对DDOS攻击的防护,在某些情况下,防火墙甚至成为DDOS攻击的目标而导致整个网络的拒绝服务。
  首先是防火墙缺乏DDOS攻击检测的能力。通常,防火墙作为三层包转发设备部署在网络中,一方面在保护内部网络的同时,它也为内部需要提供外部Internet服务的设备提供了通路,如果DDOS攻击采用了这些服务器允许的合法协议对内部系统进行攻击,防火墙对此就无能为力,无法精确的从背景流量中区分出攻击流量。虽然有些防火墙内置了某些模块能够对攻击进行检测,但是这些检测机制一般都是基于特征规则,DDOS攻击者只要对攻击数据包稍加变化,防火墙就无法应对,对DDOS攻击的检测必须依赖于行为模式的算法。
  第二个原因就是传统防火墙计算能力的限制,传统的防火墙是以高强度的检查为代价,检查的强度越高,计算的代价越大。而DDOS攻击中的海量流量会造成防火墙性能急剧下降,不能有效地完成包转发的任务。
  最好防火墙的部署位置也影响了其防护DDOS攻击的能力。传统防火墙一般都是部署在网络入口位置,虽然某种意义上保护了网络内部的所有资源,但是其往往也成为DDOS攻击的目标,攻击者一旦发起DDOS攻击,往往造成网络性能的整体下降,导致用户正常请求被拒绝。
  5 入侵检测
  目前IDS系统是最广泛的攻击检测工具,但是在面临DDOS攻击时,IDS系统往往不能满足要求。
  原因其一在于入侵检测系统虽然能够检测应用层的攻击,但是基本机制都是基于规则,需要对协议会话进行还原,但是目前DDoS攻击大部分都是采用基于合法数据包的攻击流量,所以IDS系统很难对这些攻击有效检测。虽然某些IDS系统本身也具备某些协议异常检测的能力,但这都需要安全专家手工配置才能真正生效,其实施成本和易用性极低。
  原因之二就在于IDS系统一般对攻击只进行检测,但是无法提供阻断的功能。IDS系统需要的是特定攻击流检测之后实时的阻断能力,这样才能真正意义上减缓DDOS对于网络服务的影响。
  IDS系统设计之初就是作为一种基于特征的应用层攻击检测设备。而DDOS攻击主要以三层或是四层的协议异常为其特点,这就注定了IDS技术不太可能作为DDOS的检测或是防护手段。目前的防御算法对所有已知的拒绝服务攻击是免疫的,也就是说,是完全可以抵抗已知DoS/DDoS攻击的。
预防为主保证安全
  DdoS攻击是黑客最常用的攻击手段,下面列出了对付它的一些常规方法。
  (1)定期扫描
  要定期扫描现有的网络主节点,清查可能存在的安全漏洞,对新出现的漏洞及时进行清理。骨干节点的计算机因为具有较高的带宽,是黑客利用的最佳位置,因此对这些主机本身加强主机安全是非常重要的。而且连接到网络主节点的都是服务器级别的计算机,所以定期扫描漏洞就变得更加重要了。
  (2)在骨干节点配置防火墙
  防火墙本身能抵御DdoS攻击和其他一些攻击。在发现受到攻击的时候,可以将攻击导向一些牺牲主机,这样可以保护真正的主机不被攻击。当然导向的这些牺牲主机可以选择不重要的,或者是linux以及unix等漏洞少和天生防范攻击优秀的系统。
  (3)用足够的机器承受黑客攻击
  这是一种较为理想的应对策略。如果用户拥有足够的容量和足够的资源给黑客攻击,在它不断访问用户、夺取用户资源之时,自己的能量也在逐渐耗失,或许未等用户被攻死,黑客已无力支招儿了。不过此方法需要投入的资金比较多,平时大多数设备处于空闲状态,和目前中小企业网络实际运行情况不相符。
  (4)充分利用网络设备保护网络资源
  所谓网络设备是指路由器、防火墙等负载均衡设备,它们可将网络有效地保护起来。当网络被攻击时最先死掉的是路由器,但其他机器没有死。死掉的路由器经重启后会恢复正常,而且启动起来还很快,没有什么损失。若其他服务器死掉,其中的数据会丢失,而且重启服务器又是一个漫长的过程。特别是一个公司使用了负载均衡设备,这样当一台路由器被攻击死机时,另一台将马上工作。从而最大程度的削减了DdoS的攻击。
  (5)过滤不必要的服务和端口
  过滤不必要的服务和端口,即在路由器上过滤假IP……只开放服务端口成为目前很多服务器的流行做法,例如WWW服务器那么只开放80而将其他所有端口关闭或在防火墙上做阻止策略。
  (6)检查访问者的来源
  使用Unicast Reverse Path
Forwarding等通过反向路由器查询的方法检查访问者的IP地址是否是真,如果是假的,它将予以屏蔽。许多黑客攻击常采用假IP地址方式迷惑用户,很难查出它来自何处。因此,利用Unicast
Reverse Path Forwarding可减少假IP地址的出现,有助于提高网络安全性。
  (7)过滤所有RFC1918 IP地址
  RFC1918 IP地址是内部网的IP地址,像10.0.0.0、192.168.0.0
和172.16.0.0,它们不是某个网段的固定的IP地址,而是Internet内部保留的区域性IP地址,应该把它们过滤掉。此方法并不是过滤内部员工的访问,而是将攻击时伪造的大量虚假内部IP过滤,这样也可以减轻DdoS的攻击。
  (8)限制SYN/ICMP流量
  用户应在路由器上配置SYN/ICMP的最大流量来限制SYN/ICMP封包所能占有的最高频宽,这样,当出现大量的超过所限定的SYN/ICMP流量时,说明不是正常的网络访问,而是有黑客入侵。早期通过限制SYN/ICMP流量是最好的防范
DOS的方法,虽然目前该方法对于DdoS效果不太明显了,不过仍然能够起到一定的作用。
寻找机会应对攻击
  如果用户正在遭受攻击,他所能做的抵御工作将是非常有限的。因为在原本没有准备好的情况下有大流量的灾难性攻击冲向用户,很可能在用户还没回过神之际,网络已经瘫痪。但是,用户还是可以抓住机会寻求一线希望的。
  (1)检查攻击来源,通常黑客会通过很多假IP地址发起攻击,此时,用户若能够分辨出哪些是真
IP哪些是假IP地址,然后了解这些IP来自哪些网段,再找网络管理员将这些机器关闭,从而在第一时间消除攻击。如果发现这些IP地址是来自外面的而不是公司内部的IP的话,可以采取临时过滤的方法,将这些IP地址在服务器或路由器上过滤掉。
  (2)找出攻击者所经过的路由,把攻击屏蔽掉。若黑客从某些端口发动攻击,用户可把这些端口屏蔽掉,以阻止入侵。不过此方法对于公司网络出口只有一个,而又遭受到来自外部的DdoS攻击时不太奏效,毕竟将出口端口封闭后所有计算机都无法访问internet了。
  (3)最后还有一种比较折中的方法是在路由器上滤掉ICMP。虽然在攻击时他无法完全消除入侵,但是过滤掉ICMP后可以有效的防止攻击规模的升级,也可以在一定程度上降低攻击的级别。[1][2]
  不知道身为网络管理员的你是否遇到过服务器因为拒绝服务攻击(DDOS攻击)都瘫痪的情况呢?就网络安全而言目前最让人担心和害怕的入侵攻击就要算是DDOS攻击了。他和传统的攻击不同,采取的是仿真多个客户端来连接服务器,造成服务器无法完成如此多的客户端连接,从而无法提供服务。
  目前网络安全界对于DdoS的防范还是没有什么好办法的,主要靠平时维护和扫描来对抗。简单的通过软件防范的效果非常不明显,即便是使用了硬件安防设施也仅仅能起到降低攻击级别的效果,Ddos攻击只能被减弱,无法被彻底消除。不过如果我们按照本文的方法和思路去防范DdoS的话,收到的效果还是非常显著的,可以将攻击带来的损失降低到最小。
一般来说,DDoS攻击的典型过程可以分为3个阶段,即信息收集、占领傀儡计算机和攻击实施。
3.4.1&&获取目标信息
获取目标信息,也称为踩点(footprint)。通常,攻击者的攻击并非盲目地胡乱进行的,他不会用一台通过Modem连接的PC机去轰炸(flooding)一个大型网站(当然,如果该网站有一些漏洞使得剧毒包型攻击也能奏效的话,用一台PC机通过一些不太多的剧毒包攻击大型网站而奏效的情况也是存在的,只不过这与风暴型拒绝服务攻击的狂轰滥炸又有不同)!为了使得攻击奏效,攻击者需要了解受害者许多的信息,如被攻击目标主机数目、配置、性能、操作系统、地址情况以及目标网络的带宽等。因此,在攻击发生前,攻击者需要先对目标进行侦察,如利用扫描工具对目标进行扫描。
1.信息收集
(1)whois命令
whois为Internet提供目录服务,包括名字、通信地址、电话号码、电子邮箱、IP地址等信息。其采用的是Client/Server结构,由Client端发出请求,接收结果,并按格式显示到客户屏幕上,而Server端则建立数据库,接受注册请求并提供在线查询服务。通常UNIX系统自带whois客户程序,也可以直接通过Web查询。
一些whois数据来源有:
http://www.arin.net
http://www.samspade.org
如果需要查询com、net、edu、org以外的域可以查询以下的whois服务器:
http://www.ripe.net
欧洲IP地址分配
http://whois.apnic.net
亚太IP地址分配
http://whois.nic.mil
美国军事部门
http://whois.nic.gov
美国政府部门
美国以外的whois服务器
通过这些查询一般可以得到攻击者感兴趣的如下一些信息:
注册机构:显示特定的注册信息和相关的whois服务器。
机构本身:显示与某个特定机构相关的所有信息。
域名:显示与某个特定域名相关的所有信息。
网络:显示与某个特定网络或IP地址相关的所有信息。
联系人:显示与某位特定人员(通常是管理方面联系人)相关的所有信息。
在Unix/Linux平台上使用whois的语法如下:
whois &h <whois服务器><查询对象>
例如,向whois.internic.net查询is.时,采用如下命令:
$ whois -h whois.internic.net is.
(2)nslookup命令
nslookup也是获取信息的重要工具,它可以进行DNS查询,用于查询DNS中的各种数据。在Windows的命令行下直接运行nslookup进入一个交互模式,即可查询各种类型的DNS数据,如图3.5所示
&&&&&&&&&&&&&&&&&&
nslookup查询
DNS的名字解析数据可以有各种不同的类型,有设置区域参数的SOA类型数据,有设置名字对应的IP地址的A类型数据,有设置邮件交换的MX类型数据。这些不同类型的数据均可以通过nslookup的交互模式来查询,在查询过程中可以使用“set
type”命令设置相应的查询类型。
(3)网上的公开信息
有些组织机构的网站上会提供一些令人感兴趣的信息,包括机构所在位置、与其关系紧密的公司或实体、电话号码、联系人姓名和电子邮件地址、指示所用安全机制的类型或安全策略、与其相关联的Web服务器链接等,有的甚至会在网站上给出机构的网络拓扑结构图,如图3.6所示即是某大学网络中心在其网页上提供的该大学网络拓扑结构图,从该图上能够看到其网络结构信息,包括带宽。有的甚至会在网络拓扑图上标明防火墙、路由器等网络设备的品牌与型号!这些对攻击者来说都是很有用的。此外,新闻报道也可能泄露很多机密信息,例如:某某公司采用某某系统或者某某公司购买了某某系统/设备用于某某业务等。
图3.6&&某大学网络拓扑结构图
(4)搜索引擎
利用搜索引擎是一个获得组织机构内部网络额外信息的绝好的方法。如果没有使用搜索引擎查过此类信息,只需搜索你自己的组织机构的域名,你会为你查到的从组织机构连上Internet开始逐渐增加的大量的信息而感到惊讶。这些信息可能包括:邮件信息、新闻组帖子以及组织机构的Web网页(如果这些网页可以从外面访问)等。
有时候,搜索的结果中还可能包括一些已经删除的网页信息,因为搜索引擎存有网页的缓存,即使一些网页已经更换或者删除,在短时间内,还可以从搜索引擎的缓存中看到网页修改前的信息。这些信息对于攻击者来说有时候也是很有用的。
使用搜索引擎,甚至可以获得一些非常敏感的信息,如Web服务器的目录结构、计算机中的缓存信息、个人信用卡和银行账号与口令、企业网用户名和口令,以及一些要害部门的内部信息等。
感兴趣的读者请参考Johnny Long的《Google Hacking for Penetration
Testers》,Syngress出版社,2005年版,ISBN: 1--1。
2.网络刺探
(1)traceroute命令
traceroute命令用于追溯由一个主机到另一个主机的网络路径。这在需要记录两个主机之间的网段时是很有用的。traceroute通过修改ICMP或UDP(根据版本不同而异)数据包的TTL选项,从而获得到目的地的路途中每一跳或每一个路由器产生的ICMP超时(ICMP_TIME_EXCEEDED)消息。在默认的情况下,到一个指定目的地的途中的路由器会检查收到的数据包的IP头中的TTL值,并将其减1。TTL减1以后如果得到的是0,则路由器会丢弃此数据包并向该数据包的发出端发送一个ICMP超时消息,否则就转发此数据包到下一个路由器。利用这种机制,可以确保数据包在网络中只能传输有限的跳数。traceroute先发送数个(通常为3个)TTL设置为1的数据包,看收到的ICMP超时消息是由哪个路由器发出的,则该路由器就是到目的地方向,离发出点1跳的距离。接着,traceroute发送TTL设置为2、3、…的数据包,并得到相应距离处的路由器发出的ICMP超时消息或者目的地的回应消息(如果目的地到发出端的距离正好是数据包中的TTL初始值)。如图3.7所示(traceroute在Windows系统下的命令是tracert以满足文件名不超过8个字符的限制)为traceroute的输出结果窗口。从图3.7中可以看出,利用tracerout可以列出从源端到目的地的整个途中的所有路由器IP地址。图中的第一列是以跳数(hop)表示的距离,最后一列则是从源端到目的地方向上距离为第一列所示数据的路由器IP地址,中间的3列分别表示的是3个数据包到达最后一列所指示路由器所花费的时间,“*”表示超时。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
tracerout的输出结果窗口
(2)网络扫描
网络扫描按扫描目标的不同可以分为主机扫描和端口扫描。主机扫描用于确定在目标网络上的主机是否可达,在对一个网络进行主机扫描时还要尽可能多地映射目标网络的拓扑结构,一般利用较多的是ICMP数据包。端口扫描主要用于发现远程主机开放的端口或服务。
按照利用协议不同,可以分为ICMP扫描、TCP扫描和UDP扫描等。ICMP扫描主要用于主机扫描,而TCP扫描和UDP扫描主要用于获得系统提供的服务信息,即端口扫描。
① ICMP扫描
ICMP扫描一般采用ICMP Echo消息,Ping即是发送此类消息测试网络的工具。通过Ping发送ICMP
Echo消息到目标主机,等待Echo
Reply消息,可以确定网络和外部主机的状态,因此Ping可以用来调试网络的软件和硬件。用Ping进行扫描就是利用了其测试功能。当要测试一个主机是否活动时,可以在Ping命令后加上主机IP地址或域名作为参数。当要扫描一组主机(或IP地址),如一个网段时,可逐个地Ping这些主机。这称为Ping扫射(Ping
② TCP扫描
TCP扫描有多种方式,例如,利用TCP-SYN、TCP-FIN等。
a.TCP连接扫描。通过向目标系统发起一个正常的TCP连接,如果端口是打开的,则连接成功,否则,连接失败。这种方法的优点是简单且不需要特殊的权限;其缺点则是服务器可以记录下客户端的连接行为,如果同一个客户轮流对每一个端口发起连接,则可以判断其是在扫描,这对攻击者隐藏身份是不利的。
b.TCP-FIN扫描。TCP-FIN扫描原理是向目标主机发送一个FIN数据包,如果端口是关闭的,则远程主机丢弃该包,并送回一个RST包;否则,远程主机丢弃该包,不回送任何信息。这种方法的优点是它不是TCP建立连接的过程,所以比较隐蔽。缺点与TCP半开连接扫描类似,也需要构造专门的数据包。
c.TCP Ping扫描。TCP
Ping扫描也称为TCP-SYN扫描,前者是根据其类似于ICMP的Ping消息的作用而得名,后者是根据其使用的是TCP-SYN消息而得名。
由于很多组织机构已经禁止来自于公网,如Internet的Ping(ICMP Echo
Request)消息,未收到Ping的回应消息不足以说明主机系统不能访问。攻击者可以通过向潜在目标的一些常用的TCP、UDP端口(如TCP/80、UDP/TCP/53等)发送连接请求以强化其Ping活动。TCP
Ping扫描的原理是通过向目标主机的指定端口发送一个SYN包,根据应答结果判断目标信息。如果应答包为RST包,则说明该端口是关闭的;否则,会收到一个SYN/ACK包。于是,发送一个RST,停止建立连接,如图3.8所示。由于针对主机监听端口的TCP消息比ICMP消息更容易通过防火墙,因此,在ICMP消息受到禁止的情况下可以采用TCP-SYN消息达到目的;同时由于连接没有完全建立,所以这种扫描方式也称为“半开连接扫描”,其优点是很少有系统会记录这样的行为,攻击者可以借此隐藏自己。缺点是在UNIX平台上,需要Root权限才可以建立这样的SYN数据包。
图3.8&& TCP
采用端口扫描或Ping扫射(Ping Sweep)工具如Nmap、HPing、Nessus等,可以自动完成TCP
Ping功能,此即TCP Ping扫描。
d.TCP逆向Ident扫描。安全专家Dave
Goldsmith于1996在Bugtraq的一个帖子上指出,Ident协议(RFC
1413)会泄露通过TCP连接进程的所有者的用户名,即使该连接不是由此进程发起的。因此,攻击者可以连接到HTTP的端口,用Ident守护进程查明服务器是否由Root用户启动。
③ UDP扫描
UDP扫描原理是,利用UDP协议,发送UDP数据包到目标端口,看是否有回应包。由于UDP协议是无连接的,数据接收方不需要对收到的数据进行响应,如果目标UDP端口是开放的,并不需要送回ACK包,而关闭的端口也不要求送回错误包,因此,利用UDP包进行扫描非常困难。只是有些协议栈实现的时候,对于关闭的UDP端口,会送回一个ICMP的端口不可达消息。因此,可以根据端口不可达消息确定那些关闭的UDP端口,而对于没有收到端口不可达消息的,则可能是开放的端口。端口不可达消息一般要有根用户权限才能读取。Linux却可以以间接的方式“通知”非根用户端口不可达消息的到达,例如,当用户第二次向一个关闭的(远程)端口进行write()调用时,系统会返回一个失败信息。很多的扫描器如Netcat、Pscan.c都可以进行这种扫描。通过这种write()调用,Linux的非根用户就可以确定远程端口是否处于开放状态。
UDP扫描的缺点是速度慢,而且是否收到UDP包或ICMP包都不是可靠的。
(3)漏洞扫描
通过主机扫描和端口扫描以后,攻击者获得了活动主机及其开放端口(服务)的信息,接下来攻击者就希望获得受害者主机是否存在可以利用的漏洞的信息。由于已发现的可以让攻击者远程控制一台主机的漏洞千千万万,攻击者可以把与这些漏洞相关的攻击手法在受害者主机上一个个地进行测试,但是,这会耗费攻击者很多的时间,也许是数年的时间。为了加快这一过程,攻击者可以通过一个自动化地漏洞扫描工具测试受害者主机可能具有的漏洞,然后有针对性地攻击。
自动化的漏洞扫描工具本质上是一个常见漏洞的数据库和一个可以阅读此数据库,连接到目标计算机,测试目标主机是否存在此漏洞的引擎。
这种工具的有效性在于其测试的质量以及其漏洞库的完善程度。因此,好的漏洞扫描工具都会及时提供漏洞库的升级以及编制新的脚本以提供新漏洞的检测。
SATAN(Security Administrator Tool for Analyzing
Network),一个免费软件,是最早广泛使用的自动漏洞扫描器,出现于1995。后来出现了著名的开放源码的漏洞扫描器Nessus(http://www.nessus.org)。Nessus是一个通用漏洞扫描器,它可以扫描多种系统和平台的漏洞。另外,也存在一些针对特定系统的漏洞扫描器,如Whisker
[Whisker]就是专门扫描Web服务器的CGI脚本漏洞的。
3.4.2&&占领傀儡机和控制台
在DDoS攻击中,攻击者可以通过自己的机器直接对目标发起攻击,这样攻击者可能会冒着被发现的风险。通常,为了掩蔽自己不被发现,攻击者需要占领一些傀儡机(也称僵尸Zombies或Bot、Slave、Drone等,详见5.2节。另外,由于傀儡机总是等待并执行攻击者的命令,因此在攻击者和傀儡机间构成的客户机/服务器模型中,傀儡机居于服务器的角色,故傀儡机或相应的傀儡程序也叫做Server,而攻击者或者攻击者所用的控制程序也叫做Client),用来实施攻击。另外,为了达到需要的攻击力度,单靠一台或数台机器对一个大型系统的攻击是不够的,因此攻击者也需要大量的傀儡机器用于增强攻击的“火力”。这些傀儡机器最好具有良好的性能和充足的资源,如强的计算能力、大的带宽等,这样攻击者会获得较大的攻击力。当然,如果这些机器的管理水平、安全程度低,则更是攻击者的最佳选择,因为这样的机器更容易被攻击者攻破。比如一些宽带家庭用户的系统就具有高带宽、低安全的特性,而且,由于这些用户一般都是按月或按年度固定地付费的,因此,他们的计算机一般会长时间连在网上,这些都是最受攻击者青睐的。并且,攻击者还需要向傀儡机发送命令的控制台,因此攻击者还需利用某些被其攻破的机器或者其拥有访问权限的机器作为控制台。
攻击者占领傀儡机的方法有很多种。早期的占领方法一般是先通过扫描,得到一些容易攻破的机器,然后采用一些较为简单的方法予以攻破。攻击者也可以通过后门程序,以邮件、网站上的恶意链接等方式,引诱受害者运行后门程序,从而达到控制受害者机器的目的。目前,获得大量傀儡机的方法主要是通过携带后门程序的蠕虫,如后面将会介绍的Agobot等,随着蠕虫的传播,后门程序也安装到了受蠕虫感染的主机上。由于系统中运行的软件越来越多,必然的,整个系统的漏洞也越来越多;软件的漏洞使得恶意程序如蠕虫可以自动地攻破大量的主机,然后提供给攻击者作为傀儡机(攻击主机)使用。
攻击者“手工”占领傀儡机以后,需要在傀儡机上安装后门,以保持对傀儡机的“占有”。此外,对于那些攻击者选作攻击主机的傀儡机,攻击者还需在上面安装攻击软件。那些由蠕虫等攻破用做傀儡机的主机,已经在蠕虫感染的同时安装了攻击软件(当然也是攻击者能够通过远程控制的后门程序)。
关于傀儡机和傀儡网络,请参见5.2节。
3.4.3&&实施攻击
在前面的准备工作完成之后,实际的攻击过程却相对比较简单,攻击者只需通过控制台向傀儡机发出指令,令其立即或在某个时间向指定的受害者大量发送特定的攻击数据包即可。或者,攻击者可以在傀儡机上做一定时设置,时间一到,这些傀儡机就自行对既定目标发起攻击。
这里描述的是分布式拒绝服务攻击的一个典型过程。实际上,并非每一次攻击都要遵循这样一个过程的。例如攻击者在攻击了受害者甲以后的某天打算攻击受害者乙,这时,由于攻击者已经掌握了控制台机器和大量的攻击主机,第二个步骤就已经是完成了的,无须重复。或者,攻击者也许通过一些其他的渠道对某个受害者早已有了足够的了解,当他想要对其实施攻击时,第一个步骤当然也就不再需要了。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 穿盾ddos攻击器 的文章

 

随机推荐