20199325 2019-2020-2 《网络攻防实践》第5次作业

20199325 2019-2020-2 第五次作业 TCP/IP网络协议攻击



这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/19attackdefense
这个作业的要求在哪里 https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10553
我在这个课程的目标是 学习并掌握网络攻防知识,能完成相关实践
这个作业在哪个具体方面帮助我实现目标 了解TCP/IP网络协议攻击的原理

一.学习总结

链路层

以太网协议规定,接入网络的设备都必须安装网络适配器,即网卡,数据包必须是从一块网卡传送到另一块网卡。而网卡地址就是数据包的发送地址和接收地址,有了MAC地址以后,以太网采用广播形式,把数据包发给该子网内所有主机,子网内每台主机在接收到这个包以后,都会读取首部里的目标MAC地址,然后和自己的MAC地址进行对比,如果相同就做下一步处理,如果不同,就丢弃这个包。

网络层

IP协议

网络层引入了IP协议,制定了一套新地址,使得我们能够区分两台主机是否同属一个网络,这套地址就是网络地址,也就是所谓的IP地址。IP协议将这个32位的地址分为两部分,前面部分代表网络地址,后面部分表示该主机在局域网中的地址。如果两个IP地址在同一个子网内,则网络地址一定相同。为了判断IP地址中的网络地址,IP协议还引入了子网掩码,IP地址和子网掩码通过按位与运算后就可以得到网络地址。

ARP协议

即地址解析协议,是根据IP地址获取MAC地址的一个网络层协议。其工作原理如下:ARP首先会发起一个请求数据包,数据包的首部包含了目标主机的IP地址,然后这个数据包会在链路层进行再次包装,生成以太网数据包,最终由以太网广播给子网内的所有主机,每一台主机都会接收到这个数据包,并取出标头里的IP地址,然后和自己的IP地址进行比较,如果相同就返回自己的MAC地址,如果不同就丢弃该数据包。ARP接收返回消息,以此确定目标机的MAC地址;与此同时,ARP还会将返回的MAC地址与对应的IP地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

路由协议

首先通过IP协议来判断两台主机是否在同一个子网中,如果在同一个子网,就通过ARP协议查询对应的MAC地址,然后以广播的形式向该子网内的主机发送数据包;如果不在同一个子网,以太网会将该数据包转发给本子网的网关进行路由。网关互联网上子网与子网之间的桥梁,所以网关会进行多次转发,最终将该数据包转发到目标IP所在的子网中,然后再通过ARP获取目标机MAC,最终也是通过广播形式将数据包发送给接收方。而完成这个路由协议的物理设备就是路由器,路由器扮演着交通枢纽的角色,它会根据信道情况,选择并设定路由,以最佳路径来转发数据包。

传输层

链路层定义了主机的身份,即MAC地址,而网络层定义了IP地址,明确了主机所在的网段,有了这两个地址,数据包就从可以从一个主机发送到另一台主机。但实际上数据包是从一个主机的某个应用程序发出,然后由对方主机的应用程序接收。而每台电脑都有可能同时运行着很多个应用程序,所以当数据包被发送到主机上以后,是无法确定哪个应用程序要接收这个包。因此传输层引入了UDP协议来解决这个问题,为了给每个应用程序标识身份。

UDP协议

UDP协议定义了端口,同一个主机上的每个应用程序都需要指定唯一的端口号,并且规定网络中传输的数据包必须加上端口信息,当数据包到达主机以后,就可以根据端口号找到对应的应用程序了。UDP协议比较简单,实现容易,但它没有确认机制,数据包一旦发出,无法知道对方是否收到,因此可靠性较差,为了解决这个问题,提高网络可靠性,TCP协议就诞生了。

TCP协议

TCP即传输控制协议,是一种面向连接的、可靠的、基于字节流的通信协议。简单来说TCP就是有确认机制的UDP协议,每发出一个数据包都要求确认,如果有一个数据包丢失,就收不到确认,发送方就必须重发这个数据包。为了保证传输的可靠性,TCP协议在UDP基础之上建立了三次对话的确认机制,即在正式收发数据前,必须和对方建立可靠的连接。TCP数据包和UDP一样,都是由首部和数据两部分组成,唯一不同的是,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。

应用层

理论上讲,有了以上三层协议的支持,数据已经可以从一个主机上的应用程序传输到另一台主机的应用程序了,但此时传过来的数据是字节流,不能很好的被程序识别,操作性差,因此,应用层定义了各种各样的协议来规范数据格式,常见的有http,ftp,smtp等,在请求Header中,分别定义了请求数据格式Accept和响应数据格式Content-Type,有了这个规范以后,当对方接收到请求以后就知道该用什么格式来解析,然后对请求进行处理,最后按照请求方要求的格式将数据返回,请求端接收到响应后,就按照规定的格式进行解读。

ARP欺骗:

  1. ARP协议:ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的网络层,负责将某个IP地址解析成对应的MAC地址。

  2. ARP协议的基本功能:通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的进行。

  3. ARP攻击的局限性:ARP攻击仅能在局域网进行,无法对外网进行攻击。

  4. ARP攻击的攻击原理:ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。

  5. 常见的ARP欺骗手法:同时对局域网内的一台主机和网关进行ARP欺骗,更改这台主机和网关的ARP缓存表。如下图(PC2是攻击主机,PC1是被攻击主机)所示:

二.实践作业

请在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,具体包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击及TCP会话劫持攻击。

ARP缓存欺骗攻击:

机器 IP地址 MAC地址
SEED 192.168.3.28 00:0c:29:21:5e:e1
KALI 192.168.3.29 00:0c:29:bc:1e:4a
MetaSploitable 192.168.3.27 00:0c:29;de;09:9f

在Kali上执行指令netwox 80 -e 00:0c:29:e6:86:47 -i 192.168.200.125。这条指令中,80是指netwox的80号工具,第一个为MAC地址,第二个为Meta靶机的IP地址,执行后就在局域网内广播这条命令。

在meta靶机广播命令的时候,能够在wireshark里面看到SEED一直在发送消息。

ICMP重定向攻击:

查看网络当中的路由详细信息

在执行icmp重定向,将所有的发送到靶机的ICMP报文,重定向发送至攻击机。

能够通过wireshark看到ICMP报文的转移。

SYN Flood攻击:

首先通过SEED的telnet 192.168.200.5登陆到Meta靶机

使用netwox命令进行SYN攻击

我们能够在wireshark当中看到大量不一样的起点ip向目标靶机发送消息,这些大量复杂的消息使得靶机一时间接收崩溃。

所以这时候我们再进行telnet登陆,只能一直在尝试,因为大量消息不断涌入,靶机无法有时间响应我们。

TCP RST攻击:

和上面SYN攻击接近,只是使用的是netwox中不同的攻击方式

能够看到经过攻击过后,通过简单的telnet的登陆已经被卡死了,登陆不进去了。

三.学习中遇到的问题及解决

在第一个ping的时候,SEED和meta靶机没法ping通,经过看同学们的博客,得知许多。只需要将这些虚拟机全部设置为vmnet8中,在同一子网当中即可。就可以进行连接了。

在进行ARP欺骗的时候,除了netwox之外,还进行尝试了另一个工具arpspoof,但是在进行的时候,有些问题,arpspoof安装后的Dsniff安装始终失败,换源换了很多但是还是不可以安装。所以进行了放弃选择。但是还是对于arpspoof进行了一些了解。

四.学习感想和体会

这次是TCP/IP当中的进行攻击和防护实践,学习到了之前第三章时候提到过的攻击,这次实践主要就是围绕着这些攻击展开的。并且一些攻击手段的猜想,都能够通过wireshark进行验证。

posted @ 2020-04-01 21:14  20199325赵恩泽  阅读(364)  评论(0编辑  收藏  举报