20212808 2021-2022-2 《网络攻防实践》第四周作业
20212808 2021-2022-2 《网络攻防实践》第四周作业
1.知识点梳理与总结
1.1 实验内容
在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。
1.2 实验原理:
1. ARP缓存欺骗攻击
ARP协议是将IP地址映射为MAC地址的协议,其在协议上使用ARP请求及ARP应答报文来实现。arp -a是显示ARP缓存的命令命令,它可以显示电脑上所有的ARP缓存条目。
ARP欺骗(ARP Spoofing),有时候也被称为ARP下毒(ARP Poisoning),是指攻击者在有线以太网或无线网络上发送伪造ARP消息,对特定IP所对应的MAC地址进行假冒欺骗,从而达到恶意目的的攻击技术。
2. ICMP重定向攻击
ICMP路由重定向攻击是指攻击者伪装成路由器发送虚假的ICMP路由路径控制报文,使得受害主机选择攻击者指定的路由路径,从而进行嗅探或假冒攻击的一种技术。
ICMP重定向攻击就是利用ICMP路由重定向报文来改变主机的路由表,向目标机器发送重定向消息,自己则可以伪装成为路由器,使目标机器的数据报发送至攻击机从而加强监听。
利用Netwox的第86号工具,可以进行ICMP重定向攻击实验,其工作原理是嗅探网络中的数据包,每嗅探到一个符合要求的数据包,就向该IP地址发送一个ICMP重定向报文,让该IP的主机重定向至预先设定的IP地址。
3. SYN Flood攻击
TCP SYN Flood拒绝服务攻击,又称SYN洪泛攻击。利用TCP三次握手协议的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而不能够为正常用户提供服务。
当客户端尝试与服务器建立TCP连接时,正常情况下客户端与服务器端会进行“TCP三次握手”过程。
在SYN Flood攻击中,攻击主机向受害主机发送大量伪造源地址的TCP SYN报文,受害主机分配必要的资源,然后向源地址返回SYN/ACK包,并等待源端返回ACK包。由于大部分伪造源地址是非活跃的,这种情况下源端永远都不会返回ACK报文,受害主机继续不断地发送大量的SYN/ACK包,并将半开连接放入端口的积压队列中。由于端口的半连接队列的长度是有限的,半开连接队列就会很快填满,服务器也就拒绝新的连接,导致该端口无法响应其他机器进行的正常连接请求,最终使受害主机被拒绝服务。Netwox中的76号工具可实现SYN Flood拒绝服务攻击。
4. TCP RST攻击
TCP RST攻击,也被称为伪造TCP重置报文攻击,是指一种假冒干扰TCP通信连接的技术方法。TCP协议头的标志位中拥有一个reset比特位,绝大部分数据包中该标志位都置为0,而一旦该标志位置为1,则接收该数据包的主机将立即断开这个TCP会话连接,不再利用该连接进行数据包发送和接收。
在Netwox中,可以选择78号工具来实现TCP RST攻击。当主机C再向主机B发送信息时,主机A将监听到此信息,分析数据包的端口号、SEQ号后,假冒A的名义向B发送带有RST标志的分组,从而断开B与C的TCP连接。
5. TCP会话劫持攻击
TCP会话劫持,其目标是劫持通信双方已建立的TCP会话连接,假冒其中一方(通常是客户端)的身份,与另一方进行进一步通信。通常一些网络服务会在建立TCP会话之后进行应用层的身份认证,客户端在通过身份认证之后,就可以通过TCP会话连接对服务端进行控制或获取资源,期间不再需要再次进行身份认证。
Victim 主机与telnet 服务器进行连接,并通过身份认证建立起会话;
telnet 服务器将会向Victim 发送响应包,并包含服务器当前序列号(记为SVR_ SEQ),以及期望客户端发送的下一个序列号(记为SVR_ ACK);
攻击者通过ARP欺骗实施中间人攻击,可以嗅探获得Victim和telnet服务器间的通信内容,然后就假冒Victim的IP地址及身份,向telnet服务器发送数据包,宣称自己就是Victim。而攻击者发送数据包中的序列号(记为CLT SEQ)必须满足条件: SVR_ ACK<=CLT_ SEQ<= SVR_ ACK+SVR_ WND,其中SVR_ WND为服务器的接收窗口,telnet服务器才会接收该数据包,如此,攻击者就劫持了Victim 与telnet 服务器间的会话,并以Victim已经验证的身份执行任意命令;
靶机B仍然会继续维持与winXP之间的连接会话,但由于与winXP之间的ACK值互相不再匹配产生出“ACK风暴”,即在攻击机kali注入数据包后,B在接收到winXP的响应包后,将会发现ACK值不正确,并向winXP发回含有它所期望ACK值的ACK包,期望重新建立起同步状态,而winXP收到靶机B的ACK包后,也会发现它并不符合它的接收条件,因此它再次返回了一个ACK包,这样就构成了死循环,在网络上来回发送ACK,直到其中一个ACK由于网络拥塞或其他原因丢失为止。
2.实践过程
2.1 ARP缓存欺骗攻击
- 查一下攻击机和靶机的IP地址和mac地址
kali 192.168.200.64 00:0c:29:0f:79:be
linux 192.168.200.123 00:0c:29:8c:c2:b0
win2k 192.168.200.124
2. ping 192.168.200.124
并查看欺骗之前arp -a
3. 欺骗A,所以在攻击机当中root执行以下命令sudo netwox 33 -b -(A的mac地址) -g -(B的ip地址) -h -(A的mac地址) -i -(A的ip地址)
即netwox 33 -b 00:0c:29:8c:c2:b0 -g 192.168.200.124 -h 00:0c:29:8c:c2:b0 -i 192.168.200.123
4. 对比攻击前后两次内容可发现B的MAC地址已改为攻击机的MAC地址,达到欺骗A的目的。
2.2 ICMP重定向攻击
- 查看IP地址
kali 192.168.200.64
seedvm 192.168.200.66
- 在seedvm中查看一下网关
- 首先,我们使用netwox的86号工具进行ICMP重定向攻击,在Kali攻击机上执行命令
netwox 86 -f "host 192.168.200.66" -g 192.168.200.64 -i 192.168.200.2
,这个命令是当嗅探到SEED的数据包时,以192.168.200.2的名义发送ICMP重定向报文,使Kali成为其默认路由。
ping baidu.com
数据包已经被重定向到192.168.200.64
2.3 SYN Flood攻击
- 查看下ip地址(由于中间虚拟机互相ping不通,就还原之后又修改了,和上面的不太一样)
kali 192.168.200. 2
winxpattacker 192.168.200.3
win2k 192.168.200.10
- 使用WinXP登录靶机
telnet 192.168.200.10
- 在攻击机kali上使用Netwox中的76号工具,对靶机的23号端口进行SYN Flood攻击
netwox 76 -i 192.168.200.10 -p 23
打开Wireshark查看,可以看到攻击机向靶机发送了大量的虚假ip发出的SYN连接请求
- 再次使用WinXP登录靶机
telnet 192.168.200.10
,发现已失去和主机的联系
2.4 TCP RST攻击
- 查看下ip地址
kali 192.168.200. 2
winxpattacker 192.168.200.3
win2k 192.168.200.10
- 使用WinXP登录靶机
telnet 192.168.200.10
- 在攻击机kali上使用Netwox的78号工具“Reset every TCP packet”来实现TCP RST攻击netwox 78 -i 192.168.200.10
- 再次使用WinXP登录靶机
telnet 192.168.200.10
,发现已失去和主机的联系
2.5 TCP会话劫持攻击
- 查看下ip地址(由于中间虚拟机互相ping不通,就还原之后又修改了,和上面的不太一样)
kali 192.168.200.2
winxpattacker 192.168.200.3
win2k 192.168.200.10
- kali中,执行命令
ettercap -G
打开Ettercap工具,选择“eth0”作为嗅探监听接口
- 进入
Host List
- 分别添加target1和target2
- 选择MITM menu中的 ARP poisoning 进行ARP欺骗
- 在kali的Ettercap中选择Ettercap Menu菜单栏上选择
View-Connections
接着用WinXP登录靶机,telnet 192.168.200.10
- 回到kali可以看到Ettercap已经截获了telnet登录主机的信息
3.学习中遇到的问题及解决
- 问题1:telnet登录不上
- 问题1解决方案:在服务管理工具打得开服务状态,启动类型改成自动/手动
- 问题2:虚拟机互相ping不通
- 问题2解决方案:还原默认配置,重新配一下
4.实践总结
实验过程太卡了,开着好几台虚拟机卡死,还碰见telnet登录不上等各种问题,攻击原理还要仔细琢磨才能明白,还要多学习netwox工具