@
- 一. 实验内容
- 1.1 实验内容概述
- 1.2 实验相关知识概述
- 二. 实验过程
- 2.1 ARP缓存欺骗攻击
- 2.1.1 实验环境配置
- 2.1.2 连通性测试
- 2.1.3 继续实验
- 实验亮点
- 出现问题
- 检查问题
- 解决问题
- 2.2 ICMP重定向攻击
- 2.2.1 实验环境配置
- 2.2.2 连通性测试
- 发现问题
- 检查问题
- 解决问题
- 2.2.3 继续实验
- 实验亮点
- 2.3 SYN Flood攻击
- 2.3.1 实验环境配置
- 2.3.2 连通性测试
- 2.3.3 继续实验
- 2.4 TCP RST攻击
- 2.4.1 实验环境配置
- 2.4.2 连通性测试
- 2.4.3 继续实验
- 2.5 TCP会话劫持攻击
- 2.5.1 实验环境配置
- 2.5.2 实验流程
- 发现问题
- 解决问题
- 2.5.3 继续实验
- 2.1 ARP缓存欺骗攻击
- 三、学习中遇到的问题及解决
- 四、学习感悟、思考等
- 参考资料:
一. 实验内容
1.1 实验内容概述
本次实验主要包含了以下内容:
在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。
1.2 实验相关知识概述
- netwox:netwox是一款功能强大的网络工具集,主要用于网络安全测试、网络故障排查等,在网络安全领域具有广泛的应用。
- 主要功能和用途
① 网络测试:可以进行网络连通性测试、端口扫描、路由跟踪等操作。例如,你可以使用特定的模块来检测目标主机是否可达,开放了哪些端口,以及数据包的传输路径等。
② 协议分析:对各种网络协议进行分析和测试,如 ARP、ICMP、TCP、UDP 等。可以模拟这些协议的数据包,用于测试网络设备对协议的处理能力和安全性。
③ 攻击模拟:用于模拟各种网络攻击,如 ARP 缓存欺骗攻击、ICMP 重定向攻击、SYN Flood 攻击等。在安全测试中,通过模拟攻击来发现网络中的安全漏洞。
④ 数据嗅探:捕获和分析网络中的数据包,查看数据包的内容、源地址、目的地址等信息,帮助排查网络故障或检测异常流量。 - 常用模块及示例
netwox包含多个模块,每个模块对应不同的功能,以下是一些常用模块及使用示例:
① ARP 缓存欺骗攻击(模块 80):
sudo netwox 80 -e 攻击者MAC地址 -i 目标IP地址 -a 目标MAC地址 -g 网关IP地址
这个命令会向目标主机发送伪造的 ARP 响应包,将网关的 IP 地址映射到攻击者的 MAC 地址,实现 ARP 缓存欺骗。
② ICMP 重定向攻击(模块 86):
sudo netwox 86 -i 源IP地址 -g 网关IP地址 -m 重定向目标IP地址 -p 目标主机IP地址
该命令会发送伪造的 ICMP 重定向报文,使目标主机将流量重定向到指定的 IP 地址。
③ SYN Flood 攻击(模块 76):
sudo netwox 76 -i 目标IP地址 -p 目标端口号
此命令会向目标主机的指定端口发送大量的 SYN 包,进行 SYN Flood 攻击。
- 安装和使用注意事项
安装:在 Kali Linux 通常可以使用以下命令进行安装:
sudo apt-get update
sudo apt-get install netwox
- ARP 缓存欺骗攻击
攻击原理:ARP(地址解析协议)用于将 IP 地址解析为 MAC 地址。正常情况下,设备会在本地维护一个 ARP 缓存表。攻击者通过发送伪造的 ARP 响应包,让目标设备更新其 ARP 缓存表,将错误的 IP - MAC 映射关系存入其中,从而实现中间人攻击或阻断通信。
攻击危害:攻击者可以截获、篡改或阻断目标设备之间的通信。例如,攻击者可以将自己的 MAC 地址伪装成网关的 MAC 地址,使目标设备将数据发送到自己的设备上,从而窃取敏感信息。
防范措施:使用静态 ARP 绑定,即手动配置 IP - MAC 映射关系,防止 ARP 缓存被恶意更新;安装 ARP 防火墙,检测和拦截异常的 ARP 数据包。 - ICMP 重定向攻击
攻击原理:ICMP(互联网控制报文协议)重定向是一种正常的网络机制,用于路由器告知主机更改路由信息。攻击者利用这一机制,发送伪造的 ICMP 重定向报文,使目标主机将流量重定向到攻击者指定的地址。
攻击危害:攻击者可以改变目标主机的网络流量路径,进行中间人攻击,窃取或篡改数据。
防范措施:在网络设备上禁用 ICMP 重定向功能,避免主机接收和处理异常的 ICMP 重定向报文。 - SYN Flood 攻击
攻击原理:这是一种 DoS(拒绝服务)攻击。在 TCP 连接建立过程中,客户端首先发送 SYN 包请求连接,服务器收到后返回 SYN - ACK 包进行确认,最后客户端再发送 ACK 包完成连接建立。攻击者大量发送 SYN 包但不响应服务器的 SYN - ACK 包,使服务器处于等待状态,耗尽服务器的资源,无法正常处理其他合法连接请求。
攻击危害:导致目标服务器无法响应正常用户的请求,造成服务中断。
防范措施:使用防火墙或入侵检测系统(IDS)检测和过滤异常的 SYN 请求;服务器端可以采用 SYN Cookie 技术,在不消耗过多资源的情况下处理 SYN 请求。 - TCP RST 攻击
攻击原理:TCP 协议中,RST(复位)标志用于异常终止 TCP 连接。攻击者通过发送伪造的 RST 包,使目标主机认为当前的 TCP 连接出现异常,从而强制关闭连接。
攻击危害:导致正在进行的 TCP 会话中断,影响业务的正常运行。例如,攻击者可以中断用户与服务器之间的 HTTP 连接,使用户无法正常浏览网页。
防范措施:对 TCP 连接进行认证和加密,防止攻击者伪造有效的 RST 包;使用防火墙过滤异常的 RST 包。 - TCP 会话劫持攻击
攻击原理:攻击者通过嗅探网络流量,获取合法用户与服务器之间的 TCP 会话信息(如序列号、确认号等),然后伪装成合法用户或服务器,向对方发送伪造的数据包,从而接管会话,进行非法操作。
攻击危害:攻击者可以在不被察觉的情况下,获取用户的敏感信息,执行非法操作,如修改账户信息、进行资金转账等。
防范措施:使用加密协议(如 SSL/TLS)对 TCP 会话进行加密,防止攻击者嗅探和篡改数据;对用户进行身份认证和授权,确保只有合法用户可以访问系统资源。
二. 实验过程
2.1 ARP缓存欺骗攻击
2.1.1 实验环境配置
由于上次实验对虚拟机进行了网络更改,所以首先将虚拟机网络配置更改回来:
① kali更改为VMnet8模式
② Win2kServer更改为VMnet1模式
③ Metasploitable更改为VMnet1模式
打开三台虚拟机,使用以下命令查询其IP地址和Mac地址:
ifconfig ip addr 或 ipconfig/all
kali虚拟机:
Metasploitable虚拟机:账号密码:msfadmin/msfadmin
Win2kServer虚拟机:
使用命令ctrl+alt+del跳转至登陆页面,输入 账号密码administrator/mima1234 进行登录。
打开cmd终端进行查询。
这里需要注意的是:仅使用ipconfig命令仅能查询到IP地址,需使用ipconfig/all命令查询全部地址。
上述数据总结为以下表格:具体配置过程详情见实验一
虚拟机名称 | IP地址 | MAC地址 |
---|---|---|
Kali攻击机(Vmnet8网段) | 192.168.200.4 | 00:0c:29:b2:40:46 |
Metasploitable靶机 (Vmnet1网段) | 192.168.200.130 | 00:0c:29:98:bc:93 |
Win2kServer靶机(Vmnet1网段) | 192.168.200.131 | 00:0c:29:9E:03:64 |
2.1.2 连通性测试
在三个虚拟机之间相互使用ping命令检查连通性发现,两个靶机之间是可以互相连通的,但是攻击机与靶机之间无法互ping。
使用kali攻击机ping靶机 -> 不可以连通 :
两个靶机相互测试连通 -> 可以连通 :
这是因为攻击机与靶机不在同一网段,攻击机在Vmnet8网段,而靶机均位于Vmnet1网段,需要使用蜜网网关进行辅助才可以连通。
故此处打开蜜网网关,能够连通起不同的网段,发现可以实现互ping。
打开蜜网网关,输入 账号密码:roo/honey 进行登录后,再次进行ping测试,发现连通成功:
2.1.3 继续实验
首先使用Metasploitable靶机 ping Win2kServer靶机 ---> 显示连通成功。
在Metasploitable虚拟机中使用以下命令查看当前ARP表:
arp -a
发现有Win2kServer靶机以及网关(因为开了蜜网网关,如果关闭蜜网网关,则没有这条记录)的IP记录和MAC地址记录。
且其中Win2kServer靶机的记录为:192.168.200.131 | 00:0c:29:9E:03:64,与查看的IP和MAC相同。
转回到kali虚拟机中,使用以下命令进行netwox工具的安装:
sudo apt-get install netwox
实验亮点
这里使用新的工具来实现ARP缓存欺骗攻击,即netwox工具。
主要原理:在攻击机中使用netwox伪造并发送一个mac地址(即虚假mac地址)为 00:0c:29:9E:03:64 且ip地址为 192.168.200.131 的数据包。
目的:让Metasploitable靶机误以为虚假mac地址就是Win2kServer靶机的mac地址,但实际上这个虚构地址并不是。
使用命令如下:
sudo netwox 80 -e 00:0c:29:9E:03:64 -i 192.168.200.131
出现问题
输入命令之后没有反应
检查ARP列表还是没变化,说明攻击未实现。
利用Win2kServer实现一下也不行:
检查问题
查询相关资料并在检查所输入命令以及地址无误后,怀疑是防火墙问题,防火墙可能阻挡了攻击的进行。
① 检查kali防火墙,使用以下命令查看防火墙状态:
ufw status
这里需要注意的是先下载ufw相关插件后,进入root终端进行命令运行。
检查完毕为关闭状态。
防火墙无误后,怀疑是网络隔离问题。
检查虚拟机的网络配置,前面配置时使用了 NAT 模式,可能会存在网络隔离问题,尝试将虚拟机网络模式改为桥接模式,使其与宿主机在同一网络环境中。
② 更改为桥接模式。
- kali虚拟机:
- Metasploitable虚拟机:
- Win2kServer虚拟机:
更改完虚拟机网络适配器后再次进行相关地址查询:
因为更改网络配置后会发现虚拟机IP地址发生变化,但是其MAC地址不会发生变化。
Metasploitable虚拟机:
kali虚拟机:
Win2kServer虚拟机:
再次总结实验环境如下图所示:
虚拟机名称 | IP地址 | MAC地址 |
---|---|---|
Kali攻击机(桥接模式) | 192.168.43.193 | 00:0c:29:b2:40:46 |
Metasploitable靶机 (桥接模式) | 192.168.43.191 | 00:0c:29:98:bc:93 |
Win2kServer靶机(桥接模式) | 192.168.200.131 | 00:0c:29:9E:03:64 |
继检查连通性以及攻击后,发现还是与前面情况一致。
此时忽然发现问题所在之处:
在kali攻击机发送命令时未更改所发送的MAC包地址数据!!!
此处忘记截图了,用之前命令截图证实错误之处:
解决问题
在发现不是因为网络问题导致实验无法进行后,更改虚拟机网络适配器为原来的Vmnet1、Vmnet8网段。
更改后再次查询虚拟机相关地址:
kali虚拟机:
Metasploitable虚拟机:
Win2kServer虚拟机:
上述数据总结为以下表格:
虚拟机名称 | IP地址 | MAC地址 |
---|---|---|
Kali攻击机(Vmnet8网段) | 192.168.200.4 | 00:0c:29:b2:40:46 |
Metasploitable靶机 (Vmnet1网段) | 192.168.200.130 | 00:0c:29:98:bc:93 |
Win2kServer靶机(Vmnet1网段) | 192.168.200.131 | 00:0c:29:9E:03:64 |
与上述过程一样,在使用Metasploitable靶机 ping Win2kServer靶机 --> 显示连通成功后。
在Metasploitable虚拟机中使用以下命令查看当前ARP表:
arp -a
使用netwox工具来实现ARP缓存欺骗攻击。
主要原理:在攻击机中使用netwox伪造并发送一个mac地址(即虚假mac地址)为 00:0c:29:9E:03:65 且ip地址为 192.168.200.131 的数据包。
目的:让Metasploitable靶机误以为虚假mac地址就是Win2kServer靶机的mac地址,但实际上这个虚构地址并不是。
使用命令如下:
sudo netwox 80 -e 00:0C:29:9E:03:65 -i 192.168.200.131
可以看出已经发生改变,最后的64变成了65,说明欺骗成功。
且Win2kServer靶机也检测到了异常,接受到了伪造的信息。
攻击成功后会发现,Metasploitable靶机无法ping通Win2kServer靶机,欺骗成功。
2.2 ICMP重定向攻击
2.2.1 实验环境配置
本实验用到Kali攻击机以及SeedUbuntu靶机,kali前面第一个实验已经配置过了,此处不做过多讲解。
打开seed虚拟机,输入 用户名密码:seed/dees 进行登录,使用以下命令进行相关地址查询:
ifconfig
对实验环境进行总结:
虚拟机名称 | IP地址 |
---|---|
Kali攻击机(Vmnet8网段) | 192.168.200.4 |
SeedUbuntu靶机 (Vmnet8网段) | 192.168.200.5 |
2.2.2 连通性测试
首先在SEEDUbuntu上使用以下命令进行调试:
ping www.baidu.com
//检查连通性
route -n
//查看路由信息
可以发现下一个跳的第一个ip地址是网关192.168.200.1 。
同第一个实验相同,在Kali上使用netwox工具伪造重定向数据包(即将局域网中来源于IP为192.168.200.5的数据包抓取,并以网关192.168.200.1的名义向数据包的源地址发送一个ICMP重定向报文,使得Kali攻击机的IP地址192.168.200.4作为默认路由)。
使用的代码如下:
sudo netwox 86 -f "host 192.168.200.5" -g 192.168.200.4 -i
192.168.200.1
发现问题
此处出现SeedUbuntu靶机ping百度不上的情况。
检查问题
① 初步判断可能和上一个实验一样是防火墙问题。
检查防火墙状态,使用以下命令查看防火墙状态:
ufw status
检查完成为关闭状态:
② 也可能是网络不稳定状态,停顿一会再试一次。
发现还是ping不上。
③ 查询发现可能是网络配置连接问题。
更改网络配置全部为桥连模式:
kali虚拟机:
SeedUbuntu虚拟机:
更改为桥连模式:
再次打开虚拟机查询相关地址:
kali虚拟机查询:
SeedUbuntu虚拟机:
解决问题
测试连通性:
ping百度测试,连通成功!!!
2.2.3 继续实验
再次对实验环境进行总结:
虚拟机名称 | IP地址 |
---|---|
Kali攻击机(桥接模式) | 192.168.31.128 |
SeedUbuntu靶机 (桥接模式) | 192.168.31.80 |
可以发现下一个跳的第一个ip地址是网关192.168.31.1 。
同第一个实验相同,在Kali上使用netwox工具伪造重定向数据包(即将局域网中来源于IP为192.168.31.80的数据包抓取,并以网关192.168.31.1的名义向数据包的源地址发送一个ICMP重定向报文,使得Kali攻击机的IP地址192.168.31.218作为默认路由)。
使用的代码如下:
sudo netwox 86 -f "host 192.168.31.80" -g 192.168.31.218 -i
192.168.31.1
实验亮点
值得一提的是,此处尝试了多种代码方式:
代码一:
sudo netwox 86 -i 192.168.31.80 -g 192.168.31.1 -r 192.168.31.218
参数解释:
netwox 86:netwox是工具名,86这个编号表示使用 netwox 中用于发送 ICMP 重定向报文的模块。
-i :后面接要针对的源 IP 地址,即你要抓取其数据包的 IP,这里是192.168.31.80。
-g :后面接网关 IP 地址,此处为192.168.31.1,伪造报文将以这个网关的名义发送。
-r :后面接目标设备将流量重定向到的 IP 地址,也就是 Kali 攻击机的 IP 192.168.31.218。
代码二:
sudo netwox 86 -i 192.168.31.80 -g 192.168.31.1 -m 192.168.31.218
参数解释: sudo :获取超级用户权限,因为此类网络操作需要较高权限。 netwox 86
:netwox是工具名称,86表示该工具中用于发送 ICMP 重定向报文的模块编号。
-i 192.168.31.80 :指定要针对的源 IP 地址,即抓取来自此 IP 的数据包。
-g 192.168.31.1 :指定网关 IP 地址,伪造的 ICMP 重定向报文将以这个网关的名义发送。
-m 192.168.31.218 :指定重定向的目标 IP,也就是让目标设备将流量重定向到 Kali 攻击机的 IP。
在SEEDUbuntu虚拟机上再次ping www.baidu.com,发现已经重定向到192.168.31.128上,则ICMP重定向攻击成功,路由的下一跳地址被修改为了192.168.31.128。
2.3 SYN Flood攻击
2.3.1 实验环境配置
本实验用到Kali攻击机、SeedUbuntu靶机以及Metasploitable靶机,前面实验已经配置过了,此处不做过多讲解。
需要注意的是上一个实验已经将其余两个虚拟机网络配置全部调为桥接模式,此处更改Metasploitable与其他两个一致即可。
Metasploitable虚拟机:
更改为桥接模式:
更改完成后登录进入:
账号密码:msfadmin/msfadmin 并查询相关地址。
2.3.2 连通性测试
对实验环境进行总结:
虚拟机名称 | IP地址 |
---|---|
Kali攻击机(桥接模式) | 192.168.31.128 |
SeedUbuntu靶机 (桥接模式) | 192.168.31.80 |
Metasploitable靶机 (桥接模式) | 192.168.200.130 |
首先,使用SeedUbuntu,通过telnet命令远程连接Metasploitable靶机,检测连通性:
telnet 192.168.200.130
这里发现不行!!!更改网络配置到以前形式。
2.3.3 继续实验
更改网络适配器为原来NAT配置状态后,再次查询虚拟机相关地址。
SeedUbuntu虚拟机:
Metasploitable虚拟机:
kali虚拟机:
更改完成后,对实验环境再次进行总结:
虚拟机名称 | IP地址 |
---|---|
Kali-Linux攻击机(Vmnet8网段) | 192.168.200.4 |
SeedUbuntu靶机 (Vmnet8网段) | 192.168.200.5 |
Metasploitable靶机 (Vmnet1网段) | 192.168.200.130 |
再次检测连通性:
telnet 192.168.200.130
发现连通成功:
在Metasploitable靶机可以看到连接成功:
随后,使用Kali攻击机对Metasploitable靶机的telnet端口(23号端口)进行SYN Flood攻击,即拒绝服务攻击,消耗靶机的资源使得服务崩溃,从而导致SeedUbuntu无法再次使用telnet远程连接Metasploitable。
攻击代码如下:
sudo netwox 76 -i 192.168.200.130 -p 23
打开kali的wireshark可以看见,Kali攻击机正在向Metasploitable靶机(192.168.200.130)的23号端口疯狂发送SYN请求:
即成功实现SYN Flood攻击!!!
2.4 TCP RST攻击
2.4.1 实验环境配置
同上述实验三类似,次实验也用到下面三个虚拟机,配置过程此处不做过多解释。
总结实验环境如下图所示:
虚拟机名称 | IP地址 |
---|---|
Kali-Linux攻击机(Vmnet8网段) | 192.168.200.4 |
SeedUbuntu靶机 (Vmnet8网段) | 192.168.200.5 |
Metasploitable靶机 (Vmnet1网段) | 192.168.200.130 |
2.4.2 连通性测试
使用SeedUbuntu,通过telnet命令远程连接Metasploitable靶机,检测连通性:
连通成功。
2.4.3 继续实验
确保连通成功后,
在Kali攻击机中输入以下命令,实现SYN RST攻击:
sudo netwox 78 -i 192.168.200.130
开始攻击后,稍等十秒左右,就会发现telnet连接被外界打断:
再次通过telnet连接,无法连接上,说明TCP RST攻击成功!
即成功实现!!!
2.5 TCP会话劫持攻击
2.5.1 实验环境配置
同上述实验三、四类似,此实验也用到下面三个虚拟机,配置过程此处不做过多解释。
总结实验环境如下图所示:
虚拟机名称 | IP地址 |
---|---|
Kali攻击机(Vmnet8网段) | 192.168.200.4 |
SeedUbuntu靶机 (Vmnet8网段) | 192.168.200.5 |
Metasploitable靶机 (Vmnet1网段) | 192.168.200.130 |
2.5.2 实验流程
需要注意的是,
这次的攻击所使用的工具更换为ettercap,首先,在Kali攻击机上使用以下命令进行工具的打开:
sudo ettercap -G
点击右上角的√按钮开始使用,
在右上角依次点击Ettercap Menu、Hosts、Host List,将SEEDUbuntu和MetaSploitable的IP设置为攻击目标。
然而打开后发现并没有这两个靶机的IP,甚至一个IP都没有。
此时点击Scan for hosts,进行网段内主机扫描后,再查看Host List,即可发现以下IP:
发现问题
检查发现没有seed靶机的地址,检查一下连通性发现没问题:
再试一下还是不行:
解决问题
更改网络设置为桥接模式:
kali虚拟机:
MetaSploitable虚拟机:
SEEDUbuntu虚拟机:
更改网络适配器后再次进行相关地址查询:
MetaSploitable虚拟机:
kali虚拟机:
SEEDUbuntu虚拟机:
再次总结实验环境如下图所示:
虚拟机名称 | IP地址 |
---|---|
Kali攻击机(桥接模式) | 192.168.43.193 |
SeedUbuntu靶机 (桥接模式) | 192.168.43.202 |
Metasploitable靶机 (桥接模式) | 192.168.43.191 |
检查一下连通性:
发现连通成功!
2.5.3 继续实验
再次进行上述流程,发现成功出现所有靶机的IP:
192.168.43.1(网关)
192.168.43.202(SeedUbuntu靶机)
192.168.43.191(Metasploitable靶机)
在Host List中将SEEDUbuntu(192.168.43.202)和MetaSploitable(192.168.43.191)的IP分别设置为攻击目标1和攻击目标2:
随后从MITM中点击ARP Poisoning进行ARP欺骗:
可以看到各自的MAC地址
打开View面板,可以看到建立的连接。
点击Connections查看连接,进行SEEDUbuntu和MetaSploitable之间的连接查看
此时还没有使用SEEDUbuntu进行MetaSploitable的telnet登录,因此列表为空:
接着,使用SeedUbuntu,通过telnet命令远程连接Metasploitable靶机:
可以看到Connections连接列表中出现了相关信息,即192.168.200.202通过23号端口对192.168.200.191进行了连接:
点击View Details便可以看到更详细的内容:
点击这条信息,甚至能查看输入的账号密码。
即攻击成功!
三、学习中遇到的问题及解决
在这次实验中,主要问题有以下几点:
- 问题1:在实验过程中遇到网络连通失败情况?
解决方案:调换虚拟机网络适配装置即可,详细过程可见2.1.3、2.2.2以及2.5.2 等章节。
- 问题2:在使用netwox时发现kali中没有该工具?
解决方案:使用以下命令进行netwox工具的安装:
sudo apt-get install netwox
- 问题3:2.1中kali攻击机无法ping成功win2k等靶机?
解决方案:查询后发现是没有开启蜜网网关。
四、学习感悟、思考等
- 在本次实验中,实验目标主要是学习并掌握TCP/IP网络协议攻击,例如ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击等五个方面相关知识。在实验过程中,我了解到相关的攻击原理,以及排查网段不同导致出现的问题,对网络连接的理解进一步加深。
- 通过这次实验中,我加深了对于协议攻击技术的知识学习,进一步巩固了相关知识,为后面开展网络攻防实验打下坚实的基础。
参考资料:
https://blog.csdn.net/weixin_55819433/article/details/146058856