《网络攻防实践》6.0
20199110 2019-2020-2 《网络攻防实践》第五周作业
1.实践内容
第5章是TCP/IP协议攻击。主要内容包括TCP/IP网络协议栈攻击概述、网络层协议攻击、传输层协议攻击和TCP/IP网络协议栈攻击防范,还有利用Netwox进行IP源地址欺骗、ARP欺骗、ICMP路由重定向攻击、TCP SYN Flood攻击。
TCP/IP网络协议栈攻击概述
-
网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常运行,网络服务不被中断。
-
网络安全基本属性包括机密性、完整性和可用性。
-
网络攻击基本模式包括截获、中断、篡改与伪造。
网络层协议攻击
主要协议如IP、ICMP和ARP都存在多种攻击方式,常见的包括:IP源地址欺骗、ARP欺骗和ICMP路由重定向攻击。
-
IP源地址欺骗(IP spoofing)
-
定义:是指攻击者伪造具有虚假源地址的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和UDP也存在很多种不同攻击方式,有TCP RST攻击、TCP会话劫持攻击、TCP SYN洪泛拒绝服务攻击和UDP洪泛拒绝服务攻击等。
- 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服务等。
-
TCP/IP网络协议栈攻击防范措施
TCP/IP网络协议栈攻击防范措施包括检测、预防与安全加固,网络安全协议和下一代互联网协议。
2.实践过程
事件要求
请在网络攻防实验环境(以SEED_YM作为攻击机,Linux Metasploitable / Windows Metasploitable 1个为靶机)中宪成TCP/IP协议栈重点协议的攻击实验,具体包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCPRST攻击及TCP会话劫持攻击(bonus)。
具体实践过程可参考SEED Project文档(http://www.cis.syr.edu/~wedu/seed/Labs/Attacks_TCPlPrfCPIP.pdf), 本书附带的DVD中包含了该文档的中文翻译版本。
实践操作
本次实践作业使用到的虚拟机全为Linux系统,分别为攻击机kali(A)、SEEDUbutu虚拟机(B)、靶机Metasploitable2(C)。本次作业要求环境为局域网,因此三款机型网络适配器均调整为VMnet8(NAT模式)
,进而使得三机同网。在Linux系统中,通过ifconfig
指令可以查到IP和MAC地址。
kali(A)的IP和MAC如下:
SEEDUbuntu(B)的IP和MAC如下:
Metasploitable2(C)的IP和MAC如下:
(1)ARP缓存欺骗攻击
(I)在B中使用指令ping IP(C)
,得到arp缓存表。使用arp -a
查看arp缓存表,我们可以看到C的IP地址和MAC地址是对应的。在A上执行指令netwox 80 -e MAC(A) -i IP(C)
(80是指netwox的80号工具)之后,就会在局域网内广播这条命令。如下所示。
结束后,使用arp -d IP(C)
去除arp缓存。
(2)ICMP重定向攻击
(I)在B上打开Wireshark来查看数据流量,并在终端ping baidu.com
,我们发现B可以直接访问外网。
(II)在A主机上执行命令netwox 86 -f "host IP(B)" -g IP(A) -i 192.168.200.1
(嗅探到B的数据包时,以192.168.200.1
的名义发送ICMP重定向报文,使A成为默认路由)之后,在终端中,我们发现其访问百度的数据包已经被重定向到A。如下所示。
(3)SYN Flood攻击
(I)使用B向C发起登陆telnet IP(C)
后,在A上利用netwox的76号工具对靶机的23号端口进行SYN Flood攻击netwox 76 -i IP(C) -p 23
。我们发现B终端telnet连接被中断。
(II)打开Wireshark查看,可以看到A向C发送了大量的虚假IP发出的SYN连接请求,这些虚假的连接请求没有MAC地址,无法溯源攻击者的真实身份。
(4)TCP RST攻击
(I)使用B向C发起登陆telnet IP(C)
后,在A上利用netwox的78号工具对靶机进行TCP RST攻击netwox 78 -i IP(C)
。回到我们刚才B的登陆界面,telnet连接被中断。
(5)TCP会话劫持攻击
(I)在B上使用telnet IP(C)
指令,并且账号密码登陆,随后输入ls
。我们可以在Wireshark中抓到如下画面。
(II)在没有发送其他指令的情况下,打开最后一条telnet连接的Transmission Control Protocol
查看源端口值和目的端口值。
(III)在A中使用指令./shijack-lnx eth0 IP(B) 57888 IP(C) 23
(参数依次为网卡名、源地址、源端口、目的地址、目的端口)后,在Wireshark中我们看到出现ACK风暴。
此时,虚拟机B上终端已被断开telnet连接。
(IV)这个时候我们利用A和C通信,输入指令ls
。利用Wireshark截取数据包,我们发现A和C之间是正常通信的。
3.学习中遇到的问题及解决
-
问题1:按照建国方案中三机同设桥接时,三机均因不可知力量无法ping通外网。
-
问题1解决方案:考虑三机应处于局域网环境,但并不一定非得桥接,转而给三机适配到VMnet8下进行实践。
-
问题2:在使用shijack工具时,遇到
command not found
的状况。 -
问题2解决方案:在高阳同学的精确制导下,完成打击任务。需要使用
sudo chmod 777 shijack-lnx
进行赋权,同时进入shijack-lnx所在目录,才能正常使用./shijack-lnx
指令。
4.实践总结
自从学了网络攻防实践,我的笔记本身体一天不如一天了。从原来的快速响应到现在的延迟buff,虚拟机不可谓不强大。
在学习网络攻防和进行实践的过程中,总是会出现很多问题,而且不是所有问题都能解决的。比如我这次碰到的三机桥接无法上网的情况,折腾了我好长时间。在CSDN和博客园上遍寻良方,仍然没有找到解药。在寻药无果的情况下,我们应当考虑替代方案来实现目标。