20221909 2022-2023-2 《网络攻防实践》第4周作业
1.实验内容
任务:
在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。
网络层协议攻击
- IP源地址欺骗(IP spoofing)
- IP地址欺骗是指行动产生的IP数据包为伪造的源IP地址,以便冒充其他系统或发件人的身份。这是一种黑客的攻击形式,黑客使用一台计算机上网,而借用另外一台机器的IP地址,从而冒充另外一台机器与服务器打交道。
- IP源地址欺骗常应用于拒绝服务攻击、网络扫描、基于IP地址的身份认证机制等。
- 使用随机化初始序列号、使用网络层安全传输协议、避免采用基于IP地址的信任策略、在路由器和网关上实施包过滤等。
- ARP欺骗(ARP Spoofing)
- 有时被称为ARP下毒(ARP Poisoning),是指攻击者在有线以太网或无线网络上发送伪造ARP消息,对特定IP所对应的MAC地址进行假冒欺骗,从而达到恶意目的。
- 局域网嗅探、中间人攻击、恶意代码等。
- 静态绑定关键主机的IP地址与MAC地址映射关系、使用相应的ARP防范工具、使用VLAN虚拟子网细分网络拓扑、加密传输数据以降低ARP欺骗攻击的危害后果等。
- ICMP路由重定向攻击(ICMP Redirect Attack)
- 攻击者伪装成路由器发送虚假的ICMP路由路径控制报文,使得受害主机选择攻击者指定的路由路径,从而进行嗅探或假冒攻击。
- ICMP报文类型分为差错报告类和控制类。ICMP重定向攻击一般会和IP源地址欺骗技术结合实施。
- 根据类型过滤一些ICMP数据包、设置防火墙过滤、对于ICMP重定向报文判断是不是来自本地路由器等。
传输层协议攻击
- TCP RST攻击
- 也被称为伪造TCP重置报文攻击(spoofed TCP reset packet),是指一种假冒干扰TCP通信连接的技术方法。
- TCP会话劫持(TCP Session Hijacking)
- 目标是劫持通信双方已建立的TCP会话连接,假冒其中一方(客户端)身份,与另一方进行进一步通信。
- 防范TCP会话劫持攻击的手段有禁用主机源路由、采用静态绑定IP-MAC映射表以避免ARP欺骗、引用和过滤ICMP重定向报文、采用网络层加密机制IPSec协议等。
- TCP SYN Flood拒绝服务攻击
- 拒绝服务攻击(Denial of Service,DoS)的目的是使服务器不能够为正常访问的用户提供服务。
- TCP SYN Flood(也称SYN洪泛攻击)利用TCP三次握手协议缺陷向目标主机发送大量伪造源地址的SYN连接请求消耗目标主机的连接队列资源,从而不能够为正常用户提供服务。
- 防范SYN Flood攻击的措施有SYN-Cookie技术、防火墙地址状态监控技术等。
- UDP Flood拒绝服务攻击
- 通过向目标主机和网络发送大量的UDP数据包造成目标主机显著计算负载提升或者目标网络的网络拥塞,从而使得目标主机和网络陷入不可用的状态,造成拒绝服务攻击。
- 防范措施有禁用或过滤监控和响应服务、禁用或过滤其他UDP服务等。
2.实验过程
本次实验使用kali虚拟机、win2k虚拟机、seedUbuntu虚拟机和Metasploitable2靶机。在开始具体攻击实验前,我们先分别查看四台虚拟机的ip和mac地址。
主机 | ip地址 | mac地址 |
---|---|---|
kali linux | 192.168.200.10 | 00:0c:29:61:73:91 |
win2k | 192.168.200.124 | 00:0c:29:da:40:5f |
Metasploitable2 | 192.168.200.123 | 00:0c:29:24:7f:03 |
seedUbuntu | 192.168.200.3 | 00:0c:29:b3:1d:94 |
2.1 ARP缓存欺骗攻击
首先查看metasoloitable2的arp缓存,记录。
使用metasoloitable2 ping win2k,测试连通性。
再次查看虚拟机的arp缓存,发现发生了改变。
然后在kali上执行指令netwox 80 -e MAC(kali) -i IP( Metasploitable2)(80是指netwox的80号工具)之后,就会在局域网内广播这条命令。使得攻击机收到IP(Metasploitable)/MAC(kali)的映射。(注:此处没有返回结果)
此处输入的是netwox 80 -e 00:0c:29:9b:33:d9 -i 192.168.200.124
再次查看arp,发现mac地址被改变
2.2 ICMP重定向攻击
在终端ping baidu.com攻击机ubunt可以直接访问外网。
在kali主机上执行命令netwox 86 -f “host IP(攻击机ubunt)” -g IP(kali) -i 192.168.200.1(嗅探到攻击机ubunt的数据包时,以192.168.200.1的名义发送ICMP重定向报文,使kali成为默认路由)之后,在终端中,我们发现其访问百度的数据包已经被重定向到kali。
可以看到ip从192.168.200.2(攻击机ubunt)变成192.168.200.7(kali)。即访问百度的数据包已经被重定向到kali的ip下。
2.3 SYN Flood攻击
使用攻击机 Ubuntu向MetaSploitable发起登陆telnet IP(MetaSploitable),输入用户名密码(MetaSploitable登陆的用户名密码)。
在Kali上利用netwox的76号工具对靶机的23号端口进行SYN Flood攻击netwox 76 -i IP(MetaSploitable)-p 23。
打开Wireshark查看,可以看到攻击机向靶机发送了大量的虚假ip发出的SYN连接请求,这些虚假的连接请求没有MAC地址,无法溯源攻击者的真实身份。同时我们在SEED Ubuntu上进行访问也发现无法访问了。
2.4 TCP RST攻击
使用攻击机 Ubuntu向MetaSploitable发起登陆telnet IP(MetaSploitable),输入用户名密码(MetaSploitable登陆的用户名密码)。
在Kali上利用netwox的78号工具对靶机进行TCP RST攻击netwox 78 -i IP(MetaSploitable)。
回到刚才攻击机Ubuntu的登陆界面,我们现在连接已经被强制关闭了。当然你也可以用Wireshark查看发送的数据包。
2.5 TCP会话劫持攻击
在攻击机ubunt上使用telnet IP(MetaSploitable)指令,并且账号密码登陆。同时在kali上用Wireshark进行捕包
在Kali上打开Wireshark设置过滤条件telnet,找到最后一个数据包,打开TransmissionControl Protocol 查看:源端口、目的端口、Next Seq Num和ACK值。
使用指令netwox 40 --ip4-dontfrag --ip4-offsetfrag 0 --ip4-ttl 64 --ip4-protocol 6 --ip4-src 192.168.200.2 --ip4-dst 192.168.200.33 --tcp-src 43308 --tcp-dst 23 --tcp-seqnum 120 --tcp-acknum 650 --tcp-ack --tcp-psh --tcp-window 64 --tcp-data “6c”
其中第一个40是netwox的40号工具,在ip4-src后输入你的攻击机 Ubuntu地址,在ip4-dst后输入你的MetaSploitable地址,tcp-src表示源端口号(最后一个包的目的端口);tcp-dst表示目的端口号(最后一个包的源端口);tcp-seqnum和tcp-acknum输入在前面说明的值;tcp-data是你要发的数据的16进制值,6c是l的16进制。
在wireshark中可以捕到伪造的包,如果发现了很多Tcp Dup和Tcp Retransmission,那么劫持就是成功的。
3.学习中遇到的问题及解决
- 问题1:后来突然kali和seedUbuntu无法连接外网
- 问题1解决方案:通过百度进行了一些配置
4.学习感想和体会
对于TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击,对他们的攻击过程有了一定程度的了解,但是对于其中原理还是不够理解。
5.参考资料
https://www.cnblogs.com/ql5199/p/16093955.html
https://www.cnblogs.com/luoleqi/p/16125374.html