分布式拒绝服务攻击(tfn2k)攻击及iptables过滤…
2008-02-23 07:16:29来源:互联网 阅读 ()
By lanf, 出处:http://www.linuxaid.com.cn/forum/
By wjpfjy From LinuxAID Forum
首先,我写这篇文章的目的,并不是我想成为什么hacker之类,而且我不并不鼓励任何人利用它来做一些有损他人的事情,我只是想多一些人关注网络安全,共同研究并防御DOS。因为我是深受其害:(,所以,这篇文章仅用于技术参考,供大家研究DDOS防御之用。如果你利用它来做一些不合法的事情,那结果与我无关。
拒绝服务攻击(DOS,Denial Of Service)可以指任何使服务不能正常提供的操作。如软件bug,操作失误等。不过现在因为失误操作而造成的dos,可能性非常小,更多的是恶意的攻击行为。现在拒绝服务攻击早已演变为分布式拒绝服务攻击(DDOS,Distributed Denial Of Service),利用更多的代理集中攻击目标,其危害更大。
我们大家都知道tcp/ip协议现在已经成为整个internet框架协议,可以说,如果没有tcp/ip,至少internet不会像现在这样普及,甚至不可能会有internet。但凡事皆有两面性,tcp/ip使我们大家受益,同时因为协议本身构造的问题,它也成为别人攻击我们的工具。我们以tcp三握手建立连接的过程来说明。
一、tcp syn flood
1.客户端(client)发送一个包含SYN(synchronize)的tcp包至服务器,此数据包内包含客户端端口及tcp序列号等基本信息。
2.服务器(server)接收到SYN包之后,将发送一个SYN-ACK包来确认。
3.客户端在收到服务器的SYN-ACK包之后,将回送ACK至服务器,服务器如接收到此包,则TCP连接建立完成,双方可以进行通讯(感觉像,一拜天地...二拜高堂...送入洞房...哈哈)
问题就出在第3步,如果服务器收不到客户端的ACK包,将会等待下去,这种状态叫做半连接状态。它会保持一定时间(具体时间不同操作系统不同),如果SYN请求超过了服务器能容纳的限度,缓冲区队列满,那么服务器就不再接收新的请求了,其他合法用户的连接都被拒绝掉。这种攻击往往事半' 罪'倍,杀伤力超强。
当然,DOS攻击的方法多种多样,如:UDP flood,ICMP/Ping,ICMP/SMURF...,具体原理的介绍大家可以到 http://www.chinaitlab.com/www/special/ciwddos.asp去看看,有很详细的原理及常用攻击软件介绍。不过说到DOS攻击软件,最具代表的莫过于tfn2k (Tribe Flood Network 2000),其作者是德国大名鼎鼎的mixter(其主页http://mixter.void.ru/papers.html),好像最近正在埋头搞什么tfn3k,哎~~,不知道又有多少人寝食难安了...
二.tfn2k攻击原理
1.tfn2k的攻击体系。
tfn2k应该算是DDOS攻击中的代表作,其所能实现的功能让人瞠目结舌,叹为观止...(对它的敬畏有如滔滔江水,延续不绝...)来看看它的架构。
主控端---运行tfn客户端,来遥控并指定攻击目标,更改攻击方法.(罪大恶极)
代理端---被植入并运行td进程的牺牲品,接受tfn的指挥,攻击的实施者.需要注意的是,一个攻击者,往往控制多台代理来完成攻击,而且其系统多为unix,linux等.(可怜的牺牲品)
目标主机---被攻击的主机或网络,曾经被DDOS的有Yahoo、Amazon、CNN、e-bay等.(最大的受害者,郁闷如我)
2.tfn2k特性。
◆ 主控端通过TCP、UDP、ICMP或随机性使用其中之一(默认.随机)的数据包向代理端主机发送命令,攻击方法包括TCP/SYN、UDP、ICMP/PING、混合攻击、TARGA3等。
◆ 主控端与代理端的通讯采取单向,即主控端只向代理端发送命令,并且会采取随机的头信息,甚至虚拟的源地址信息,代理端不会逆向向主控端发送任何信息.
◆ 所有命令经过CAST-256算法加命,其关键字即编译程序时的输入的口令.并且这个口令做为唯一认证凭证.
◆ 利用td进程,主控端可以远程执行shell命令.
◆ td进程的名称可以在编译时更改,更便于隐藏.
◆ tfn可以编译运行于win32及linux系统的.
...
至于伪造源IP地址等功能,更是基本功能,并且其与老版本的tfn相比,它的发包效率更高,我自已的测试,在短短不到5分钟,两台代理机,使我的redhat linux 9.0系统瘫痪.
三.tfn2k 实战测试
1.测试环境:
软件:redhat linux 9.0
硬件平台:
master:
IP: 192.168.0.6
PIV2.4/256*2/rtl8139
Ag1 :
IP: 192.168.0.2
PIV2.4/256*/rtl8139
AG2 : IP: 192.168.0.3
pIV2.6/512*2/3c905
AIM: 192.168.0.5
pIV2.66c/512*2/3c905
switch: D_link des 1024R
1.下载tfn2k.tgz(因为此软件非比寻常,所以我并不提供下载地址,如果有兴趣,自已到网上找吧)
2.解压: tar zxvf tfn2k.tgz
3.修改文件
A. src/Makefile 如果你的系统是linux系统,不需要做任何修就可以,如果是win32系统,请将
# Linux / *BSD* / Others
CC = gcc
CFLAGS = -Wall -O3
CLIBS =
这几行注释掉,并将
# Win32 (cygwin)
#CC = gcc
#CFLAGS = -Wall -DWINDOZE -O2
#CLIBS =
这几行的注释去掉.因为我的测试系统为redhat linux 9.0所以并未做任何修改.
B. src/config.h ,默认的就可以用,如果感兴趣,可以照其注释信息进行调整。
C. src/ip.h 这里要做一些修改,否则编译会有错误,发生重复定义。
/*struct in_addr
{
unsigned long int s_addr;
};*/
注意啊~~我可是将它放在"/* */"之间,也就是注释掉了:)
D.更改编译器:
因为tfn2k支持的是egcs-1.1.2-30,而redhat linux9.0所包含的是gcc-3.2.2-5,所以如果不替换掉gcc,tfn2k是编译不过去的.需要注意的是,更改之后,有可能会造成基于gcc3.2.2的软件编译不去,请谨慎而行.
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:Linux网络安全之经验谈(1)
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash