百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

DDOS攻击原理和防御方式(ddos攻击技术)

nanshan 2024-11-05 10:39 22 浏览 0 评论

一、实验目的

  1. 理解DDOS攻击原理
  2. 使用TFN2K发起攻击

二、实验环境

  1. 系统环境:Windows环境,kali环境
  2. 软件环境:TFN2K

三、实验原理

  1. DDOS攻击原理
    分布式拒绝服务攻击的英文意思是DistributedDenialofService,简称DDOS。它利用在已经侵入并已控制的不同的高带宽主机(可能是数百,甚至成千上万台)上安装大量的DOS服务程序,他们等待来自中央攻击控制中心的命令,中央攻击控制中心适时启动全体受控主机的DOS服务进程,让它们对一个特定目标发送尽可能多的网络访问请求,形成一股DOS洪流冲击目标系统,猛烈的DOS攻击同一个网站。在寡不敌众的力量抗衡下,被攻击的目标网站会很快失去反应而不能及时处理正常的访问甚至系统瘫痪、崩溃。
  2. DDOS攻击角色分析


  1. 从上图可以看出,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 -c 10 -i "mkdir /root/edison"在所有的HOST上root目录建立edison,-i后面跟“命令”
./tfn -f hostext -c 4 -i x.x.x.x 使用hostext文件中记录的主机对x.x.x.x服务器进行UDP攻击
./tfn -f hostext -c 5 -i x.x.x.x -p xxxx 使用hostext文件中记录的主机对x.x.x.x服务器进行TCP拒绝服务攻击
./tfn -f hostext -c 6 -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.txt
    echo “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

  • 结论:利用一台傀儡机进行攻击,便可以每秒捕获上万伪造数据包,却明显感觉被攻击的操作系统开始卡顿,若有更多的机器同时发起攻击,无疑会造成的后果将更加严重。

DDoS攻击防御方法

  1. 过滤不必要的服务和端口:可以使用Inexpress、Express、Forwarding等工具来过滤不必要的服务和端口,即在路由器上过滤假IP。比如Cisco公司的CEF(Cisco Express Forwarding)可以针对封包Source IP和Routing Table做比较,并加以过滤。只开放服务端口成为目前很多服务器的流行做法,例如WWW服务器那么只开放80而将其他所有端口关闭或在防火墙上做阻止策略。
  2. 异常流量的清洗过滤:通过DDOS硬件防火墙对异常流量的清洗过滤,通过数据包的规则过滤、数据流指纹检测过滤、及数据包内容定制过滤等顶尖技术能准确判断外来访问流量是否正常,进一步将异常流量禁止过滤。单台负载每秒可防御800-927万个syn攻击包。
  3. 分布式集群防御:这是目前网络安全界防御大规模DDOS攻击的最有效办法。分布式集群防御的特点是在每个节点服务器配置多个IP地址(负载均衡),并且每个节点能承受不低于10G的DDOS攻击,如一个节点受攻击无法提供服务,系统将会根据优先级设置自动切换另一个节点,并将攻击者的数据包全部返回发送点,使攻击源成为瘫痪状态,从更为深度的安全防护角度去影响企业的安全执行决策。
  4. 高防智能DNS解析:高智能DNS解析系统与DDOS防御系统的完美结合,为企业提供对抗新兴安全威胁的超级检测功能。它颠覆了传统一个域名对应一个镜像的做法,智能根据用户的上网路线将DNS解析请求解析到用户所属网络的服务器。同时智能DNS解析系统还有宕机检测功能,随时可将瘫痪的服务器IP智能更换成正常服务器IP,为企业的网络保持一个永不宕机的服务状态。

相关推荐

ssh终端xshell日志查看命令(xshell怎么看日志)

现在我们云服务器运维较多用的是SSH工具,其中常用的包括PUTTY、XSHELL等,其实大同小异界面UI稍微不同,但是都可以进入远程连接。这里有朋友提到如何查看服务器的日志文件,这个其实和是否使用XS...

使用 Fail Ban 日志分析 SSH 攻击行为

通过分析`fail2ban`日志可以识别和应对SSH暴力破解等攻击行为。以下是详细的操作流程和关键分析方法:---###**一、Fail2ban日志位置**Fail2ban的日志路径因系统配置...

如何高效读取Linux日志文件?这些命令要熟记于心!

在Linux系统中,日志文件通常存储在/var/log目录下。比如,/var/log/syslog(或/var/log/messages,视发行版而定)记录系统整体事件,/var/log/a...

Windows服务器远程登录日志查询方法,linux查看登录日志方法

概述本文介绍Windows、Linux服务器查询系统的远程登录日志方法。根据服务器所使用的操作系统不同,有以下两种查询方法。Linux操作系统的登录日志查询通过远程连接登录Linux服务器,使用roo...

iptables防火墙如何记录日志(防火墙日志查看)

例如:记录所有ssh服务的登录的日志首先,我们需要了解如何将所有的iptables的INPUT链数据包记录到/var/log/messages中。如果你已经有一些iptables规则了,那么将记录日志...

如何安全管理SSH密钥以防止服务器被入侵

SSH密钥安全管理实施指南(2025年更新版)一、密钥生成与存储规范高强度密钥生成bashCopyCodessh-keygen-ted25519-a100#生成ED25519算法密钥(比...

在CentOS上安装nginx服务器(centos搭建代理服务器)

一、环境描述1.虚拟机配置CPU:单核内存:2GB硬盘:120GBIP:10.24.17.1082.操作系统版本:CentOS6.6x86_64安装方式:Minimal3.虚拟化环境VM...

CentOS7安全加固的一份整理规划建议

◆更新系统:及时更新CentOS7操作系统版本和安全补丁,确保系统以最新状态运行。◆关闭不必要的服务:在运行系统时,应关闭不需要的服务和端口,以减少系统暴露的攻击面。◆安装防火墙:使用iptables...

第四十七天-二叉树,centOS安装tomcat,Maven,vsftpd

学习笔记:1.Maven是Apache下的一个纯Java开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。Maven...

Linux远程桌面连接使用教程 Widows终端远程连接Linux服务器

一、前言为什么不是远程连接Linux服务器?因为我不会,远程连接window我就用电脑自带的“远程桌面连接”。以下所述都是在CentOS操作系统下的。服务器刚换成Linux的时候很迷茫,感觉无从下手...

CentOS 安全加固操作,保护你的操作系统

系统加固是保障系统安全的重要手段,对于维护企业数据安全、用户隐私以及系统稳定运行具有重要意义。加固后的系统更加健壮和稳定,能够有效减少因安全问题导致的系统故障和停机时间,提高系统的可用性和可靠性。通过...

Dockerfile部署Java项目(docker如何部署java项目)

1、概述本文主要会简单介绍什么是Docker,什么是Dockerfile,如何安装Docker,Dockerfile如何编写,如何通过Dockerfile安装jar包并外置yaml文件以及如何通过do...

CentOS7云主机部署Fail2ban阻断SSH暴力破解

关于Fail2banFail2ban可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是调用防火墙屏蔽)例如:当有人在试探你的HTTP、SSH、SMTP、FTP密...

在CentOS7上用源码编译安装PostgreSQL

1、新建postgres用户#useraddpostgres&&passwdpostgres2、安装依赖包#yum-yinstallmakegccgcc-c++readline...

pure-ftpd 使用(ftp prompt命令)

pure-ftpd是一个免费的ftp软件,其他介绍就不多说了。我们直接开始主题安装centosyuminstallepel-releaseyuminstallpure-ftpd配置备份原配置...

取消回复欢迎 发表评论: