20212813 2021-2022-2 《网络攻防实践》第四周作业

一、实验内容

TCP/IP协议设计在设计之初便没有对其安全性进行考虑,从而存在着安全设计缺陷与弱点。本次实验内容针对TCP/IP协议栈重点协议的缺陷与不足进行攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。

本次实验使用的主要工具为netwox(这篇博客对该工具的使用有较为详细的描述),作为一款网络工具集,它可以创造任意的TCP、UDP和IP数据报文,以实现网络欺骗,并且可以在 Linux 和 Windows系统中运行。

二、实验过程

1、ARP缓存欺骗攻击

ARP欺骗攻击介绍

ARP欺骗(ARP spoofing),又称ARP毒化(ARP poisoning,网络上多译为ARP病毒)或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术,通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网络上特定计算机或所有计算机无法正常连线。

ARP欺骗的运作原理是由攻击者发送假的ARP数据包到网上,尤其是送到网关上。其目的是要让送至特定的IP地址的流量被错误送到攻击者所取代的地方。因此攻击者可将这些流量另行转送到真正的网关或是篡改后再转送(中间人攻击)。攻击者亦可将ARP数据包导到不存在的MAC地址以达到阻断服务攻击的效果,本次实验使用netwox工具进行ARP攻击,以实现阻断服务的效果。

本次使用的虚拟机信息:

虚拟机 IP MAC
Kali 192.168.13.132 00:0c:29:85:f0:1b
Win2KServer 192.168.13.131 00:0c:29:d2:c3:f3
Linux MetaSploitable 192.168.13.130 00:0c:29:e9:f4:6f

攻击过程

首先要保证所有的主机在同一个局域网内,因此手动将Kali虚拟机设置为主机模式(同两个靶机一样),然后手动分配IP地址为192.168.13.132:

使用拼命令测试MetaSploitable和Win2KServer之间的连通性,ping 192.168.13.131,结果正常:

使用arp -a查看MetaSploitable当前的ARP表,发现里面仅有一条Win2KServer的IP和MAC记录:

使用Kali的netwox工具进行攻击(可以使用sudo apt-get install netwox进行安装),命令为sudo netwox 80 -e 00:0c:29:d2:c3:ff -i 192.168.13.131(netwox 80可以发出ARP数据包),其中MAC地址00:0c:29:d2:c3:ff是伪造不存在的,这样的目的便是让靶机误以为该MAC地址是目标主机的:

kali进行攻击之后,再次查看MetaSploitable的ARP表,发现192.168.13.131对应的MAC地址已经修改成了00:0c:29:d2:c3:ff,此时使用ping命令测试与Win2KServer的连通性,发现已经ping不通了,数据包全部丢失:

关闭ARP攻击后(结束命令),再次测试与Win2KServer的连通性,等待一段时间之后便可以重新ping通了:

2、ICMP重定向攻击

攻击介绍

ICMP重定向信息是路由器向主机提供实时的路由信息,当一个主机收到ICMP重定向信息时,它就会根据这个信息来更新自己的路由表。由于缺乏必要的合法性检查,如果想要被攻击的主机修改它的路由表,就可以通过发送ICMP重定向信息给被攻击的主机,让该主机按照要求来修改路由表,本次实验通过netwox工具伪造ICMP重定向数据包,让目标主机重定向到攻击机上。

本次使用的虚拟机信息:

虚拟机 IP
Kali 192.168.13.8
SEEDUbuntu 192.168.13.3

攻击过程

首先在SEEDUbuntu上ping baidu.com检查连通性,并查看路由信息route -n

在Kali上使用netwox的86号工具伪造重定向数据包,命令为sudo netwox 86 -f "host 192.168.13.3" -g 192.168.13.8 -i 192.168.13.1,即嗅探网络中来自主机192.168.13.3的TCP包,一旦出现,就以网关192.168.13.1的名义,向数据包的源地址发送一个ICMP重定向报文,使之使用192.168.13.8(本机)作为默认的路由:

在SEEDUbuntu上再次ping baidu.com,能够发现已经重定向到192.168.13.8上:

使用Wireshark抓取产生的数据包也能够看到ICMP重定向数据包:

3、SYN Flood攻击

攻击介绍

SYN Flood (SYN洪水) 是一种典型的DoS (Denial of Service,拒绝服务) 攻击。效果就是服务器TCP连接资源耗尽,停止响应正常的TCP连接请求。SYN Flood攻击通过伪造大量的不存在的源IP地址TCP连接请求包,让目标主机建立大量无意义连接以消耗资源,造成拒绝服务:

本次使用的虚拟机信息:

虚拟机 IP
Kali 192.168.13.8
SEEDUbuntu 192.168.13.3
Linux MetaSploitable 192.168.13.130

攻击过程

本次攻击的目的是通过SYN Flood使MetaSploitable的telnet服务崩溃,首先检查没有攻击的情况下SEEDUbuntu能否进行telnet连接:

在Kali上使用netwox的76号工具进行SYN Flood,命令为sudo netwox 76 -i 192.168.13.130 -p 23(23号端口是telnet服务端口),开启攻击后,右上角的CPU和内存利用情况也能展示出这种“狂轰滥炸”式攻击:

然后在SEEDUbuntu再次进行telnet连接,发现连接卡住,连接超时,关闭攻击命令后又能够正常进行telnet连接:

使用Wireshark捕获这个过程产生的数据包可以发现,有大量伪造源IP地址的TCP连接请求数据包发往MetaSploitable的23号端口,导致了拒绝服务:

4、TCP RST攻击

攻击介绍

TCP RST攻击可以使两个攻击对象之间已经建立的TCP连接终止。例如,用户A和用户日之间已经建立了telnet连接,攻击者可以通过欺骗用户A到用户B的RST报文,破坏用户B到用户A的telnet连接。这种攻击只能针对TCP,对UDP无效。

本次使用的虚拟机信息:

虚拟机 IP
Kali 192.168.13.8
SEEDUbuntu 192.168.13.3
Linux MetaSploitable 192.168.13.130

攻击过程

紧接上个攻击实验,在Kali上使用netwox的78号工具(“Reset every TCP packet”)进行TCP RST攻击,命令为sudo netwox 78 -i 192.168.13.130

之后使用SEEDUbuntu进行telnet连接,发现连接到一半便被关闭了:

通过Wireshark捕获数据包可以发现,建立连接之后,出现了很多RST数据包将之前建立的连接断开了,导致了telnet连接关闭:

5、TCP会话劫持攻击

攻击介绍

TCP会话劫持攻击的目的是通过向会话中注入恶意内容来劫持两个受害者之间已经存在的TCP连接(会话)。如果该连接是telnet会话,攻击者可以在该会话中注入恶意命令,导致被攻击者执行恶意命令。

本次使用的虚拟机信息:

虚拟机 IP
Kali 192.168.13.8
SEEDUbuntu 192.168.13.3
Linux MetaSploitable 192.168.13.6

攻击过程

本次攻击使用的工具为ettercap,在kali中可以使用sudo ettercap -G打开图形化界面进行操作(点击右上角的对号):

打开Ettercap Menu->Hosts->Host List,将SEEDUbuntu和MetaSploitable设置为目标1和目标2,如果目标IP不存在,可以点击Ettercap Menu->Hosts->Scan for hosts进行搜寻,这里需要注意的是三台主机都需要在同一个局域网中,所以需要将MetaSploitable的适配器改为NAT模式


之后点击MITM Menu->ARP poisoning,然后点击OK:


点击Ettercap Menu->View->Connections查看连接,之后使用SEEDUbuntu进行telnet连接:


能够在Connections中看到建立的telnet连接,打开后能够看到登录使用的用户名、密码以及命令:

三、实验总结

通过本次实验,学习掌握了几种常见的网络协议攻击方式,并初步了解了netwox、ettercap等工具的使用,为今后进一步深入了解和实践网络协议攻击奠定了基础。

posted @ 2022-04-04 14:04  z十夜  阅读(249)  评论(0编辑  收藏  举报