TCP三次握手攻击

awl伪装MAC地址对TCP3次握手进行多线程SYN攻击

  • 什么是TCP的三次握手?

ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1
SYN(SYNchronization) : 在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文。对方若同意建立连接,则应在响应报文中使SYN=1和ACK=1. 因此,  SYN置1就表示这是一个连接请求或连接接受报文。
FIN (finis)即完,终结的意思, 用来释放一个连接。当 FIN = 1 时,表明此报文段的发送方的数据已经发送完毕,并要求释放连接。
  • TCP三次握手过程

Title:连接建立的过程
客户主机->服务器主机: 连接请求(SYN=1,seq=client_isn)
服务器主机->客户主机: 授予连接(SYN=1,seq=client_isn)\n ack=client_isn+1
客户主机->服务器主机: 确认(SYN=0,seq=client_isn+1)\nack=server_isn+1
以上过程是B主机远程A主机,对A主机抓包产生的结果进行分析:
    ---------------------------------
    |     A主机:192.168.191.141     |
    |     B主机:192.168.191.140     |
    ---------------------------------
    tcpdump port 22 -c 3 -n -i ens33  #对ens33网卡进行抓包,只抓取前3行。
    1.Flags[s] 中的s表示SYN包为1
    2.为什么最后一个ack为1不是为Y+1呢?
    client主机返回ACK,包序号为ack=1 ,这是相对序号(相对于原来的加1),如果需要看绝对序号,可以在tcpdump命令中加-S


1、首先由Client发出请求连接即 SYN=1,声明自己的序号是 seq=x
2、然后Server 进行回复确认,即 SYN=1 ,声明自己的序号是 seq=y, 并设置为ack=x+1,
3、最后Client 再进行一次确认,设置  ack=y+1.
知识点:
seq 序列号范围:2^32 -1   到最大值,再从0开始
seq 序列号作用:依据这个序列号来组数据
  • 在局域网中使用 awl伪装MAC地址进行多线程SYN攻击

SYN洪水攻击概述:

SYN洪水攻击的过程:
1.在服务端返回一个确认的SYN-ACK包的时候有个潜在的弊端,如果发起的客户是一个不存在的客户端,那么服务端就不会接到客户端回应的ACK包。
2.这时服务端需要耗费一定的数量的系统内存来等待这个未决的连接,直到等待超关闭,才能释放内存。
3.如果恶意者通过ip欺骗,发送大量SYN包给受害者系统,导致服务端存在大量未解决连接并占用大量内存和tcp连接,从而导致正常客户端无法访问服务端,这就是SYN洪水攻击的过程。
  • 如何伪造IP和MAC地址呢?

在linux上我们使用ACL工具进行伪造

下载地址:https://gitlab.com/davical-project/awl/tags

当然以上的Dban系统使用的关于在Centos上使用的不提供恶意攻击技术支持。
  • 上传包源码编译

awl参数如下:
-i 发送包的接口,如果省略默认是ens33
-m 指定目标mac地址    注:如果-m没有指定mac,默认目标MAC地址是“FF.FF.FF.FF.FF.FF”,这表示向同一网段内的所有主机,进行SYN攻击,1-2分钟内,还容易使整个局域网瘫痪。
-d 被攻击机器的IP
-p 被攻击机器的端口
  • 使用awl伪造攻击

  • 至于效果谁用谁知道!

TCP三次握手攻击》有1个想法

发表评论