拒绝服务攻击原理及解决方法(3)

金馨1221

金馨1221

2016-01-29 16:39

拒绝服务攻击原理及解决方法(3),拒绝服务攻击原理及解决方法(3)

5、使用 ngrep来处理tfn2k 攻击

  根据使用DNS来跟踪tfn2k驻留程序的原理,现在已经出现了称为ngrep的实用工具。经过修改的ngrep(参见附录)可以监听大约五种类型的tfn2k拒绝服务攻击(targa3, SYN flood, UDP flood, ICMP flood 和 smurf),它还有一个循环使用的缓存用来记录DNS和ICMP请求。如果ngrep发觉有攻击行为的话,它会将其缓存中的内容打印出来并继续记录ICMP回应请求。假如攻击者通过ping目标主机的手段来铆定攻击目标的话,在攻击过程中或之后记录ICMP的回应请求是一种捕获粗心的攻击者的方法。由于攻击者还很可能使用其他的服务来核实其攻击的效果(例如web),所以对其他的标准服务也应当有尽量详细的日志记录。

还应当注意,ngrep采用的是监听网络的手段,因此,ngrep无法在交换式的环境中使用。但是经过修改的ngrep可以不必和你的DNS在同一个网段中,但是他必须位于一个可以监听到所有DNS请求的位置。经过修改的ngrep也不关心目标地址,您可以把它放置在DMZ网段,使它能够检查横贯该网络的tfn2k攻击。从理论上讲,它也可以很好的检测出对外的tfn2k攻击。

  运行 ngrep, 您将看到:

[root@lughnasad ngrep]# ./ngrep
Ngrep with TFN detection modifications by wiretrip / www.wiretrip.net
Watching DNS server: 10.0.0.8
interface: eth0 (10.0.0.0/255.255.0.0)

  从这里开始ngrep将监听tfn2k攻击,如果检测到攻击, ngrep将在屏幕上打印:

Sun Jan 9 17:30:01 2000
A TFN2K UDP attack has been detected!
Last (5000) DNS requests:
《list of IPs that made DNS requests, up to DNS_REQUEST_MAX length》
Last (1000) ICMP echo requests (pings):
《list of IPs that made ICMP echo requests, up to ICMP_REQUEST_MAX length》
Incoming realtime ICMP echo requests (pings):
《all ICMP echo requests since the attack was detected》

  以上的列表并不是唯一的,可以对它进行调整让他不仅显示是谁请求,而且请求多少次,频率为多少等等。在ICMP flood事件中,ICMP回应请求的报告中将不包括做为tfn2k flood一部分的ICMP包。Ngrep还可以报告检测出来的除smurf之外的攻击类型(TARGA, UDP, SYN, ICMP等)。混合式的攻击在缺省情况下表现为ICMP攻击,除非你屏蔽了向内的ICMP回应请求,这样它就表现为UDP或SYN攻击。这些攻击的结果都是基本类似的。

  6、附录- Ngrep.c with tfn2k detection

  以下的代码在使用前应当更改一些参数。
  #define DNS_REQUEST_MAX 5000
  #define ICMP_REQUEST_MAX 1000
  通知ngrep最大的请求跟踪数(在检测攻击之前)。传输较为繁忙的网站应当增加这一数值(网络流量较为繁忙的网站DNS的请求数最好在10,000,而ICMP请求为2000-3000)

  #define FLOOD_THRESHOLD 20

  用在10秒中内有多少同一类型的攻击包来确认为真正的攻击。数目设计的越大,程序报受攻击的可能性就越小。假如您老是收到错误的警报,那么您应当增加一下这个数值。

  #define DNS_SERVER_IP "10.0.0.8"

  Ngrep通过监视DNS服务器的53端口的UDP包来跟踪向内的DNS请求(只有UDP)。因此,ngrep需要知道您的DNS服务器的IP地址。

  我们的设备可能会有多个DNS服务器,但我们认为对一台DNS服务器的支持足以证明这项技术的能力。
#define TTL_THRESHOLD 150

  tfn2k SYN flood 攻击使用的 TTL值通常在200-255的范围内。估计到攻击者与目标主机之间不止50跳,因此我们可以只查找TTL时间高于150的包。假如您相信攻击者在50跳左右,那么您可以对TTL的限制进行一下更改。

  编译更改过的 ngrep

  编译和安装都非常简单。您仅需要使用以下之一来取代ngrep.c 文件。处于方便起见,我们可以详细说明。

  这段代码只是在RedHat 6.1 和Mandrake 6.5 Linux上测试过。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com)

首先您需要在 http://www.packetfactory.net/ngrep/ 下载ngrep,我们测试的是1.35版。

  然后在 ftp://ftp.ee.lbl.gov/libpcap.tar.Z下载libpcap 我们使用的是 0.40版。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com)

把文件放在临时文件夹里并解包,tar xvzf libpcap.tar.Z

  然后进行编译

  cd libpcap-0.4; ./configure; make; make install; make install-incl

  假如您遇到了困难,可以参见在libpcap-0.4目录里的README或INSTALL文件。根据我们实验的经验,如果/usr/local/include 和/usr/local/include/net目录在linux系统中不存在的话,安装会失败。加入您在安装时遇到了pcap.h 或 bpf.h的错误时你可以运行
mkdir /usr/local/include; mkdir /usr/local/include/net然后重新运行'make install-incl'。然后我们需要编译ngrep (使用我们修改过的版本)。首先解包:

  tar xvzf ngrep-1.35.tar.gz

  然后进行配

展开更多 50%)
分享

猜你喜欢

拒绝服务攻击原理及解决方法(3)

电脑网络
拒绝服务攻击原理及解决方法(3)

拒绝服务攻击原理及解决方法(2)

电脑网络
拒绝服务攻击原理及解决方法(2)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

拒绝服务攻击原理及解决方法(1)

电脑网络
拒绝服务攻击原理及解决方法(1)

分布式拒绝服务攻击(tfn2k)攻击及iptables过滤测试

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
分布式拒绝服务攻击(tfn2k)攻击及iptables过滤测试

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

mysql连接过多和死掉以及拒绝服务的解决方法

编程语言 网络编程
mysql连接过多和死掉以及拒绝服务的解决方法

解决MySQL数据库死掉以及拒绝服务的方法

编程语言 网络编程
解决MySQL数据库死掉以及拒绝服务的方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Ogg的制作

Ogg的制作

防火墙的技术与应用-相关知识(2)

防火墙的技术与应用-相关知识(2)
下拉加载更多内容 ↓