20199106 2019-2020-2 《网络攻防实践》第五周作业

20199106 2019-2020-2 《网络攻防实践》第五周作业

作业说明

这个作业属于哪个课程 网络攻防实践
这个作业的要求在哪里 第五周作业:网络嗅探与协议分析
我在该课程的目标 对网络攻防技术有一个比较全面的认识,能够掌握基本的攻防操作。
这个作业在哪个具体方面帮助我实现目标 动手练习了TCP/IP网络协议攻击的原理和实践

作业正文

实践内容

第五章主要介绍了TCP/IP网络协议的各种攻击。

概述

  • 网络安全五大安全属性:机密性,完整性,可用性、真实性和不可抵赖性。
    • 网络攻击四种基本模式:截获、中断、篡改、伪造。
    • TCP/IP网络协议栈安全缺陷:
      • 网络接口层:以太网协议,当网络接口处于混杂模式可以直接嗅探并截获数据包,同时缺乏对MAC地址源的身份验证机制,实现MAC地址欺骗。
      • 互联层:IP协议只根据目的地址进行转发,不检查源IP地址是否真实有效,容易遭到IP地址欺骗。同时还包括源路由滥用、IP分片攻击,以及ARP欺骗、ICMP重定向、Smurf攻击等。
      • 传输层:TCP建立会话之后的连接过程中,非常容易遭受伪造和欺骗攻击,攻击者可以进行TCP RST攻击直接中断会话过程。同时TCP的三次握手过程存在设计缺陷,攻击者可以进行SYN泛洪攻击。
      • 应用层:一些流行的应用层协议HTTP、FTP、POP3/SMTP、 DNS等均缺乏安全设计。

网络层攻击及防范措施

  • IP源地址欺骗
    • 原理:只使用数据包中的目标地址进行路由转发,而不对源地址进行真实性的验证。
    • 攻击过程:
    • 攻击工具:netwox、wireshark、nmap
    • 防范措施:使用随机化的初试序列、使用网络层安全传输协议、避免采用基于IP地址的信任策略、在路由器和网关上实施包过滤。
  • ARP欺骗攻击
    • 原理:ARP协议在设计时认为局域网内部的所有用户都是可信的,这使得ARP缓存非常容易被注入伪造的IP地址到MAC地址的映射关系。
    • 攻击过程:
    • 攻击工具:DSniff中的Arpspoof、arpison、Ettercap、Netwox。
    • 防范措施:静态绑定关键主机的IP地址和MAC地址映射关系、使用相应的ARP防范工具、使用虚拟子网细分网络拓扑、加密传输。
  • ICMP路由器重定向攻击
    • 原理:利用ICMP路由重定向报文改变主机路由表,向目标主机发送重定向消息,伪装成路由器,使得目标机器的数据报文发送至攻击机从而加强监听。
    • 攻击过程:
    • 工具:netwox
    • 防范措施:根据类型过滤一些ICMP数据包、设置防火墙过滤、对ICMP重定向报文判断是不是来自本地路由器的
  • 传输层协议攻击及防范措施
    • TCP RST攻击
      • 原理:TCP协议头有一个reset,该标志位置为1,接收该数据包的主机即将断开这个TCP会话连接。tcp重置报文就是直接关闭掉一个TCP会话连接。
      • 攻击过程:
      • 工具:netwox
    • TCP会话劫持攻击
      • 原理:TCP会话劫持是劫持通信双方已经建立的TCP会话连接,假冒其中一方的身份,与另一方进行进一步通信。其中最核心的就是通过TCP对会话通信方的验证。
      • 攻击过程:
      • 防范措施:禁用主机上的源路由、采用静态绑定IP-MAC映射表以及避免ARP欺骗、引用和过滤ICMP重定向报文
    • TCP SYN Flood拒绝服务攻击
      • 原理:基于TCP三次握手的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而无法正常服务。
      • 攻击过程:
      • 防范措施:SYN-Cookie技术(在连接信息未完全到达前不进行资源的分配);防火墙地址状态监控技术(将到目标服务器的TCP连接状态分为NEW、GOOD、BAD)。
    • UDP Flood拒绝服务攻击
      • 原理:通过向目标主机和网络发送大量UDP数据包,造成目标主机显著的计算负载提升,或者通过网络拥塞,从而使得目标主机和网络陷入不可用的状态,造成拒绝服务攻击。
      • 防范措施:禁用或过滤监控及响应服务、禁用或过滤其他UDP服务。

实验过程

实验任务

在网络攻防实验环境(以 SEED_VM 作为攻击机,Linux Metasploitable/Windows Metasploitable 作为靶机)中完成TCP/IP协议栈重点协议的攻击实验,具体包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击以及TCP会话劫持攻击(bonus)。

实验环境

实验环境 IP地址 Mac地址
靶机A:winXP 192.168.200.3 00:0C:29:03:4F:2D
靶机B:linux Metasploitable 192.168.200.125 00:0c:29:0c:64:32
攻击机C:kali 192.168.200.2 00:0c:29:7e:33:d5
1、ARP缓存欺骗攻击

首先在kali上输入命令apt-get install netwox安装netwox
在攻击机输入命令netwox,选择5->'33'->netwox 33 -b 00:0C:29:03:4F:2D -g 192.168.200.125 -h 00:0C:29:03:4F:2D -i 192.168.200.2

注:
33号工具可以构造任意的以太网ARP数据报,80号工具可以周期性地发送ARP应答报,这两个工具都可进行arp攻击;
netwox 33 -b (A的mac地址) -g (B的ip地址) -h (A的mac地址) -i (A的ip地址),其中,-b 显示网络协议下相关的模块; -g 显示与客户端相关的模块; -h 显示与服务器相关的模块; -i 显示与检测主机连通性相关的模块;

命令执行结果如下:

在A靶机中输入arp -a查看目标主机A的arp缓存中保存了IP(B)/MAC(C)这样的映射关系从而达到了欺骗目的。

同样的方式对B进行欺骗;在kali中打开wirshark,可以看出A与B之间的通信在C主机上已经捕获,由此可知已成功实现了ARP欺骗。

2、ICMP路由重定向攻击

一般和IP源地址欺骗技术结合实践,攻击机利用Netwox的第86号工具,执行攻击命令 netwox 86 -f "host 192.168.200.3" -g 192.168.200.2 -i 192.168.200.1 ,-f 代表靶机地址, -g 代表靶机的下一跳地址,-i 代表伪造的身份。

让靶机访问任意网页,对比实施ICMP重定向攻击前后的受害主机路由表,发现攻击机的IP地址变化如下图所示:

可见攻击机成功冒充了网关ip地址。

3、TCP RST攻击

在攻击之前,先将主机A向主机B登录: telnet 192.168.200.125;在C上使用Netwox78号工具“Reset every TCP packet”来实现TCP RST攻击 netwox 78 -i 192.168.200.125,查看主机A,随意输入一个指令,然后回车,发现A与B已断开连接:

C中打开wireshark查看抓包情况会发现C冒充B向A发送了RST信息,断开了A、B的连接:

4、SYN Flood攻击

首先在A中使用telnet登陆B,建立连接,
在C中选择编号为76的“synflood”工具,并输入目标地址:192.168.200.125;

打开C中wireshark,可见攻击机C向目标靶机B发送了大量的虚假ip的SYN连接请求。

查看A刚刚的登录页面,发现连接并没有断开,可能是因为目标靶机B比较强悍?

5、TCP会话劫持攻击

首先使用telnet在A中登陆B;在C中打开wireshark,过滤器中输入telnet,然后再A中输入pwd命令。查看C中wireshark,第二个窗口,telnet下会看到pwd的数据包。

选择最后一个包,打开TransmissionControl Protocol 查看以下几个值,源端口、目的端口、Next Seq Num和ACK值。

获取到信息之后,攻击机C使用netwox工具伪造A给B发一个tcp包。发送成功后,原来的A就会失去连接,同时B会把Kali当作访问者 ,如此实现了会话劫持。
指令如下:
netwox 40 --ip4-dontfrag --ip4-offsetfrag 0 --ip4-ttl 64 --ip4-protocol 6 --ip4-src 192.168.200.3 --ip4-dst 192.168.200.125 --tcp-src 1069 --tcp-dst 23 --tcp-seqnum 1387 --tcp-acknum 104 --tcp-ack --tcp-psh --tcp-window 64 --tcp-data "6D6B646972206161"
在ip4-src后输入A 的地址,在ip4-dst后输入你的B的地址,tcp-src表示原端口号(这个是变化的),tcp-seqnum和tcp-acknum输入上面标出的值,tcp-data是C要发的16进制值数据,这里的是mkdir aa的16进制。同样的可以在Wireshark中观察到发送的值。

可见攻击机C成功冒充了A的ip向B发送了数据包。

学习中遇到的问题及解决

问题一:虚拟机开机总显示内存不足。

解决:多试几下就好了,也尝试更改了一下虚拟机的内存,效果不明显。

问题二:安装netwox不成功。

解决:kali攻击机没连网。

学习感想和体会

这次实验除了开始网络和虚拟机开启出了点问题,后面做的还是比较顺利,感谢同学们的帮助。

参考资料

《网络攻防技术与实践》 诸葛建伟

《winXP如何查看mac地址》

《arp百度百科》

posted @ 2020-04-01 22:47  happycarrot  阅读(276)  评论(0编辑  收藏  举报