1、实验室概况
- 本实验室的学习目标是让学生对TCPIP协议的漏洞以及针对这些逅洞的攻击获得第一手的经验。TCPIP协议中的漏洞代表了协议设计和实现中的一种特殊类型的漏润;它们提供了一个宝贵的教训,告诉我们为什么应该从一开始就设计安全性,而不是在事后才添加。此外,研究这些漏洞有助于学生了解网络安全面临的挑战,以及为什么需要采取许多网络安全措施。TCP/P协议的漏洞存在于多个层面。
2、实验室环境
2.1环撞设置
-
网络设置。要进行这个实验,学生需要至少3台机器,一台计算机用于攻击,第二台计算机作为受害者,第三台计算机作为观察者。学生可以在同一台主机上设置3台虚拟机,也可以设置2台虚拟机,然后主机作为第三台计算机使用。对于这个实验室,我们将这三台机器放在同一个局域网中,配置如下:
-
我使用的是我的kali虚拟机(攻击机):192.168.163.190,ubuntu虚拟机(被攻击机):192.168.163.128,另一台ubuntu虚拟机(观察机):193.168.163.162
![]()
![]()
![]()
-
Netwcx 工具。我们需要工县来发送不同类型和不同内容的网络数据包。我们可以用Netwag来做。但是,由于Netwag 的GUI界面使我们很难自动化我们的过程。因此,我们强烈建议学生使用它的命令行版本,即Netwox命令,它是由 Netwag调用的底层命令。
- Netwox由一套工具组成,每个工具都有特定的数量。您可以像下面这样运行命令(参数取决于您使用的工耳)。对于某些工具,您必须使用根权限运行它。
- 如果我们不确定如何设置参数,可以通过发出“
nettwx nu mber——help”查看手册。还可以通过运行Netwag来了解参数设置:对于从图形界面执行的每个命令,Netwag实际上调用一个相应的Netwox命令,它显示参数设置。因此,您可以简单地复制并粘贴显示的命令
-
Wireshark工具。对于这个实验室,还需要一个好的网络流量嗅探器工具。尽管Netwox自带了一个嗅探器,但我们会发现另一个名为Wireshark的工具是一个更好的嗅探器工具。Netwgx和 wireshark都可以下载。如果我们正在使用我们预构建的塞拟机,那么这两个工具都已经安装了。要噢探所有的网络流量,这两个工具都需要由根程序运行。
-
启用ftp和tenet服务器。对于本实验,还可能需要启用ftp和telnet服务器。出于安全考虑,这些服务迪常在默认情况下是禁用的,要在我们预构建的Ubuntu虚拟机中启用它们,你需要以root用户,运行以下命令:
-
启动ftp服务器
-
在Linux中,Telnet和FTP是通过安装相应的软件包来启用的。在命令行中,可以使用以下命令来安装这些软件包:
- 安装Telnet:
sudo apt-get install telnetd - 安装FTP:
sudo apt-get install vsftpd
- 安装Telnet:
-
安装完成后,需要启动这些服务才能使用。使用以下命令启动服务:
- 启动Telnet:
sudo service openbsd-inetd restart - 启动FTP:
sudo service vsftpd start
![]()
- 启动Telnet:
-
发现提示启动错误
![]()
-
我查找解决方法:
- 首先看一下服务列表里有没有这个服务
systemctl list-unit-files --type=service
- 首先看一下服务列表里有没有这个服务
-
有的话执行 systemctl daemon-reload 即可,没有的话说明东西没装好。
![]()
![]()
![]()
-
另外两台虚拟机同样进行安装:
![]()
![]()
![]()
实验过程
3.1 Task (1): ARP缓存中毒
-
ARP缓存是ARP协议的重要组成部分。一旦执行ARP协议后,MAC地址和IP地址之间的映射被解析,映射就会被缓存。因此,如果该映射已经在缓存中,则无需重复执行ARP协议。然而,由于ARP协议是无状态的。缓存很容易被恶意ARP消息破坏。这种攻击称为ARP缓存投毒攻击。
-
在这种攻击中,攻击者使用欺骗ARP消息来欺骗受害者接受一个无效的MAC-IP映射,并将该映射存储在其缓存中。根据攻击者的动机,可能会出现各种各样的结果。例如,攻击者可以将一个不存在的MAC地址与受害者的默认网关IP地址相关联,从而对受害者发起DoS攻击;攻击者还可以将攻击对象之间的通信重定向到另一台机器,等等。
-
在本任务中,您需要演示ARP缓存中毒攻击是如何工作的。在这个任务中有几个命令是有用的。在Linux 中,我们可以使用命令arp来检查当前地址和MAC地址的映射关系。
-
ARP欺骗攻击的根源是ARP协议设计时认为局域网内部所有用户是可信的,采用广播请求包方式在局域网段中询问映射关系,并在本地使用ARP缓存机制。
-
以数字地址形式显示所有接口的当前ARP缓存表:
![]()
-
我们开始ping ubuntu虚拟机,最后再用arp -na来查看缓存表:
-n 以数字地址形式显示
-a 显示所有接口的当前ARP 缓存表


- 刚开始ARP缓存表没有其他虚拟机的MAC-IP映射,ping过通信之后就会记录IP地址对应的MAC地址。
- 工具:Netwox的33号工具可以构造任意的以太网ARP数据报,80号工具可以周期性地发送ARP应答报。
(1)80号工具攻击:
- 80:这个工具发送连续的ARP回复。您需要设备名称(上面解释过),以及源和目的IP地址和以太网地址。即使你不知道任何机器的以太网地址,你可以提供@IP作为一个参数,netwox会为你解决它(例如,ip地址为1.2.3.4的机器的以太网地址是@1.2.3.4)。
- 之后我们在192.168.163.190用netwox工具发送一个数据包给192.168.163.128,命令行版本是:
sudo netwox 80 --eth 00:0c:29:20:7b:b2 --ip 192.168.163.190 --device "Eth0" --eth-dst 00:0c:29:d0:d5:be --ip-dst 192.168.163.128 --sleep 1000
netwox 80: 使用 netwox 工具发送数据包,80 是 netwox 工具的参数,表示要使用其中的第 80 个工具来发送数据包。
--eth 00:0c:29:c9:a1:0b: 设置发送数据包的网卡 MAC 地址。
--ip 192.168.48.134: 设置发送数据包的 IP 地址。
--device "Eth0": 设置发送数据包的网络接口名称。
--eth-dst 00:0c:29:6b:14:ed: 设置目标设备的 MAC 地址。
--ip-dst 192.168.48.135: 设置目标设备的 IP 地址。
--sleep 1000: 在发送数据包之前等待 1000 毫秒。
- 该命令的含义是告诉192.168.163.128主机,IP地址为192.168.163.190的MAC地址为00:0c:29:20:7b:b2,这次我们设置的是正确的,结果在192.168.163.128虚拟机里可以查看到确实是正确的
![]()
![]()
我们再使用sudo netwox 80 --eth 00:0c:29:25:c9:21 --ip 192.168.163.190 --device "Eth0" --eth-dst 00:0c:29:d0:d5:be --ip-dst 192.168.163.128 --sleep 1000
- 该命令的含义是告诉192.168.163.128主机,IP地址为192.168.163.190的MAC地址为00:0c:29:25:c9:21(实际上是192.168.163.162的MAC地址)
之后我们在192.168.163.128主机上查看它的ARP地址缓存表:
![]()
- 从上图中我们可以看到,ping发出的IPMP数据包:网络层的目的IP是192.168.163.190主机,但是MAC地址却是192.168.163.162主机(观察机ubuntu)的,所以192.168.163.190主机不会接收和处理这个数据包,这个数据包将会被192.168.193.162主机接收和处理。
(2)33号工具攻击:
-
实施中间人攻击:192.168.163.190分别向192.168.163.128、192.168.163.162发送伪造的请求数据包进行欺骗,使得128的ARP缓存表中的映射关系分别是IP(162)/MAC(00:0c:29:20:7b:b2),192.168.48.162IP(128)/MAC(00:0c:29:20:7b:b2),这样128要给162发消息时就会发给190,162要给128发消息时也会发给190。
-
在攻击机A当中执行以下命令 sudo netwox 33 -b (B的mac地址) -g (C的ip地址) -h (B的mac地址) -i(B的ip地址)
- 说明:
-b显示网络协议下相关的模块;-g显示与客户端相关的模块;-h显示与服务器相关的模块; -i 显示与检测主机连通性相关的模块;
- 说明:
-
我们在190执行攻击128命令(这里B为受攻击的机器):
sudo netwox 33 -b 00:0c:29:d0:d5:be -g 192.168.163.162 -h 00:0c:29:d0:d5:be -i 192.168.163.128 -
该命令的含义是告诉192.168.163.128主机,IP地址为192.168.163.162的MAC地址为00:0c:29:20:7b:b2(实际上是192.168.163.190的MAC地址)
![]()
-
之后我们在192.168.163.128主机上查看它的ARP地址缓存表:
![]()
![]()
-
发现缓存表中192.168.163.162的MAC地址已经被改为了192.168.163.190的MAC地址00:0c:29:20:7b:b2。
-
同样地,我们在190执行攻击162命令:
sudo netwox 33 -b 00:0c:29:25:c9:21 -g 192.168.163.128 -h 00:0c:29:25:c9:21 -i 192.168.163.162
![]()
-
至此,190作为162和128的中间人攻击已经完成,这样128要给162发消息时就会发给190,162要给128发消息时也会发给190。
![]()
3.2任务(2):ICMP重定向攻击
-
路由器使用ICMP重定向消息向主机提供最新的路由信息,主机最初只有最小的路由信息。当主机收到ICMP重定向消息时,它将根据该消息修改路由表。由于缺乏验证,如果攻击者希望受害者以特定的方式设置其路由信息,可以向受害者发送敲骗的ICMP重定向消息,并欺骗受害者修改其路由表。
-
在本任务中,您应该演示_ICMP重定向攻击是如何工作的,并插述观察到的结果。
-
Linux下查看路由信息。可以使用route命令:
![]()
-
traceroute到主机192.168.1.102的路由:
traceroute 192.168.1.102 -
我们traceroute 192.168.163.128
![]()
- 第一列表示序号,表示路由跟踪的步骤或跳数。在这个例子中,第一条路由跟踪信息的序号是 1。
- 第二列表示 IP 地址,表示数据包到达该跳的IP地址,192.168.163.2 代表的是第一跳或者本地路由器的 IP 地址。
- 第三列表示列出的是从本机出发,到达该跳所经历的时间,单位为毫秒。
在这个例子中,后续的第二、三、四、五条路由信息中,都表示某些中间路由未能返回信息,输出了连续三个 *,表示到达该跳所经过的路由未给出响应。这可能是由于路由器配置问题、网络故障等原因造成的。

- 这是一个使用 ping 命令执行的 IP 地址探测结果。具体解释如下:
1: 第一个参数表示网络包的接收顺序号,这里显示为 1。
bogon: 一个不存在的 IP 地址,通常被用于网络测试。
(192.168.163.128): 圆括号中的 IP 地址是被 ping 测试的目标主机的 IP 地址。
0.453 ms 0.378 ms 0.333 ms: 三个数字分别表示向目标主机发送 ICMP 数据包的往返时延,单位为毫秒(ms)。这里显示了三次的测试结果。
- 总的来说,这个结果表示当前主机和 IP 地址为 192.168.163.128 的目标主机之间相互连接正常,网络通信延迟比较小。
- kali下
traceroute www.baidu.com全是*,但ping可通,这主要是因为kali下默认的traceroute发送的是UDP包,应该加参数-I(使用ICMP包),traceroute -I www.baidu.com。
![]()
![]()
- 路由跟踪的结果表明,在目标主机所在的网络范围内,网络通信质量较好,但是在跨节点穿越 ISP 和互联网骨干时,出现了连接延迟和丢包的情况,需要进一步检查和排除故障。
82,83,84,85,86工具:
- 这些工具用于特殊的ICMP攻击,都很容易使用。
- 攻击机192.168.163.190发送数据包攻击192.168.163.128:
netwox 86 -f "host 192.168.163.128" -g 192.168.163.190 -i 192.168.163.2
-f代表靶机地址,-g代表靶机的下一跳地址,-i代表伪造的身份。
意思以路由192.168.163.2的名义向数据包的源地址192.168.163.128发送一个ICMP重定向报文,使它使用192.168.163.190为默认的路由。
- 然后在被攻击的主机192.168.163.128运行前面的命令:
traceroute -I 192.168.1.102
traceroute -I www.baidu.com

-
可以看到192.168.163.128从第二跳地址开始就没有收到任何回包,且无法到达目标地址。
-
我们在192.168.163.128抓包:
![]()
-
发现traceroute -I www.baidu.com发出的ICMP数据包的目标地址是110.242.68.4,但是下一跳的地址是192.168.163.190(MAC地址是00:0c:29:20:7b:b2),说明我们之前的攻击成功了。
![]()
![]()
3.3任务(3):SYN flood攻击
-
SYN flood是DoS攻击的一种形式,攻击者向攻击者的TCP端口发送大量SYN请求,但攻击者无意完成-way 握手过程。攻击者要么使用敞骗的IP地址,要么不继续 这个过程。通过这种攻击,攻击者可以淹没受害者用于半开连接的队列,即已经完成SYN,SYN-ACK,但还没有得到最终ACK的连接。当此队列已击时,受害者无法再接受任何连接。图1说明了攻击。
-
队列的大小有一个系统范围的设置。在 Linux 中,我们可以使用以下命令检查系统队列大小设置:
sysctl -q net.ipv4.tcp_max_syn_backlog
我们可以使用命令“netstat -na”来检查队列的使用情况,即:与侦听端口相关联的半开连接数。这种连接的状态是SYN-RECV。如果3次握手结束,则连接状态为ESTABLISHED。 -
在本任务中,您需要演示SYN泛洪攻击。您可以先使用netwox工具进行攻击,再使用嗅探工具捕获攻击报文。当攻击正在进行时,在受害机器上运行“netstat -na”命令,并将结果与攻击前的结果进行比较。请描述你是如何知道攻击是否成功的。
![]()
-
SYN Cookie对策:如果您的攻击似乎不成功,您可以调查的一件事是,SYN Cookie机制是否打开了。SYN cookie是一种针对SYN flood攻击的防御机制。如果机器检测到它受到SYN泛洪攻击,该机制将启动。可以使用sysctl命令打开/关团SYN cookie机制:
# sysctl -a | grep cookie (Display the SYN cookie flag)
# sysctl -w net.ipv4.tcp_syncookies=0 (turn off SYN cookie)
# sysctl -w net.ipv4.tcp_syncookies=1 (turn on SYN cookie)
请打开或关闭SYN cookie机制运行您的攻击,并比较结果。在您的报告中,请描述为什么SYN cookie可以有效地保护机器免受SYN泛骐攻击,如果你的导师在讲座中没有介绍这个机制,你可以从互联网上找到SYN cookie机制是如何工作的。
- 使用以下命令检查系统队列大小设置:
# sysctl -q net.ipv4.tcp_max_syn_backlog

- 用命令
netstat -na来检查队列的使用情况:
![]()
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
- 显示tcp、udp连接:
netstat -atu
![]()
(1)关闭SYN cookie机制:
# sysctl -a | grep cookie (Display the SYN cookie flag)
# sysctl -w net.ipv4.tcp_syncookies=0 (turn off SYN cookie)
# sysctl -w net.ipv4.tcp_syncookies=1 (turn on SYN cookie)

76,78工具:
-
这些工具用于特定的TCP攻击(SYN和RST攻击)都很简单
-
刚开始从攻击机192.168.163.190连接192.168.163.128的21端口的ftp服务:
ftp 192.168.163.128
![]()
-
成功连接
-
也可以换成其他的端口,比如23的telnet服务等:
telnet 192.168.163.128
![]()
-
之后我们在192.168.163.190攻击主机上用netwox的76工具发送攻击数据包:
netwox 76 --dst-ip 192.168.163.128 --dst-port 21
netwox 76 -i 192.168.163.128 -p 21
-
在192.168.163.128被攻击主机上查看tcp、udp连接队列的使用情况
ftp服务的SYN-RECV半连接越来越多,
![]()
-
抓包可以看到192.168.163.128收到了大量的TCP连接建立的请求:
![]()
![]()
-
从观察机192.168.163.162上连接,已经连接不上了
![]()
(2)打开SYN cookie机制

-
192.168.163.190攻击主机上继续攻击,依旧有部分的TCP半连接,但是数量已经不多了
![]()
-
从观察机192.168.163.162上连接:
ftp 192.168.193.128 -
连接会比较缓慢,多连几次还是可以连接上。
-
用Wireshark抓取TCP包,发现192.168.48.135主机对长时间不完成3次握手的半连接进行了重置(RST):
![]()
-
SYN Cookie是对TCP服务器端的三次握手协议作一些修改,专门用来防范SYN Flood攻击的一种手段。它的原理是,在TCP服务器收到TCP SYN包并返回TCP SYN+ACK包时,不分配一个专门的数据区,而是根据这个SYN包计算出一个cookie值。在收到TCP ACK包时,TCP服务器在根据那个cookie值检查这个TCP ACK包的合法性。如果合法,再分配专门的数据区进行处理未来的TCP连接。
3.4任务(4):针对telnet和 ssh连接的TCP RST攻击
-
TCP RST攻击可以使两个攻击对象之间已经建立的TCP连接终止。例如,用户A和用户日之间已经建立了telnet连接(TCP),攻击者可以通过欺骗用户A到用户B的 RST报文,破坏用户B到用户A的 telnet连接。为了成功进行这种攻击,攻击者需要正确构造TCP RST报文。
- 在本任务中,需要对A和B之间已有的telnet连接进行TCP RST攻击,然后再对ssh连接进行相同的攻击。简单地说,我们假设攻击者和受害者在同一个局域网,即攻击者可以观察到A和B之间的TCP流量。
-
先在观察机192.168.163.162对被攻击机192.168.163.128进行telnet和 ssh连接:
![]()
![]()
78号工具:(“Reset every TCP packet”)
-
之后我们在攻击机192.168.163.190用netwox的78号工具(“Reset every TCP packet”)对192.168.163.128被攻击的22端口(ssh服务)和23端口(telnet服务)进行攻击:
netwox 78 --device "Eth0" --filter "host 192.168.163.128 and tcp port 22" --ips "192.168.163.162" -
发现192.168.163.162主机连接192.168.163.128主机ssh服务已经断开
-
再尝试连接192.168.163.128主机22端口:
![]()
- ssh连接被拒绝。
3.5任务(5):针对流媒体应用的TCP RST攻击
-
让我们通过在目前广泛使用的应用程序上进行试验,使TCP RST攻击变得更加有趣。在本任务中,我们选择视频流应用程序。对于这个任务,你可以选择一个你熟悉的视频流网站(我们不会在这里命名任何特定的网站)。大多数视频共享网站都与客户端建立TCP连接,实现视频内容的流媒体。攻击者的目标是破坏在受害者和视频流机器之间建立的TCP会话。为了简化实验室,我们假设攻击者和受害者在同一个局域网。在下面,我们指述一个用户(受害者)和一些视频流网站之间的常见互动;
•受害者在视频流网站中浏览视频内容,并连择其中一个视频进行视频流。
•通常视频内容由不同的机器托管,所有视频内容都位于不同的机器上。受害者选择视频后,将在受害者机器和内容服务器之间建立TCP会话进行视频流。然后,受害者可以观看他/她透择的视频。 -
我们的任务是通过切断受害者和内容服务器之间的TCP连接来中断视频流。您可以让受害者用户从另一台(虚拟)机器或与攻击者相同的(虚拟)机器浏览视频流网站。请注意,为了避免责任问题,任何攻击包都应该针对受害者机器(即自己运行的机器),而不是内容服务器机器(不属于您)。
-
原理跟上面的task4一样,我们先打开梨视频:
![]()
-
在攻击机192.168.163.190上运行攻击命令,只需要指定被攻击主机192.168.163.128即可:
netwox 78 --device "Eth0" --filter "host 192.168.163.128"或netwox 78 -i 192.168.163.128 -
再查看192.168.48.135服务器已经无法登录视频网站了
![]()
![]()
3.6任务(6):ICMP盲连接复位和源端抑制攻击
- ICMP报文也可以用来实现连接复位攻击。为此,攻击者向TCP连接的两个端点中的任何一个发送ICMP错误消息,表示“硬件错误”。这个连接可以被立即断开,因为 RFC 1122规定,当主机收到这样一个ICMP错误消息时,应该中止相应的连接。Rfc 1122将“硬件错误”定义为类型为3(目的地不可达)的ICMP错误消息,代码为2(协议不可达)、3(端口不可达)或4(需要分段并设置DF位)。
- ICMP源端抑制攻击消息被拥塞的路由器用来告诉TCP发送者放慢速度。攻击者可以伪造这些消息,对TCP发送着进行拒绝服务攻击。
在本任务中,需要发起ICMP盲连接复位攻击和ICMP源端抑制攻击。而要注意的是,在某些TCP状态下,有些系统可能会合理地忽略这类ICMP错误。你需要在实验报告中措述你的观察结果。
(1)ICMP盲连接复位
- 先在主机192.168.163.162上建立到192.168.163.128的telnet连接:
82号工具:(Sniff and send ICMP4/ICMP6 destination unreachable)
-
然后从攻击机192.168.48.134使用82号工具发送攻击数据包:
netwox 82 --device "Eth0" --filter "host 192.168.163.128 and tcp port 23" --code -
所有主机到192.168.163.128的端口和协议分别不可达:
![]()
-
但是观察机192.168.163.162到被攻击的主机192.168.163.128的telnet连接并没有中断:
![]()
(2)源端抑制攻击
85号工具:(Sniff and send ICMP4/ICMP6 source quench)
-
在攻击机192.168.48.134上运行攻击命令:
netwox 85 --device "Eth0" --filter "host 192.168.163.128 and tcp port 23" --src-ip 192.168.163.162 -
在观察机192.168.163.162上抓包:
![]()
-
发现的确有很多Source Quench的ICMP数据包,但是它只能起到降低被攻击主机192.168.163.128发送数据包速率的作用,而其实依旧能够ping通。
![]()
-
要真正达到拒绝服务的目的,还需要很多主机一起发送降低发送速率的请求,让数据包发送速率足够低。
-
在ICMP Blind Connection-Reset攻击中,利用RST报文来发送ICMP错误消息,表示“硬件错误”来中断TCP的连接。
- 而Source-Quench是ICMP用于控制主机发送TCP数据包的速率,当接收端目的主机发现TCP数据包发送速率太快时,会向源主机发送ICMP 的Source-Quench以用于告诉源主机降低发送速率。所以当攻击者伪造ICMP Source-Quench的时候,会导致正常TCP链路上的数据传送速率降低。但是在实际的操作中,猜测是这种降低并不够明显,未能造成攻击的效果。
3.7任务(7):TCP会话劫持
- TCP Session Hijacking攻击的目的是通过向会话中注入恶意内容来劫持两个受害者之间已经存在的TCP连接(会话)。如果该连接是telnet会话,攻击者可以在该会话中注入恶意命令,导致被攻击者执行恶意命令。我们将在这个任务中使用telnet。我们还假设攻击者和受害者在同一局域网。
注意:如果使用 wireshark观察网络流量,需要注意的是,wireshark在显示TCP序列号时,默认显示的是相对序列号,相对序列号等于实际序列号减去初始序列号。如果需要查看报文的实际序列号,需要右键单击wireshark输出信息中的“TCP”部分,选择“协议优先级”。在弹出窗口中,取消“相对序列号和窗口缩放”选项。
- 先在观察机192.168.163.162跟被攻击服务器192.168.163.128建立telnet连接:
然后抓包查看服务器发给客户端的最后一个数据包的参数:
![]()
![]()
40号工具:(Spoof Ip4tep packet)用于欺骗TCP/IP报文。
- 有了正确的参数,所有的TCP攻击都可以通过该工具完成。它允许用户修改报文的IP头、TCP头和TCP数据。这是用于会话劫持,可以很容易地用来编写操作系统指纹扫描仪。
![]()
netwox 40 --ip4-dontfrag --ip4-offsetfrag 0 --ip4-ttl 64 --ip4-protocol 6 --ip4-src 192.168.163.162 --ip4-dst 192.168.163.128 --tcp-src 34108 --tcp-dst 23 --tcp-seqnum 726 --tcp-acknum 177 --tcp-ack --tcp-psh --tcp-window 128 --tcp-data "6c73" - 40是netwox的40号工具,在
ip4-src后输入客户端的地址,在ip4-dst后输入服务器的地址,tcp-src输入源端口地址,tcp-seqnum和tcp-acknum输入伪造的值,tcp-data是要发的数据的16进制值,这里的“6c73”是ls的16进制。 - 抓包发现192.168.163.190成功伪造客户端192.168.163.162给服务器192.168.163.128发送数据包:
![]()
![]()
实验问答
1.研究初始序列号(ISN)的模式,并回答这些模式是否可预测:
- ISN 是 TCP 连接的一条起始序列,它被用于识别一个特定的数据包。ISN 是一个随机数,用于防止拒绝服务攻击和网络嗅探器的攻击。一些研究表明,某些操作系统或 TCP 实现可能存在一些 ISN 的模式,比如基于时钟的模式,这使得 ISN 可能可预测。这种情况可能会导致针对 TCP 连接的攻击,例如 TCP SYN 攻击和 TCP 瞬时共振攻击。
2.研究TCP窗口大小,并描述您的观察结果:
- TCP 窗口大小控制着发送方可以发送多少数据,而不必等待确认应答。窗口大小取决于接收方可以接收的缓冲区大小,因此它在连接的两端会动态变化。在实际中,我们可以观察到 TCP 窗口大小的变化与网络拥塞程度有关。在网络不拥塞的情况下,窗口大小通常较大,数据传输速度较快。在网络拥塞的情况下,窗口大小通常较小,数据传输速度较慢。
3.研究源端口号的模式,并回答这些模式是否可预测:
-
TCP 连接的源端口号用于标识主机上的应用程序,这个端口号是在应用程序启动时随机分配的。因此,源端口号理论上是不可预测的。但是,一些研究表明,某些操作系统或应用程序可能存在源端口号的模式,这种模式可能使攻击者在特定情况下更容易预测源端口号,从而实现攻击。
-
总的来说,TCP 攻击的难度程度取决于多个因素,包括网络配置、协议实现、安全管理措施等。与攻击相对应的是防御,在防御 TCP 攻击时需要保障网络的健康和安全。























































浙公网安备 33010602011771号