# 20212924 2021-2022-2 《网络攻防实践》实践第六周(第4次)报告
1.实践内容
1.1 TCP/IP网络协议栈攻击概述
ARP缓存欺骗攻击
ICMP重定向攻击
SYN FLOOD攻击
TCP RST攻击
TCP会话劫持攻击
- TCP/IP攻击:TCP/IP攻击是利用IP地址并不是出厂的时候与MAC固定在一起的,攻击者通过自封包和修改网络节点的IP地址,冒充某个可信节点的IP地址,进行攻击。
- TCP/IP协议:TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。
- 网络安全属性:机密性、完整性、可用性、真实性、不可抵赖性。
- 网络攻击基本模式:截获、中断、篡改、伪造。
- 截获具体攻击技术:嗅探、监听;
- 中断具体攻击技术:拒绝服务;
- 篡改具体攻击技术:数据包篡改;
- 伪造具体攻击技术:欺骗。
1.2 网络层攻击
1.2.1 ARP缓存欺骗
- ARP 缓存是 ARP 协议的重要组成部分。当使用 ARP 协议解析了某个 MAC 地址和 IP地址的映射关系,该映射便会被缓存下来。因此就不用再使用 ARP 协议来解析已存在缓存中的映射关系。但是因为 ARP 协议是无身份认证的,所以 ARP 缓存很容易被恶意的虚假ARP 数据报实施欺骗。这样的攻击被称为 ARP 缓存欺骗(或 ARP 缓存中毒)。在这样的攻击中,攻击者通过伪造 ARP 数据报来欺骗被攻击主机的电脑使之缓存错误的 MAC 地址和 IP 地址映射。因攻击者的动机不同,攻击的结果也有很多。例如,攻击者可以使被攻击主机的默认网关IP 映射到一个不存在的 MAC 地址达到 DoS 攻击,攻击者也可以使被攻击主机的通信重定向至其他机器等等。
1.2.2 ICMP 重定向攻击
- ICMP 重定向报文是路由器为网络中的机器提供最新的路由信息以达到最短路由而使用的。当主机收到一个 ICMP 重定向报文就会根据报文来更新自己的路由表。由于缺乏确认机制,如果攻击者想要使被攻击主机使用特定路由,他们只要向被攻击主机发送欺骗性的ICMP 重定向报文,使它改变路由表即可。在 linux可以使用 route 命令检查路由表。
1.3 传输层攻击
1.3.1 SYN flood 攻击
SYN flood攻击是 DoS 攻击的一种形式,攻击者向被攻击主机的 TCP 端口大量发送 SYN请求包,但不去完成 TCP 的”三次握手”的过程,例如攻击使用一个假的 IP 地址,或只是简单地不再继续建立 TCP 连接的过程,这都使被攻击主机处于”半连接”状态(即在”三次握手”过程中,有了前两次握手,SYN 包和 SYN-ACK 包的传输,但没有最后一次 ACK 包的确认)。被攻击主机的主机会使用一个队列来保存这种半连接的状态,当这个队列存储空间满了的时候,目标主机便无法再接受任何其它连接。这一队列的空间大小事实上是一个系统变量,在Linux 中,可以这样查看它的大小:sysctl –q net.ipv4.tcp_max_syn_backlog
1.3.2 TCP RST 攻击
-
定义:又称为伪造TCP重置报文攻击,是指一种假冒干扰TCP通信连接的技术方法。
-
原理:TCP重置报文会直接关闭一个TCP会话连接,恶意攻击者滥用TCP重置报文,对正常的网络通信造成严重的威胁。
1.3.3 TCP 会话劫持 (bonus)
- TCP 会话劫持的目标是劫持一个已经存在于两台被攻击主机之间的 TCP 连接,在会话中注入恶意的内容。如果这是一个 telnet 会话连接,攻击者可以注入一些恶意的命令,使得被攻击主机运行这些恶意的命令。
2.实践过程
2.1 ARP缓存欺骗
-
1.实验准备:准备三台实验用虚拟机,分别是A:kali(攻击机),B:SEEDUbuntu(一号靶机),C:Metasploitable—ubuntu(二号靶机)。
-
2.首先分别记录下A,B,C三台计算机的IP地址和MAC地址,分别为
虚拟机 IP MAC A:kali 192.168.200.6 00:0c:29:12:a5:5b B:SEEDUbuntu 192.168.200.5 00:0c:29:f5:c0:60 C:Meta-ubuntu 192.168.200.123 00:0c:29:95:63:8c D:Win2K 192.168.200.124 00:0c:29:5b:3d:f6 - 通过
ifconfig
查看A的IP:
- 通过
- 通过
ifconfig
查看B的IP:
- 通过
ifconfig
查看C的IP:
- 在Win2Kserver上ping IP(A),之后用arp -a 查看kali的MAC地址。
- 在kali上分别ping靶机 B和C,然后用
arp -a
查看其对应的MAC地址。
- 3.进行ARP欺骗,在A上执行指令
netwox 80 -e 00:0c:29:12:a5:5b -i 192.168.200.124
,之后就会在局域网内广播这条命令。netwox 80——攻击ARP局域网,使用ARP攻击,阻止局域网内系统正常联网。
- 4.ARP欺骗效果:
- 5.结束后,在kali使用
arp -d 192.168.200.124
去除arp攻击,之后就能正常上网。
2.2 ICMP重定向攻击
- 1.实验软件:A:kali; B:SEEDUbuntu。
- 2.在B上通过
route -n
查看路由
- 3.在kali上使用
netwox 86 -f "host 192.168.200.5" -g 192.168.200.3 -i 192.168.200.3
进行ICMP重定向攻击。
- 4.进行ICMP重定向攻击后,在B上使用
ping baidu.com
,发现无法连接网络,攻击结束后,发现可以ping通。
2.3 SYN FLOOD攻击
- 1.实验准备:
虚拟机 | IP |
---|---|
A:kali | 192.168.200.6 |
B:SEEDUbuntu | 192.168.200.5 |
C:M-ubuntu | 192.168.200.123 |
- 2.在B上使用
telnet 192.168.200.123
向C发起登录,在A上利用netwox的76号工具对靶机的23号端口进行SYN Flood攻击netwox 76 -i 192.168.200.123 -p 23
。
- 3.发现B终端telnet连接被中断。
2.4 TCP RST攻击
-
- 在B上使用
telnet 192.168.200.123
向C发起登录,在A上利用netwox的78号工具对靶机进行TCP RST攻击netwox 78 -i 192.168.200.123。
- 在B上使用
- 2.到我们刚才B的登陆界面,telnet连接被中断。
2.5 TCP会话劫持攻击
- 1.在A上通过:
sudo ettercap -G
,打开Ettercap。
- 2.开始嗅探,并扫描主机列表。
- 3.在扫描到的主机列表中添加监控的两个ip对象。
-
- 添加arp poisoning。
-
- 进行监控。
- 6.执行劫持。
- 7.劫持到SEEDUbuntu访问Me-Ubuntu的数据包,并还原数据内容。
3.学习中遇到的问题及解决
-
问题1:在进行实验的各个虚拟机之间,有些虚拟机之间无法ping通。
-
问题1解决方案:要求环境为局域网,因此三款机型网络适配器均调整为VMnet8(NAT模式),进而使得三机同网。
-
问题2:虚拟机无法上网,导致使用
telnet
进行登录时,没有反应。
-
问题2解决方案:在VMnet8中的Net里重新进行网关设置。但之后在kali中没有配置网卡,然后通过网上查找资料设置了网卡。
4.实践总结
-
1.通过本次实验,再次加深了对TCP/IP网络协议的认识,掌握了linux系统的一些操作命令,虽然在学习的过程中还是经历了一些困难,但通过热心的同学的帮助,最终成功的完成了实验。
-
2.通过这次的网络攻击模拟,发现攻击的方法真的很多,以前从没有见识过的知识出现在自己面前,既充满着对新鲜事物的好奇,也有着对新的知识的懵懂无知。