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

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

nanshan 2024-11-05 10:39 25 浏览 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,为企业的网络保持一个永不宕机的服务状态。

相关推荐

0722-6.2.0-如何在RedHat7.2使用rpm安装CDH(无CM)

文档编写目的在前面的文档中,介绍了在有CM和无CM两种情况下使用rpm方式安装CDH5.10.0,本文档将介绍如何在无CM的情况下使用rpm方式安装CDH6.2.0,与之前安装C5进行对比。环境介绍:...

ARM64 平台基于 openEuler + iSula 环境部署 Kubernetes

为什么要在arm64平台上部署Kubernetes,而且还是鲲鹏920的架构。说来话长。。。此处省略5000字。介绍下系统信息;o架构:鲲鹏920(Kunpeng920)oOS:ope...

生产环境starrocks 3.1存算一体集群部署

集群规划FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。BE:节点负责数据存储和SQL执行。>3节点。CN:无存储功能能的BE。环境准备CPU检查JDK...

在CentOS上添加swap虚拟内存并设置优先级

现如今很多云服务器都会自己配置好虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存...

国产深度(deepin)操作系统优化指南

1.升级内核随着deepin版本的更新,会自动升级系统内核,但是我们依旧可以通过命令行手动升级内核,以获取更好的性能和更多的硬件支持。具体操作:-添加PPAs使用以下命令添加PPAs:```...

postgresql-15.4 多节点主从(读写分离)

1、下载软件[root@TX-CN-PostgreSQL01-252software]#wgethttps://ftp.postgresql.org/pub/source/v15.4/postg...

Docker 容器 Java 服务内存与 GC 优化实施方案

一、设置Docker容器内存限制(生产环境建议)1.查看宿主机可用内存bashfree-h#示例输出(假设宿主机剩余16GB可用内存)#Mem:64G...

虚拟内存设置、解决linux内存不够问题

虚拟内存设置(解决linux内存不够情况)背景介绍  Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...

Elasticsearch性能调优(5):服务器配置选择

在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,...

Es如何落地

一、配置准备节点类型CPU内存硬盘网络机器数操作系统data节点16C64G2000G本地SSD所有es同一可用区3(ecs)Centos7master节点2C8G200G云SSD所有es同一可用区...

针对Linux内存管理知识学习总结

现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内...

MySQL进阶之性能优化

概述MySQL的性能优化,包括了服务器硬件优化、操作系统的优化、MySQL数据库配置优化、数据库表设计的优化、SQL语句优化等5个方面的优化。在进行优化之前,需要先掌握性能分析的思路和方法,找出问题,...

Linux Cgroups(Control Groups)原理

LinuxCgroups(ControlGroups)是内核提供的资源分配、限制和监控机制,通过层级化进程分组实现资源的精细化控制。以下从核心原理、操作示例和版本演进三方面详细分析:一、核心原理与...

linux 常用性能优化参数及理解

1.优化内核相关参数配置文件/etc/sysctl.conf配置方法直接将参数添加进文件每条一行.sysctl-a可以查看默认配置sysctl-p执行并检测是否有错误例如设置错了参数:[roo...

如何在 Linux 中使用 Sysctl 命令?

sysctl是一个用于配置和查询Linux内核参数的命令行工具。它通过与/proc/sys虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...

取消回复欢迎 发表评论: