20212918 2021-2022-2 《网络攻防实践》第四次(第六周)作业
1、实验内容
通过实验了解TCP/IP协议栈的几种攻击:ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。
2、知识点梳理
2.1 ARP欺骗
- 原理:
ARP协议在进行IP地址到MAC地址映射时存在安全缺陷。 - 攻击步骤:
1)源节点A通过ARP协议在局域网段广播ARP请求包,询问节点B的MAC地址。
2)攻击节点C不断向源节点发送ARP响应包,告诉源节点B的IP地址对应自己的MAC地址。
3)由于攻击节点C不断地发送响应包,这样源节点上会强制以C发送响应包中的信息来更新ARP缓存。
4)A要再次发送数据包到B时,数据包将发送到C对应的MAC地址,这样C就通过欺骗假冒了目的节点B。 - 防范措施
1)静态绑定关键主机的IP地址与MAC地址的映射
2)使用防范工具:360 ARP防火墙等
3)使用VLAN虚拟子网细分网络拓扑
2.2 ICMP路由重定向攻击
- 原理
利用ICMP路由重定向报文来改变主机的路由表,向目标机器发送重定向消息,自己则可以伪装成路由器,使目标机器的数据报发送至攻击机从而加强监听。 - 攻击步骤
1)攻击冒充网关IP地址,向被攻击节点发送ICMP重定向报文,并将指定的新路由器IP地址设置为攻击节点。
2)被攻击节点收到报文后,进行限制条件检查,由于该报文并不违背限制条件,因此将被接收,被攻击节点选择攻击节点作为其网关。
3)攻击节点可以可以开启路由转发,充当中间人,对被攻击节点的通信进行全程嗅探监听,达到ARP欺骗类似的攻击效果。
4)在转发过程中,根据ICMP路由重定向机制的设计原理,攻击节点协议栈可能会向攻击节点发送一个ICMP重定向报文,指定原先网关为新路由器,将欺骗路由路径还原至原先状态。
2.3 SYN Flood拒绝服务攻击
- 原理
基于TCP三次握手的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而无法正常服务。 - 防范措施
SYN-cookie技术(在连接信息未完全到达前不进行资源的分配)、防火墙地址状态监控技术(将到目标服务器的TCP连接状态分为NEW、GOOD、BAD)
2.4 TCP RST攻击
- 原理
TCP协议头的标志位有一个reset比特位,当它置为1时,接收该数据包的主机将立即断开TCP会话连接。故攻击者可以滥用此类型重置报文,对正常网络通信造成威胁。 - 攻击步骤
1)攻击主机通过嗅探监视通信双方A、B之间的TCP连接。
2)在获得源、目标IP地址及端口、序列号之后,结合IP源地址欺骗技术伪装成通信一方,发送TCP重置报文给通信另一方。
3)在确保端口号一致及序列号落入TCP窗口内,直接关闭连接,造成通信双方正常网络通信的中断,达到拒绝服务的效果。
2.5 TCP会话劫持攻击
- 原理
一些网络服务在建立TCP会话之后进行应用层身份认证,之后客户端对服务端的控制及资源获取则不再进行身份验证。 - 攻击步骤
1)A向B发起Telnet连接请求,并通过认证建立会话。
2)B向A发送响应包,包括当前序号、希望收到的下一个序号。
攻击者进行ARP欺骗,假冒A的身份向B发送数据包(序列号有要求),并以A已经认证的身份执行任意命令。
3)此时A与B的会话仍保持,但与B的ACK值不再互相匹配而产生“ACK风暴”。直至其中一个ACK由于拥塞或其他原因而丢失。 - 防范措施
1)禁用主机上的源路由
2)采用静态绑定避免ARP欺骗
3)引用和过滤ICMP重定向报文
3、实验内容
3.1ARP缓存欺骗攻击
虚拟机 | IP地址 | MAC |
---|---|---|
Kali | 192.168.200.129 | 00:0c:29:a4:e2:c4 |
win2kserver | 192.168.200.128 | 00:0c:29:c4:95:13 |
seedubuntu | 192.168.200.5 | 00:0c:29:6e:0d:17 |
- 使用命令测试seedubuntu和Win2KServer之间的连通性,ping 192.168.200.128,结果正常
- 输入命令arp -a查看arp表
- 在kali上执行netwox 80 -e 00:0c:29:a4:e2:c4 -i 192.168.200.5,第一个为攻击机Kali的MAC地址,第二个为靶机的的IP地址
- 靶机的IP对应mac地址的ARP表被修改成了攻击机的mac地址
3.2 ICMP重定向攻击
虚拟机 | IP地址 |
---|---|
kali | 192.168.200.129 |
Seedubuntu | 192.168.200.5 |
- 查看靶机seedubuntu的路由为192.168.200.5
- 选择kali作为攻击机seedubuntu作为靶机
- 使用route查看网关地址192.168.200.2
- 在Kali主机上执行命令netwox 86 -f "host 192.168.200.5" -g 192.168.200.6 -i 192.168.200.2
- 发现其访问百度的数据包已经被重定向到192.168.200.6
3.3 SYN Flood攻击
虚拟机 | IP地址 |
---|---|
Kali | 192.168.1.114 |
winXPattacker | 192.168.1.113 |
seedubuntu | 192.168.1.117 |
- 在winXPattacker中输入telnet 192.168.1.117(seedubuntu的对应ip),将winXPattacker和seedubuntu之间建立telnet联系,可以看到顺利建立连接并登录。
- 在Kali输入netwox 76 192.168.1.117 -p 23,对seedubuntu的23号端口进行攻击。
- 在winXPattacker靶机再次输入telnet 192.168.1.117,使得winXPattacker与seedubuntu建立联系,发现链接超时无法建立连接。
3.4 TCP RST攻击
虚拟机 | IP地址 |
---|---|
Kali | 192.168.1.114 |
SeedUbuntu | 192.168.1.101 |
winXPattacker | 192.168.1.115 |
- 检验是否可以登录:打开winXPattacker输入命令telnet 192.168.1.101查看,发现可以登录正常使用。
- 打开kali对其进行攻击:输入命令netwox 78 -i 192.168.1.101.
- 重新在winXPattacker telnet192.168.1.101,发现无法telnet,攻击成功
3.5 TCP会话劫持攻击
虚拟机 | IP地址 |
---|---|
kali | 192.168.1.114 |
seedubuntu | 192.168.1.101 |
winXPattacker | 192.168.1.115 |
- 在kali中可以使用sudo ettercap -G命令,打开ettercap图形化界面进行操作
- 这时可以发现ettercap的hostlist包含winXPattacker的ip地址
- 点击MITM Menu,ARP poisoning,然后点击OK
- 打开Ettercap菜单选择view,选择connections,能够在Connections中看到建立的telnet连接
- 打开后能够看到登录使用的用户名、密码
4、学习中遇到的问题及解决
- Windows的telnet服务打不开
解决:Windows的telnet服务需要自己配置后才能使用。 - ettercap -G打不开
解决:因为权限不够,需要在ettercap -G前面加上sudo
5、实验感想
在本次实验中,我了解了TCP/IP协议栈的几种攻击、这几种攻击的攻击原理以及其中几种的防御手,学习到了TCP/IP协议的几种新知识,同时锻炼了我的动手能力,让我受益匪浅。