其他各种ddos攻击方式请参考'渗透'面试题
概述
攻击者利用“肉鸡”对目标网站在较短的时间内发起大量请求,大规模消耗目标网站的主机资源,让它无法正常服务
分类
可以根据网络协议层进行分类,比如应用层的http flood(cc攻击),DNS flood,DNS放大;传输层的SYN flood,UDP Flood,NTP Flood;网络层的icmp flood等,主要的攻击方式有两种,反射和放大,反射是利用第三方向目标攻击,比如dns放大就是通过udp协议伪造自己地址为攻击目标的地址向dns服务器发送大量的请求查询,使得dns服务器向攻击目标发送大量回复包,而放大就是尽可能多的让dns服务器多发送数据包
工具
https://hub.fastgit.org/wenfengshi/ddos-dos-tools
实战测试
SYN flood
在http请求中向目标ip发送大量的syn包,然后拒绝接收,对方会向我们发送ack包,但是我们没有接收,对方会持续发送直到一定时间结束
借助netsniff-ng
套件中的trafgen
工具,其可伪造源ip发起DDoS攻击,synflood.trafgen是对应的配置文件模版,修改文件里的源/目的MAC地址以及源/目的IP后,命令行直接运行trafgen --cpp --dev eth0 --conf synflood.trafgen --cpu 2 --verbose
即可发起synflood攻击
我这里是在kali下测试的自带netsniff-ng,如果你没有可以使用命令yum install netsniff-ng
或者apt install netsniff-ng
进行安装,然后下载synflood.trafgen这个配置文件,修改这个Dest IP即可
kali上直接输入命令攻击,用小鲨鱼抓包即可
AckFlood
在TCP连接建立之后,所有的数据传输TCP报文都是带有ACK标志位的,主机在接收到一个带有ACK标志位的数据包的时候,需要检查该数据包所表示的连接四元组是否存在,如果存在则检查该数据包所表示的状态是否合法,然后再向应用层传递该数据包。如果在检查中发现该数据包不合法,例如该数据包所指向的目的端口在本机并未开放,则主机操作系统协议栈会回应RST包告诉对方此端口不存在
这种的危害明显是比syn flood低,原因是因为在已经建立tcp连接基础上,通常是配合syn flood一起使用
ackflood.trafgen是对应的配置文件模版,修改文件里的源/目的MAC地址以及源/目的IP后,命令行直接运行trafgen --cpp --dev eth0 --conf ackflood.trafgen --cpu 2 --verbose
即可发起ackflood攻击
http flood(cc攻击)
发送大量get请求,http-get-dos是一个简单的、高性能HTTP GET DOS工具,可自定义HTTP请求头、连接数、总的HTTP请求数等进入目录下
make
编译后,http-get-dos -h
查看使用信息
在linux下直接编译运行文件
gcc 文件名.c -o 你需要执行文件名称
./可执行文件的名字
-n是发送requests包数量,-c是并发连接数,-H是http header信息
HTTP 慢速攻击
pyloris是一款开源的HTTP慢速DOS攻击软件,本版本为3.2版本,详情见主页,含图形界面,使用很方便
UDP fragment 攻击
small_frag.trafgen是对应的配置文件模版,修改文件里的源/目的MAC地址以及源/目的IP后,命令行直接运行trafgen --cpp --dev eth0 --conf small_frag.trafgen --cpu 2 --verbose
即可发起UDP fragment DoS attack攻击