首页 IP欺骗攻击编程设计方案

IP欺骗攻击编程设计方案

举报
开通vip

IP欺骗攻击编程设计方案基于C语言实现IP欺骗攻击编程 计算机学院2010级网络工程(2)班张伟强3110006515 一、实现语言 C语言 二、开发及实现环境 Microsoft Visual Studio 2010 标准windos PC VM虚拟机(前期阶段用,后期使用三台主机实现) wincap 三、详细实现过程以及实现目标 1、实现目标:实现IP的欺骗攻击。 2、简要实现过程: 第一步,使被信任主机的网络暂时瘫痪,以免对攻击造成干扰。 第二步,连接到目标主机的某个端口来猜测ISN基值和增加规律。 第...

IP欺骗攻击编程设计方案
基于C语言实现IP欺骗攻击编程 计算机学院2010级网络 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 (2)班张伟强3110006515 一、实现语言 C语言 二、开发及实现环境 Microsoft Visual Studio 2010 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 windos PC VM虚拟机(前期阶段用,后期使用三台主机实现) wincap 三、详细实现过程以及实现目标 1、实现目标:实现IP的欺骗攻击。 2、简要实现过程: 第一步,使被信任主机的网络暂时瘫痪,以免对攻击造成干扰。 第二步,连接到目标主机的某个端口来猜测ISN基值和增加规律。 第三步,把源地址伪装成被信任主机,发送带有SYN标志的数据段请求连接。 第四步,等待目标主机发送SYN/ACK包给已瘫痪的主机。 第五步,再次伪装成被信任的主机向目标主机发送ACK,此时发送的数据段带有预测的目标主机的ISN+1. 第六步,连接建立,发送命令请求。 3、详细实现过程: 第一步,利用VM虚拟机搭建一个局域网,局域网内有主机A和主机B,真实主机作为外网主机Z,内外网主机系统都是windos 7。 第二步,利用wincap获取内网主机B的IP地址,用于外网主机Z欺骗内网主机A时伪装成该IP地址。 第三步,实现对内网主机B的SYN Flood攻击,使得B的服务器功能瘫痪,无法响应。 第四步,外网主机Z连接到内网目标主机A的某个端口来猜测其ISN基值和增加规律,为后面请求连接做准备。 第五步,外网主机Z伪装成B向目标主机A发送带有SYN标志的数据段请求连接,为了不被揭穿,等待目标主机发送SYN/ACK包给已瘫痪的主机,一 定时间间隔后,根据猜测目标主机A可能回应的ISN的值,再次伪装成 被信任的主机B向目标主机A发送ACK,此时发送的数据段带有预测的 目标主机的ISN+1。如果失败,则继续重复再猜测目标主机A的ISN的 可能值,再发起请求。 第六步,请求连接成功,向目标主机A发送数据包。 (过程如下:) Z(B) ----SYN----> A B < ---- SYN+ACK ---- A Z(B) ----ACK----> A Z(B) ----PSH----> A 4、过程说明: (1)、使被信任主机失去工作能力: 为了伪装成被信任主机而不露陷,需要使其完全失去工作能力。由于攻击者将要代替真正的被信任主机,他必须确保真正的被信任主机不能收到任何有效的网络数据,否则将会被揭穿。有许多 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 可以达到这个目的(如SYN洪水攻击、TTN、Land等攻击)。 (2)、序例号取样和猜测: 前面讲到了,对目标主机进行攻击,必须知道目标主机的数据包序例号。通常如何进行预测呢?往往先与被攻击主机的一个端口(如:25)建立起正常连接。通常,这个过 程被重复N次,并将目标主机最后所发送的ISN存储起来。然后还需要进行估计他的主机与被信任主机之间的往返时间,这个时间是通过多次统计平均计算出来的。往返连接增加64,000.现在就可以估计出ISN的大小是128,000乘以往返时间的一半,如果此时目标主机刚刚建立过一个连接,那么再加上64 ,00。 一旦估计出ISN的大小,就开始着手进行攻击,当然你的虚假TCP数据包进入目标主机时,如果刚才估计的序例号是准确的,进入的数据将被放置在目标机的缓冲区中。 但是在实际攻击过程中往往没这么幸运,如果估计序例号的小于正确值,那么将被放弃。 而如果估计的序例号大于正确值,并且在缓冲区的大小之内,那么该数据被认为是一个未来的数据,TCP模块将等待其他缺少的数据。如果估计序例号大于期待的数字且不在缓冲区之内,TCP将会放弃它并返回一个期望获得的数据序例号。 你伪装成被信任的主机IP,此时该主机仍然处在瘫痪状态,然后向目标主机的513端口(rlogin)发送连接请求。目标主机立刻对连接请求作出反应,发更新SYN+ACK确认包给被信任主机,因为此时被信任主机仍然处于瘫痪状态,它当然无法收到这个包,紧接关攻击者向目标主机发送ACK数据包,该包使用前面估计的序例号加1。如果攻击者估计正确的话,目标主机将会接收该ACK。连接就正式建立起了,可以开始数据传输了。如果达到这一步,一次完整的IP欺骗就算完成了。 四、IP欺骗和SYNFlood基本原理 1.IP欺骗的理论依据: 由于TCP是面向连接的协议,所以在双方正式传输数据之前,需要用“三次握手”来建立一个稳重的连接。假设还是hosta和hostb两台主机进行通信,hostb首先发送带有SYN 标志的数据段通知hosta建立TCP连接,TCP的可靠性就是由数据包中的多位控制字来提供的,其中最重要的是数据序列SYN和数据确认标志ACK。B将TCP报头中的SYN设为自己本次连接中的初始值(ISN)。 当hosta收到hostb的SYN包之后,会发送给hostb一个带有SYN+ACK标志的数据段,告之自己的ISN,并确认hostb发送来的第一个数据段,将ACK设置成hostb的SYN+1。 当hostb确认收到hosta的SYN+ACK数据包后,将ACK设置成hosta的SYN+1。Hosta 收到hostb的ACK后,连接成功建立,双方可以正式传输数据了。 看了这个过程,我们就很容易想到,假如想冒充hostb对hosta进行攻击,就要先使用hostb的IP地址发送SYN标志给hosta,但是当hosta收到后,并不会把SYN+ACK发送到我们的主机上,而是发送到真正的hostb上去,这时IP欺骗就失败了,因为hostb根本没发送发SYN等。所以如果要冒充hostb,首先要让hostb失去工作能力,也就是所谓的拒绝服务攻击,设法让让hostb瘫痪。 可是这样还是远远不够的,最难的就是要对hosta进行攻击,必须知道hosta使用的ISN。TCP使用的ISN是一个32位的计数器,从0到4,294,967,295。TCP为每一个连接选择一个初始序列号ISN,为了防止因为延迟、重传等扰乱三次握手,ISN不能随便选取,不同的系统有着不同的算法。理解TCP如何分配ISN以及ISN随时间的变化规律,对于成功的进行IP欺骗攻击是很重要的!ISN约每秒增加128 000,如果有连接出现,每次连接将把计数器的数值增加64,000。很显然,这使得用于 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示ISN的32位计数器在没有连接的情况下每9.32小时复位一次。这所以这样,是因为它有利于最大于度地减少“旧有”连接的信息干扰当前连接的机会。如果初始序例号是随意选择的,那么不能保证现有序例号是不同于先前的。假设有这样一种情况,在一个路由回路中的数据包最终跳出循环,回到了“旧有”的连接,显然这会对现有连接产生干扰。预测出攻击目标的序例号非常困难,而且各个系统也不想同,在Berkeley系统,最初的序列号变量由一个常数每秒加1产生,等加到这个常数的一半时,就开始一次连接。这样,如果开始一个合法连接,并观察到一个ISN正在使用,便可以进行预测,而且这样做有很高的可信度。现在我们假设黑客已经使用某种方法,能预测出ISN。在这种情况下,他就可以将ACK序便号送给hosta,这时连接就建立了。 2. SYNFlood攻击的基本原理: SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。TCP是基于连接的,为了在服务端和客户端之间传送TCP数据,必须先建立一个虚拟 电路 模拟电路李宁答案12数字电路仿真实验电路与电子学第1章单片机复位电路图组合逻辑电路课后答案 ,也就是TCP连接,建立TCP连接的过程是:第一步,客户主机向服务器发送一个包含SYN标志的TCP报文初始化连接,SYN 即同步(Synchronize),同步报文会指明客户端使用的端口以及TCP连接的初始序号,客户时间戳的值等信息;第二步,服务器在收到客户端的SYN报文后,设置ACK位,同时TCP序号被加一,这说明服务器接受了客户的连接请求,服务器将返回一个SYN+ACK的报文给客户端,表示客户端的请求被接受,ACK即确认(Acknowledgement)。第三步,客户端也设置ACK位,返回一个确认报文ACK给服务器端,同样TCP序列号被加一,到此 一个TCP连接完成。以上的连接过程在TCP协议中被称为三次握手(Three-way Handshake)。而洪水攻击就是利用了这三次握手的信息交互特性。在TCP连接的三次握手中,假设一个客户端向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出应答SYN+ACK报文后将是无法收到客户端的ACK回应报文的,这样第三次握手将无法完成,在设计TCP 时,由于考虑到数据包有可能在传输过程中丢失或传错方向,服务器端一般会重试,再次发送SYN+ACK回应报文给客户端,并等待一段时间,同时把其内存用在等待来自源地址的ACK上,这段等待时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的内存资源,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。如果服务器的TCP/IP栈不够充足,最后的结果往往是堆栈溢出崩溃,服务器端也将忙于处理攻击者伪造的TCP半连接请求而无暇顾及客户的正常连接请求,此时从正常客户的角度看来,服务器失去响应而瘫痪,这种情况被称为服务器端受到了SYN Flood攻击。 五、实现的技术: 1、C语言编程row socket(原始套接字)实现IP欺骗 2、SYN Flood编程实现 3、VM虚拟机的局域网搭建原理 4、T CP报文结构: 通常TCP首部长为20个字节,分别表示源端口地址,目的端口地址,首部长,校验和等信息,根据报文结构定义结构体如下: public struct tcp_header { public static ushort SourPort; //源端口号 public static ushort DestPort; //目的端口号 public static uint SeqNo; //序号 public static uint AckNo; //确认序号 public static byte HLen; //首部长度(保留位) public static byte Flag; //标识(保留位) public static uint Window; //窗口大小 public static ushort ChkSum; //校验和 public static ushort UrgPtr; //紧急指针 } 通过以正确的数据填充这个结构并将tcp_header.Flag赋值为2(二进制的00000010)制造一个SYN的TCP报文,通过大量发送这个报文来实现SYN Flood的效果。但是为了进行IP欺骗从而隐藏自己,也为了躲避服务器的检查,还需要直接对IP首部进行操作。 5、I P报文结构:
本文档为【IP欺骗攻击编程设计方案】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_841159
暂无简介~
格式:doc
大小:22KB
软件:Word
页数:8
分类:互联网
上传时间:2019-02-11
浏览量:4