您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 网络安全技术原理与实践--第四章-TCPIP协议攻击
第四章TCP/IP协议攻击4.1TCP/IP协议攻击概述TCP/IP其实是两个网络基础协议:TCP协议、IP协议名称的组合。IP协议提供了能适应各种各样网络硬件的灵活性,对底层网络硬件几乎没有任何要求,任何一个网络只要可以从一个地点向另一个地点传送二进制数据,就可以使用IP协议加入Internet。TCP协议被称作一种端对端协议,它为两台计算机之间的连接起了重要作用:当一台计算机需要与另一台远程计算机连接时,TCP协议会让它们建立一个连接、发送和接收资料以及终止连接。IP源地址欺骗ARP协议攻击因特网控制消息协议(ICMP)攻击及欺骗技术4.2网络层协议攻击4.2.1IP源地址欺骗1.IP源地址欺骗原理IP源地址欺骗是通过利用TCP/IP协议本身存在的一些缺陷进行攻击的方法,其实质就是指攻击者伪造具有虚假源地址的IP数据包进行发送,以达到隐藏发送者身份、假冒其他计算机的目的。利用IP源地址欺骗进行IP假冒攻击示意图2.IP源地址欺骗过程(1)首先使被信任的主机的网络暂时瘫痪,以免对攻击造成干扰。(2)连接到目标机的某个端口来猜测ISN基值和增加规律;初始序列号(ISN)在TCP握手时产生。(3)接下来把源地址伪装成被信任主机,发送带有SYN标志的数据段请求连接。(4)黑客等待目标机发送SYN+ACK包给已经瘫痪的被信任主机,因为黑客这时看不到这个包。(5)最后再次伪装成被信任主机向目标主机发送ACK,此时发送的数据段带有预测的目标主机ISN+1,可以通过发送大量不同ACK值的数据包以提高命中的可能性。(6)连接建立,发送命令请求。3.IP源地址欺骗攻击防御(1)使用随机化的初始序列号,使得远程攻击者无法猜测到通过源地址欺骗伪装建立TCP链接所需的序列号,降低被源地址欺骗的风险;(2)使用网络层安全传输协议如IPsec,对传输数据包进行加密,避免泄露高层协议可供利用的信息及传输内容;(3)避免采用基于IP地址的信任策略,已基于加密算法的用户身份认证机制来代替这些访问控制策略;(4)在连路由器和网关上实施包过滤是对抗IP源地址欺骗的一种主要技术。4.2.2ARP协议攻击1.ARP欺骗攻击技术原理ARP欺骗攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。2.ARP欺骗攻击的过程在一个局网里,有三台主机A,B,H连接到一个交换机S,它们的MAC地址分别为MAC.A,MAC.B,MAC.H(H是黑客)。ARP欺骗攻击过程3.ARP欺骗攻击防御方法(1)静态绑定关键主机IP地址与MAC地址映射关系。(2)在交换机上做端口与MAC地址的静态绑定,可以有效防止陌生计算机的接入,也可以有效防止人为随意调换交换机端口。(3)对于已经中了ARP攻击的内网,在PC上不了网或者ping丢包的时候,使用arp-a命令,看显示的网关的MAC地址是否和路由器真实的MAC相同。如果不是,则查找这个MAC地址所对应的PC,这台PC就是攻击源。(4)安装ARP防火墙等工具进行防御。4.2.3因特网控制消息协议(ICMP)攻击及欺骗技术1.ICMP攻击技术原理ICMP是IP不可分割的一部分,其功能主要有:侦测远端主机是否存在,常用于ping命令。建立及维护路由资料。重导消息传送路径(ICMP重定向)。流量控制。2.ICMP攻击过程除了路由器,主机必须服从ICMP重定向,因此,如果网络中的主机接收到一个错误ICMP重定向消息,就会产生一张无效的路由表。若一台机器伪装成路由器截获了所有到达某些目标网络的IP数据包,就形成了窃听。同样,ICMP重定向也可以通过向被攻击主机发送构造的ICMP报文造成被攻击主机耗费大量内存维护路由表信息,导致系统瘫痪,造成拒绝服务攻击。3.ICMP攻击防御(1)可以通过配置主机使其不处理ICMP重定向报文状态和验证ICMP的重定向消息,主要有检验ICMP重定向消息是否来自正在使用的路由和检验ICMP重定向消息是否包含转发IP数据报的头信息。(2)以及设置防火墙过滤,对于ICMP重定向报文判断是否来自本地路由器等。4.3传输层协议攻击TCPRST复位攻击TCPRST复位攻击是RST表示复位,用来关闭异常的连接,在TCP的设计中它是不可或缺的。该类攻击可以通过防火墙简单设置,设置防火墙将进来的包带RST位的包丢弃。UDP拒绝服务攻击该类攻击可以通过防火墙简单设置,设置防火墙将进来的包带RST位的包丢弃。基于状态的防火墙必须依靠源目的地址建立状态表条目和设置会话超时值。大量此类信息填充状态表可导致防火墙产生拒绝服务攻击。4.4协议攻击实践(1)安装WinPcap4.1.3驱动和开发包。(2)打开VC6.0的IDE,在工具栏打开“Tools”-“Options”,在弹出的窗体中点击“Directories”,在“ShowDirectoriesfor”选择框中选择“Includefiles”,然后点击工具new,新建一个头文件所在的目录。然后点击“…”,选择WinPcap头文件所在的目录,如图所示。4.4.1编程实现协议攻击(3)同样的方法,在“ShowDirectoriesfor”选择框中选择“Libraryfiles”,然后点击工具new,新建一个库文件所在的目录。然后点击“…”,选择WinPcap库文件所在的目录。然后点击“OK”,完成往VC6.0的IDE中添加使用WinPcap头文件和库文件所需的环境,如图所示。(4)如果需开发多线程的程序,在该程序所在的项目中,点击“Project”-“Settings”,然后在“SettingFor”单选框选择“Win32Debug”,在“C/C++”页面中,“Category”选择“CodeGeneration”,“Userun-timelibrary”选择“Multithreaded”,然后点击“OK”完成Debug的多线程设置,如图所示。(5)同样,在“SettingFor”单选框选择“Win32Release”完成对Release的多线程设置。(6)如下程序只能完成一个ARPReplay报文的发送功能,请完成交互式的ARP欺骗发送的程序。4.4.2ARP欺骗攻击实践1.实验环境2.实验步骤(1)使用命令arp-a查询得到主机A的ARP缓存表,发现存在目标主机B的地址映射缓存,使用命令arp-d10.10.9.157删除这条缓存记录。(2)使用主机A向主机B发送任意消息,使用抓包工具观察ARP数据包流通过程并分析ARP包内容。使用主机A向主机B发送ping命令,使用wireshark观察数据包流通情况。(3)在局域网中发送假的ARP数据包,更新其他主机的ARP缓存表,伪装成主机C。下图是使用wireshark抓取的代码产生的数据包发送情况,可以看到广播询问了同网段的所有IP地址的MAC地址,并且都得到了回应。下图是打开一个询问包的详细信息,可以看到在数据包的网络层描述中,数据包的源MAC是主机A的MAC地址,源IP不是A的IP地址而是预先设置好的伪造IP地址。(4)使用主机B向主机C发送消息,尝试使用攻击主机A进行截获。使用主机B向主机C进行Ping操作,在主机A出处使用wirehark抓包观察数据包流通情况如图所示。(5)尝试不停地向网关地址发送伪造的ARP数据包,观察是否能够达到干扰网络的效果。下图展示了正常的主机与网关进行ARP交互的过程,其间隔时间是10秒钟或者20秒钟。下图展示了修改之后的攻击代码,将每次向不同主机发起的ARP询问全部转向网关地址,并且为了避免数据流量过大,每次循环等待2秒。发起断网ARP攻击的数据包流通情况,每隔2秒钟向网关发送一次伪造的ARP数据包,其中绑定了主机C的IP地址和主机A的物理地址。在攻击代码运行过程中,在主机C上使用火狐浏览器访问时显示访问失败。3.实验总结(1)将目标主机的IP与MAC地址进行静态绑定。可以使用arp-sIPMAC的命令静态绑定指定的IP地址与MAC。(2)如果发现自己的主机的ARP缓存表可能已经插入了错误的映射,可以直接将所有ARP缓存删掉。(3)禁用ARP协议。思考1)针对ARP欺骗攻击实践,考虑如何防止ARP欺骗。2)WinPcap驱动开发的特点。谢谢!
本文标题:网络安全技术原理与实践--第四章-TCPIP协议攻击
链接地址:https://www.777doc.com/doc-7115075 .html