| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> DDoS-分布式拒绝服务攻击 -> 正文阅读 |
|
[网络协议]DDoS-分布式拒绝服务攻击 |
DoS与DDo S简介DoS( Denial of Service 拒绝服务攻击)是一种历史悠久的网络攻击手法,短时间内对目标服务器产生大量请求,使服务器链路拥塞或忙于处理攻击请求,导致服务暂时中断或停止,导致其正常用户无法访问。 DDoS(Distributed Denial of Service分布式拒绝服务攻击)将多台计算机(僵尸网络)联合起来作为攻击平台,通过远程连接对一个或多个目标发动DoS攻击。目的消耗目标服务器性能或网络带宽,从而造成服务器无法为用户正常地提供服务。 网络通信原理网络访问简化过程客户端通过网络线路向远程服务器发送一个网络请求,服务器接收后对信息进行处理,处理完毕后将处理结果数据通过网络线路返回给客户端。 ? 网络传输协议互联网中数据的传输依靠的是TCP/IP协议为核心的通讯系统。TCP协议提供了可靠的通讯机制可以保障通讯有效性。 下面简单介绍一下经典的tcp/ip协议四层结构: 链路层(数据链路层/网络接口层): 实现物理硬件设备网卡接口的网络驱动,以处理数据在以太网线等物理媒介上的传输,网络驱动程序隐藏了不同物理网络的不同电气特性,为上层协议提供一个统一的接口。 通俗解释:链路层就是将上一层传过来的数据转换成比特即0和1编码,再将其通过电信号通过网络线路发送出去。 网络层(互联网层): 责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。通讯的两台物理主机之间通常不是直接连接,会通过多个中间节点(路由器)连接的,从而形成网络拓扑连接。网络层的作用之一就是选择这些中间节点,以确定两台物理主机间的通讯路径。网络层对上层协议隐藏了网络拓扑连接的细节,在使得传输层看来通讯双方是直接连接的。 ? 运输层: 主要为两台主机上的应用提供端到端的通信。提供了节点间的数据传送,应用程序之间的通信服务,主要功能是数据格式化、数据确认和丢失重传等。如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。 TCP协议的可靠性是通过三次握手过程来实现的,过程如下: 经过三次握手就可以确认客户端与服务端都可以正常的发送和接收信息。 ? 应用层: 应用程序间沟通的层,负责处理特定的应用程序细节。如电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。 ? DDoS攻击本质为什么讲DDos前要先了解网络协议呢?因为DDos可以发生上网络通讯的每一层中,在网络上只要遵从协议的格式编写数据包并将数据包发送出去,那这个数据包就会被送往目标地址。Dos攻击最简单的就是往同一个目的地发送大量的数据包沾满其带宽资源导致其网络卡顿等。数据包可以是HTTP、TCP、UDP、ICMP、IP等协议数据包。 身份隐藏“不会隐藏自己的黑客往往不是一个合格的黑客”,攻击者一般都会隐藏自己真实的地址而伪造ip地址从而躲过追踪。 最简单的就是将发送地址故意写成其他地址或者是虚拟的地址,接收信息的设备并不知道真实的发信人是谁。 ? 僵尸网络僵尸网络的表面意思是由机器人组成的网络。实际上,网络黑客会通过漏洞正面进攻没有及时打补丁的脆弱系统,或者是通过木马病毒侧面进攻缺乏网络安全意识的人,从而获得计算机系统的控制权限,简称“肉鸡”或“僵尸主机”。 黑客如果技术过硬可以通过编写病毒木马去感染网络中的设备从而控制大量的的设备,这些被控制的设备也被称之为僵尸网络。僵尸网络中的设备越多攻击力就越大。 如果攻击者有的是钱那他完全可以通过花钱来获得大量的真实设备,俗话说“有钱真的是可以为所欲为的” ? DDOS攻击方式反射攻击 反射攻击就是通过伪造发信地址,将发信地址改成要攻击的目标地址,然后将数据包发送给网络上大量的设备(反射器),设备接收到数据包后以为是攻击目标地址发的请求,此时大量的设备就会同时回复请求发送响应信息给目标攻击的机器,导致目标机器忙于处理这些信息。反射攻击还有一个好处是更难追踪到攻击的来源。 试想一下如果你某一天在等一个重要的电话,此时我将你的电话号码发送给大量的推销员说你需要他们的产品,结果可想而知你会被推销员的电话给淹没而错过重要的电话。 放大攻击 首先需要了解DNS的工作原理,通常我们在访问一个域名的时候首选需要先将域名解析成ip地址,在一次DNS查询的过程中终端机器发送10B(字节)的查询数据,DNS会返回500B的数据,发送和接收之间的数据差异是50倍。 ? 放大攻击就是利用了上述过程,攻击者将DNS查询的请求的请求地址改成目标地址,然后不断的发送DNS查询请求,那么就会产生50倍的流量攻击效果,从而达到对目标机器的带宽资源占用。 TCP之SYN洪水攻击 在上述的介绍中,TCP协议需要经过三次握手才能建立连接,所以伪造的发信地址不能完成三次握手建立连接,但是TCP在三次握手的过程中依旧可以被攻击,攻击的发生在第一次握手时,攻击者通过给目标服务器发送大量伪造请求地址的TCP连接请求即发送SYN,然后不需要处理服务器的响应,服务器在接收到请求后发生ACK后等待第三次握手,但是请求地址是伪造的服务永远不可能收到第三次握手,此时服务器会根据TCP协议中有重传机制会多次发送SYN+ACK直到超时才会释放占用的端口。如果攻击者不断地发送SYN请求那么服务器的端口就可能全部被占满而无法处理正常的请求。 SYN洪水攻击就是通过消耗服务器的TCP连接资源而达到DDos的攻击效果。 ? TCP之RST洪水攻击 首选需要了解TCP的RST标志位,RST机制在TCP连接中的作用是用来强制关闭异常的TCP连接的,例如A和B之间建立的TCP连接,正常情况下关闭连接需要经过四次挥手才会释放连接资源,但是A可以通过发送RST信号来强制关闭连接,此时关闭连接不需要B的响应。 RST洪水攻击就是利用了TCP的RST机制,例如攻击者知道用户地址以及用户会和目标服务器之间进行TCP连接,此时攻击者可以通过伪造TCP正常用户的RST请求发送给服务器,让服务器误以为正常用户的RST请求而导致异常关闭连接。如果攻击者不知道用户的ip地址则可以通过发送大量伪造的RST请求给目标服务器进行盲打,只要刚好IP地址个某个用户对上就会导致用户和服务器之间的连接异常关闭。 RST攻击主要是针对用户而言。 HTTP洪水攻击 上述介绍的攻击方式主要是通过消耗目标服务的带宽资源和连接资源,还有一种攻击方式是针对服务的io以及计算资源。 首选需要了解一下一次查询请求的过程,客户端发送关键字给服务器,服务接收到关键字后通过查询数据库或者通过计算获取查询结果(这个过程是需要消耗计算资源和进行IO操作的),然后将结果返回给客户端。 应用的功能一般由应用层的HTTP协议进行通信,而HTTP协议是基于TCP协议的,故HTTP协议通信是不能隐藏攻击者的,攻击者一般会通过网络代理主机获得大量的真实的ip地址然后发起攻击。如果你不缺钱也可以通过花钱获得大量的真实的设备,如果你技术过硬也可以通过编写木马病毒控制网络中大部分设备。在获取大量设备后同时给目标服务器发送大量的查询请求以达到消耗目标服务的IO以及计算资源,使其无法处理正常的用户的请求,或者是直接使目标服务压力过大而导致崩溃。 ?欢迎大家关注我的订阅号,会定期分享一些关于测试相关的文章,有问题也欢迎一起讨论学习! ? |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 22:22:39- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |