一种SOHO路由器数据修改方法

文档序号:34601342发布日期:2023-06-29 00:43阅读:32来源:国知局
一种soho路由器数据修改方法1.
技术领域
::本发明涉及soho路由器数据安全
技术领域
:,具体涉及一种soho路由器数据修改方法。2.
背景技术
::soho路由器一般用来为连接到它上面的终端设备提供网络服务,其主要功能是处理局域网中设备的互联网访问的请求并转发至互联网的目标服务器和将互联网服务器的返回数据转发给内网设备,由于soho路由器一般没有专门的安全防护软件,且用户对路由器的安全性关注较少,所以soho路由器存在较多安全漏洞,且有可能长期存在,通过对soho路由器架构进行分析可以看出,其web服务、应用程序和底层linux内核均可能存在漏洞,漏洞类型包含内存破环漏洞,xss和csrf等传统的web漏洞,命令注入漏洞,文件上传漏洞等多种类型,使攻击者可获取底层linux系统的root访问权限,给soho路由器带来安全隐患;攻击者控制soho路由器以后,往往会通过修改流经路由器的数据包实现对路由器的进一步利用,网络安全人员为了发现攻击行为并对攻击者追踪溯源,也需要通过修改数据包,插入特定的标签,从流量层面对恶意行为进行检测,但是现有的修改数据包方式有可能会影响路由器的正常运行,影响到通信双方的正常通信,同时路由器安全技术的研究主要集中在漏洞挖掘方面,目的是拿到soho路由器底层linux内核操作系统的root权限,并没有针对获取控制权以后的数据利用问题,存在一定的缺陷,因此有必要研发一种soho路由器数据修改方法。3.技术实现要素:针对上述存在的的缺陷和问题,本发明提供一种soho路由器数据修改方法,其目的是利用netfilter和raw_socket相结合的方式,对流经soho路由器的数据进行修改,该数据修改方法不影响路由器正常运行,也不影响通信双方的正常通信,可在网络安全检测和网络攻击等多个场景应用,能够在数据包进入netfilter处理之前捕获数据包并根据需要进行修改,在netfilter的挂载点处设置规则将原始数据包丢弃,最后绕过路由器对数据包的处理规则,直接将修改后的数据包发送到网络中。4.本发明解决其技术问题所采用的方案是:1.一种soho路由器数据修改方法,soho路由器底层linux内核中的netfilter机制对需要修改的数据包丢弃,用rawsocket(原始套接字)捕获进入网卡的原始数据包,修改原始数据包以后绕过系统内核协议栈将修改后的数据包从网卡发出;s1:丢弃数据包soho路由器对数据包的过滤基于底层linux内核中的netfilter机制实现,netfilter是设置在报文处理路径上的嵌入内核ip协议栈的一系列调用入口,netfilter根据网络报文的流向,提供对数据包修改的挂载点,利用netfilter在用户空间的配置组件iptables,根据需修改的数据包特征,在挂载点处设置数据包过滤规则,进行数据包的初步筛选,丢弃数据包;s2:捕获数据包修改发出采用rawsocket(原始套接字),并利用pf_packet的套接字协议,在原始数据包进入到netfilter处理之前捕获来自数据链路层的原始数据帧,通过数据包处理系统对数据包进行处理,数据包处理系统包括数据包嗅探模块、数据包分析模块、数据包修改模块和数据包发送模块;(1)原始数据包进入到netfilter处理之前,数据包嗅探模块从网卡捕获需处理的原始数据包;(2)数据包分析模块对捕获的原始数据包进行解析,确定该数据包是否为需要修改的数据包,若该数据包不是需要修改的数据包则直接发出,若该数据包为需要修改的数据包,则通过数据包修改模块对数据包进行修改,同时修改数据包头部中的数据包长度、seq、ack字段并重新计算校验和,确保数据包的正确性和通信的接续性;(3)数据包发送模块利用rawsocket(原始套接字),绕过tcp/ip协议栈,将修改后的数据包从网卡发出。5.进一步的,数据包捕获的原则是在数据包被netfilter框架处理之前进行捕获,数据包发送的原则是绕过netfilter框架和内核协议栈处理,将修改后的数据包发送到网络中。6.进一步的,netfilter根据网络报文的流向,可提供五个对数据包进行修改的挂载点,prerouting、forward、postrouting三个挂载点均可对流经路由器的数据包进行丢弃,为了不影响进入路由器的数据包和路由器发出的数据包,选择在forward挂载点处设置数据包过滤规则,丢弃数据包。7.进一步的,soho路由器为arm或mips架构,使用buildroot工具搭建对应的交叉编译环境,交叉编译出能在soho路由器上运行的数据捕获、数据处理和数据发送程序,实现对数据包的修改。8.本发明的有益效果:本发明该方法利用netfilter和raw_socket相结合的方式,利用soho路由器底层linux内核中的netfilter机制对需要修改的数据包丢弃,用rawsocket捕获进入网卡的原始数据包,修改原始数据包以后绕过系统内核协议栈直接将修改后的数据包从网卡发出,该数据修改方法不影响路由器正常运行,也不影响通信双方的正常通信,可在网络安全检测和网络攻击等多个场景应用,通用性强,保证了数据包丢弃时数据发送方无感,使只有修改后的数据包到达接收方,原数据包无法到达接收方,避免数据包重复到达,且通过raw_socket数据处理效率较高,数据修改的延时较小,不会影响正常的通信,同时发出的数据包是用户自行构造的数据包,数据包构造功能可根据需要编写,可实现对数据包的任意修改。附图说明9.图1为本发明原理流程图。10.图2为数据包捕获发送原理流程图。11.图3为捕获数据的位置和发送数据的位置与数据包在soho路由器中流进位置关系图。12.图4为数据包处理系统原理流程图。13.图5为soho路由器对数据包的过滤流程图。14.图6为“丢弃-重发”数据修改方法论证实验环境示意图。15.图7为正常网络环境中发送方向接收方发起连接告知发送方无法连接结果图。16.图8为“丢弃-重发”数据修改方法中丢弃数据包时不返回任何信息结果图。17.图9为发送方发出的数据示意图。18.图10为接收方收到的数据示意图。19.图11为对数据包的ip进行修改实现伪造身份通信的程序代码。20.图12为发送方发送两个数据包的时间差信息示意图。21.图13为接收方收到两个数据包的时延信息示意图。22.具体实施方式:下面结合附图和实施例对本发明进一步说明。23.实施例1,攻击者控制soho路由器以后,往往会通过修改流经路由器的数据包实现对路由器的进一步利用,网络安全人员为了发现攻击行为并对攻击者追踪溯源,需要通过修改数据包,插入特定的标签,从流量层面对恶意行为进行检测,但是现有的修改数据包方式有可能会影响路由器的正常运行,影响到通信双方的正常通信,同时路由器安全技术的研究主要集中在漏洞挖掘方面,目的是拿到soho路由器底层linux内核操作系统的root权限,并没有针对获取控制权以后的数据利用问题,存在一定的缺陷。24.针对上述问题,本实施例提供一种soho路由器数据修改方法,利用netfilter和raw_socket相结合的方式,对流经soho路由器的数据进行修改,该数据修改方法不影响路由器正常运行,也不影响通信双方的正常通信,可在网络安全检测和网络攻击等多个场景应用;其原理是利用soho路由器底层linux内核中的netfilter机制对需要修改的数据包丢弃,用rawsocket(原始套接字)捕获进入网卡的原始数据包,修改原始数据包以后绕过系统内核协议栈将修改后的数据包从网卡发出;数据包在路由器上的处理过程可以分为三类:流入路由器的数据包、流经路由器的数据包和流出路由器的数据包,其中流入和流经的数据包需要经过路由器判决才能区分,而流经和流出的报文则需要经过路由器发出,此外,流经的数据包还有一个forward的过程,即从一个网卡转到另一个网卡;s1:丢弃数据包如图5所示,soho路由器对数据包的过滤基于底层linux内核中的netfilter机制实现,netfilter是设置在报文处理路径上的嵌入内核ip协议栈的一系列调用入口,netfilter根据网络报文的流向,能够提供五个对数据包修改的挂载点,如下图所示,利用netfilter在用户空间的配置组件iptables,根据需修改的数据包特征,在prerouting、forward、postrouting三个挂载点处均可对流经路由器的数据包设置数据包过滤规则,进行数据包的初步筛选,丢弃数据包,同时本实施例中,为了不影响进入路由器的数据包和路由器发出的数据包,选择在forward挂载点处设置数据包过滤规则,丢弃数据包;s2:捕获数据包修改发出数据包捕获的原则是在数据包被netfilter框架处理之前进行捕获,数据包发送的原则是绕过netfilter框架和内核协议栈处理,将修改后的数据包发送到网络中;如图2所示,采用rawsocket(原始套接字),并利用pf_packet的套接字协议,在原始数据包进入到netfilter处理之前捕获来自数据链路层的原始数据帧,也可以绕过系统内核的协议栈,发送用户自行构造的数据包,通过数据包处理系统对数据包进行处理,数据包处理系统包括数据包嗅探模块、数据包分析模块、数据包修改模块和数据包发送模块,实现从数据链路层获取原始数据包和将数据包发送到网络中的目的;如图3-4所示,(1)原始数据包进入到netfilter处理之前,数据包嗅探模块从网卡捕获需处理的原始数据包;(2)数据包分析模块对捕获的原始数据包进行解析,确定该数据包是否为需要修改的数据包,若该数据包不是需要修改的数据包则直接发出,若该数据包为需要修改的数据包,则通过数据包修改模块对数据包进行修改,同时修改数据包头部中的数据包长度、seq、ack字段并重新计算校验和,确保数据包的正确性和通信的接续性;(3)数据包发送模块利用rawsocket(原始套接字),绕过tcp/ip协议栈,将修改后的数据包从网卡发出;数据嗅探模块首先捕获进入网卡的原始数据包,由于捕获的数据包并不全是需要修改的数据包,所以通过数据分析模块对数据包进行分析,若该数据包不是需要修改的数据包则直接发出,若该数据包是需要修改的数据包,则先根据需要进行数据包修改,然后重新计算数据包头的校验和窗口大小字段,如果是修改tcp数据包的内容部分,再修改数据包头部中的数据包长度、seq、ack等字段,确保数据包的正确性和通信的接续性,最后通过数据发送模块将数据包直接发送到网络中;同时soho路由器为arm或mips架构,使用buildroot工具搭建对应的交叉编译环境,交叉编译出能在soho路由器上运行的数据捕获、数据处理和数据发送程序,实现对数据包的修改。25.该方法保证了数据包丢弃时数据发送方无感,其次,该方法可保证只有修改后的数据包到达接收方,原数据包无法到达接收方,避免数据包重复到达的问题,并且raw_socket数据处理效率较高,数据修改的延时较小,不会影响正常的通信,且发出的数据包是用户自行构造的数据包,数据包构造功能可根据需要编写,从原理上可实现对数据包的任意修改。[0026]“丢弃-重发”数据修改方法利用场景:“丢弃-重发”的数据修改方法通过修改数据包可实现在数据包或数据流中插入特殊数据,实现对网络安全性的分析,基于标记(marking-basedtraceback,mbt)的追踪溯源方法是研究较多的溯源方法,概率包标记算法[8](probabilisticpacketmarking,ppm)和确定包标记算法[9](deterministicpacketmarking,dpm)这些经典的方法都需要进行数据修改,匿名通道的安全性分析中,水印分析[10]是一种常用的方法,不管是数据包水印还是流速率水印,本质都是对数据包内容的修改或对数据包时延的修改,利用“丢弃-重发”的数据修改方法均可实现;实验论证:如图6所示,一台主机模拟内网上网终端,一台主机模拟外网服务器,中间经过soho路由器进行通信,soho路由器的wan口ip配置为10.0.0.1,lan口ip配置为192.168.1.1,外网服务器ip配置为10.0.0.2,内网主机ip配置为192.168.1.2,在soho路由器上对内网主机访问外网服务器的数据包进行修改,并分别在内网主机和外网服务器上抓包,需要说明的是,由于soho路由器的nat机制,在内网主机上捕获的数据包是192.168.1.2与10.0.0.2的通信数据,但在外网服务器上捕获数据包看到的是soho路由器wan口10.0.0.1与10.0.0.2通信的数据包。[0027]数据包丢弃无感性测试:网络环境中,若数据接收方拒绝接收数据包时,会给数据发送方返回数据不可达的数据包,告知数据发送方该数据包未被接收。“丢弃-重发”的数据修改方式在丢弃数据包时不能给数据发送方发送任何数据包,要让数据发送方“无感”丢弃,否则,若数据发送方知道该数据包被丢弃,则会影响后续通信。[0028]如图7所示,正常网络环境中,发送方向接收方发起连接,接收方返回带有rst标志的数据包告知发送方无法连接;如图8所示,数据修改方法中,丢弃数据包时不返回任何信息,数据发送方不会知道数据包被丢弃,不影响后续通信过程;修改数据包内容测试:正常网络通信中,接收方收到的数据包和发送方发出的数据包内容一致,本实施例利用“丢弃-重发”的方法成功修改数据包,接收方收到的数据包内容与发送方发送的数据包内容不同,如图9发送方发出的数据和图10接收方收到的数据可以看出,发送者发送的数据内容是test!,然而接收者收到的数据是hacked!,说明数据包内容被修改。[0029]伪造数据发送方ip测试:“丢弃-重发”的数据修改方法可以对数据包的ip进行修改,实现伪造身份的通信,如图11所示,展示了发送方向接收方10.0.0.2发送请求,接收方在返回数据时伪造身份,以8.8.8.8的ip向发送方回复数据,这种方式常被网络攻击者用来隐藏自己身份,防止被追踪溯源时使用;修改数据包间时延测试:正常网络的通信时延相对固定,发送方发出时间相近的数据包到达接收方的时间也相近,“丢弃-重发”的数据修改方式可以在两个数据包间插入延时,实现数据流的时间水印;如图12所示,发送方发送的两个数据包,发出时间相差很小;如图13所示,接收方收到的这两个数据包,插入了2秒的时延;以上所述仅为本发明的较佳实施例,并不限制本发明,凡在本发明的精神和原则范围内所做的任何修改、等同替换和改进,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1