20232810 2023-2024-2 《网络攻防实践》实验四

一、实践内容

网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。

1、网络层协议攻击

常见的包括:IP源地址欺骗、ARP欺骗和ICMP路由重定向攻击。
(1)IP源地址欺骗(IP spoofing)
定义:是指攻击者伪造具有虚假源地址的IP数据包进行发送,以达到隐藏发送者身份、假冒其他计算机等目的。
应用场景:IP源地址欺骗常应用于拒绝服务攻击、网络扫描、基于IP地址的身份认证机制等。
防范措施:使用随机化初始序列号、使用网络层安全传输协议、避免采用基于IP地址的信任策略、在路由器和网关上实施包过滤等。
(2)ARP欺骗(ARP Spoofing)
定义:有时被称为ARP下毒(ARP Poisoning),是指攻击者在有线以太网或无线网络上发送伪造ARP消息,对特定IP所对应的MAC地址进行假冒欺骗,从而达到恶意目的。
应用场景:局域网嗅探、中间人攻击、恶意代码等。
防范措施:静态绑定关键主机的IP地址与MAC地址映射关系、使用相应的ARP防范工具、使用VLAN虚拟子网细分网络拓扑、加密传输数据以降低ARP欺骗攻击的危害后果等。
(3)ICMP路由重定向攻击(ICMP Redirect Attack)
定义:攻击者伪装成路由器发送虚假的ICMP路由路径控制报文,使得受害主机选择攻击者指定的路由路径,从而进行嗅探或假冒攻击。
使用场景:ICMP报文类型分为差错报告类和控制类。ICMP重定向攻击一般会和IP源地址欺骗技术结合实施。
防范措施:根据类型过滤一些ICMP数据包、设置防火墙过滤、对于ICMP重定向报文判断是不是来自本地路由器等。

2、传输层协议攻击

主要协议TCP和UDP也存在很多种不同攻击方式,有TCP RST攻击、TCP会话劫持攻击、TCP SYN洪泛拒绝服务攻击和UDP洪泛拒绝服务攻击等。
(1)TCP RST攻击
也被称为伪造TCP重置报文攻击(spoofed TCP reset packet),是指一种假冒干扰TCP通信连接的技术方法。
(2)TCP会话劫持(TCP Session Hijacking)
目标是劫持通信双方已建立的TCP会话连接,假冒其中一方(客户端)身份,与另一方进行进一步通信。
防范TCP会话劫持攻击的手段有禁用主机源路由、采用静态绑定IP-MAC映射表以避免ARP欺骗、引用和过滤ICMP重定向报文、采用网络层加密机制IPSec协议等。
(3)TCP SYN Flood拒绝服务攻击
拒绝服务攻击(Denial of Service,DoS)的目的是使服务器不能够为正常访问的用户提供服务。
-TCP SYN Flood(也称SYN洪泛攻击)利用TCP三次握手协议缺陷向目标主机发送大量伪造源地址的SYN连接请求消耗目标主机的连接队列资源,从而不能够为正常用户提供服务。
防范SYN Flood攻击的措施有SYN-Cookie技术、防火墙地址状态监控技术等。
(4)UDP Flood拒绝服务攻击
通过向目标主机和网络发送大量的UDP数据包造成目标主机显著计算负载提升或者目标网络的网络拥塞,从而使得目标主机和网络陷入不可用的状态,造成拒绝服务攻击。
防范措施有禁用或过滤监控和响应服务、禁用或过滤其他UDP服务等。

二、实践过程

本次实验使用kali虚拟机、攻击机Ubuntu和Metasploitable2-Linux靶机。在开始具体攻击实验前,我们使用 ifconfig 先分别查看三台虚拟机的IP和MAC地址。

注:本次作业要求环境为局域网,因此三款机型网络适配器均调整为VMnet8(NAT模式)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.1 ARP缓存欺骗攻击

在攻击机Ubuntu中使用指令 ping Metasploitable2-Linux的IP,得到arp缓存表。使用 arp -a查看arp缓存表,可以从下图中看到Metasploitable2-Linux的IP地址和MAC地址是对应的。
在这里插入图片描述
在这里插入图片描述
2)然后在Kali上执行指令 netwox 80 -e MAC(kali) -i IP( Metasploitable2-Linux)(80是指netwox的80号工具)之后,就会在局域网内广播这条命令。使得攻击机Ubuntu 收到IP(Metasploitable2-Linux)/MAC(Kali)的映射。(注:此处没有返回结果)
在这里插入图片描述
(3)在攻击机Ubuntu中再次使用 arp -a 查看ARP映射,欺骗成功:
在这里插入图片描述
(4)在Kali上使用Wireshark进行捕获。
在这里插入图片描述
(5)最后,执行 sudo arp -d 192.168.200.125 来删除arp缓存

在这里插入图片描述

2.2 ICMP重定向攻击

(1)在攻击机Ubuntu上打开Wireshark来查看数据流量,并在终端 ping baidu.com,我们发现攻击机Ubuntu可以直接访问外网。
在这里插入图片描述
在这里插入图片描述
(2)在Kali主机上执行命令 netwox 86 -f “host IP(攻击机ubuntu)” -g IP(kali) -i 192.168.200.1(嗅探到攻击机Ubuntu的数据包时,以192.168.200.1的名义发送ICMP重定向报文,使Kali成为默认路由)之后,在终端中,我们发现其访问百度的数据包已经被重定向到Kali。
在这里插入图片描述

2.3 SYN Flood攻击

这里选择利用攻击机Ubuntu向靶机Metasploitable2-Linux发起telnet服务访问,用Kali攻击机攻击靶机的telnet服务端口,并用Wireshark查看。

(1)使用攻击机Ubuntu向Metasploitable2-Linux发起登陆 telnet IP(Metasploitable2-Linux),输入用户名密码(Metasploitable2-Linux登陆的用户名密码:msfadmin)。
在这里插入图片描述
2)在Kali上利用netwox的76号工具对靶机的23号端口进行SYN Flood攻击 netwox 76 -i IP(Metasploitable2-Linux)-p 23
在这里插入图片描述
(3)在Kali中用Wireshark捕包,可以看到攻击机向靶机发送了大量的虚假ip发出的SYN连接请求。同时seed上进行访问也发现无法访问了。
在这里插入图片描述

2.4 TCP RST攻击

这里我们同样选择利用攻击机Ubuntu向靶机MetaSploitable发起telnet服务访问,用Kali攻击机对靶机发起TCP RST攻击。

(1)使用攻击机Ubuntu向Metasploitable2-Linux发起登陆 telnet IP(Metasploitable2-Linux),输入用户名密码(MetaSploitable登陆的用户名密码:msfadmin)。
在这里插入图片描述
(2)在Kali上利用netwox的78号工具对靶机进行TCP RST攻击 netwox 78 -i IP(Metasploitable2-Linux)
在这里插入图片描述
(4)在Kali中用Wireshark捕包,可以看到攻击机向靶机发送了RST包。
在这里插入图片描述

2.5 TCP会话劫持攻击

(1)在攻击机Ubuntu上使用 **telnet IP(Metasploitable2-Linux)**指令,并且账号密码登陆(msfadmin)。同时在Kali上用Wireshark进行捕包。
在这里插入图片描述
(2)在Kali中打开Wireshark进行嗅探,筛选telnet,在攻击机Ubuntu中输入ls,在wireshark的数据包中可以找到。
在这里插入图片描述
在这里插入图片描述
(3)Wireshark设置过滤条件telnet,找到最后一个数据包,打开TransmissionControl Protocol 查看:源端口、目的端口、Next Seq Num和ACK值。
在这里插入图片描述
(4)伪造发下一个包,把Next Seq Num作为下一个包的ACK,采用ACK作为下一个包的Seq。获取到信息之后,攻击机使用netwox工具伪造攻击机 Ubuntu给MetaSploitable发一个tcp包。发送成功后,原来的攻击机 Ubuntu就会失去连接,同时Metasploitable2-Linux会把Kali当作访问者 ,如此实现了会话劫持。
使用指令 netwox 40 --ip4-dontfrag --ip4-offsetfrag 0 --ip4-ttl 64 --ip4-protocol 6 --ip4-src 192.168.200.2 --ip4-dst 192.168.200.125 --tcp-src 43286 --tcp-dst 23 --tcp-seqnum 120 --tcp-acknum 1224 --tcp-ack --tcp-psh --tcp-window 64 --tcp-data “6c”

其中第一个40是netwox的40号工具,在ip4-src后输入你的攻击机 Ubuntu地址,在ip4-dst后输入你的MetaSploitable地址,tcp-src表示源端口号(最后一个包的目的端口);tcp-dst表示目的端口号(最后一个包的源端口);tcp-seqnum和tcp-acknum输入在前面说明的值;tcp-data是你要发的数据的16进制值,6c是l的16进制。
在这里插入图片描述
(5)在Wireshark中可以捕到伪造的包,如果发现了很多Tcp Dup和Tcp Retransmission,那么劫持就是成功的。TCP Dup ACK XXX#X即重复应答#前的表示报文到哪个序号丢失,#后面的是表示第几次丢失,TCP Retransmission是超时引发的数据重传,也就是ACK风暴。
在这里插入图片描述

三、学习中遇到的问题及解决

(1)问题:在进行TCP RST攻击实验时,一直看不到连接关闭的信息。
解决方法:要点一下回车键才能出来。
(2)问题:在TCP会话劫持攻击实验时,无法正常连接telnet。
解决方法:关闭kali虚拟机里上一个实验的命令。
(3)问题:TCP会话劫持攻击实验在Wireshark中没有捕到伪造的包。
解决方法:发现不知什么时候点了停止捕获包的按钮,点开再执行命令成功捕获。

四、学习感想和体会

通过本次实验,更深入地了解了几种常见的网络协议所包含的数据包。实验相对简单,但由于自己的粗心导致做的比较慢,在以后的实验中要更加认真细心,也要去探究实验背后的原理。运用了一些常见的网络攻击手段进行实验,为网络异常流量分析、网络攻击打下了基础。

五、参考资料

https://www.cnblogs.com/ql5199/p/16093955.html
https://www.cnblogs.com/dzc1/p/16123700.html
https://blog.csdn.net/qq_44922581/article/details/129716319

  • 15
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值