一种绕过网络端口屏蔽的方法及系统与流程

    专利2022-07-07  303

    本发明涉及网络通信领域,尤其涉及一种绕过网络端口屏蔽的方法及系统。
    背景技术
    ::随着信息技术的不断发展,人们对网络安全越来越重视,部分特定网络出于网络安全的考虑,通过路由器和防火墙策略屏蔽大量端口(如135、137、138、139、445和3389等),而有些端口在正常业务中会经常被使用到,一旦被屏蔽就会造成严重的影响,比如市面上有很多厂商的大容量nas存储都对外提供smb文件共享服务,而smb文件共享服务使用的正是445敏感端口,一旦445端口被屏蔽,整个存储上存放的数据都无法正常访问,所有依赖nas存储的业务也将无法正常工作。如何在网络端口被屏蔽的情况下保证业务能够正常运行,这将成为解决产品技术风险的关键。传统绕过网络端口屏蔽的方法是通过单一的端口映射或端口代理方法打通一条传输隧道,在实现方式上大多需要搭建代理服务器或者修改业务发送端的访问端口,不仅复杂性高,而且对现有业务的侵入性比较强,因此只能适用于特定的业务场景,比如windows远程桌面的3389端口被屏蔽,通过修改注册表可以避免使用3389端口进行通信,也可以通过工具把3389端口映射到13389端口,然后业务端通过13389端口进行远程桌面访问,但是像smb这种文件共享服务无法手动更改445默认端口,在访问共享文件时也无法在url中指定端口号,这样就导致所有依赖文件共享服务的业务都无法正常使用。技术实现要素:为了解决上述问题,本发明提出了一种绕过网络端口屏蔽的方法及系统。具体方案如下:一种绕过网络端口屏蔽的方法,包括以下步骤:s1:发送端向接收端发送网络数据包;s2:发送端上安装的端口代理模块选择用于拦截网络数据包的拦截方式;s3:端口代理模块根据选择的拦截方式将网络数据包发送至接收端的代理端口;s4:接收端的代理接口接收到网络数据包后,接收端将本机的代理端口接收的网络数据包转发至本机的实际接收端端口。进一步的,拦截方式包括三种,分别为:(1)通过对winsockapi中的connect函数进行apihook实现;(2)通过重写lsp的wspconnect函数实现;(3)基于wfp框架实现。进一步的,步骤s4中接收端将本机的代理端口接收的网络请求转发至本机的实际接收端端口的方法为:通过windows下的netsh或linux下的iptables进行转发。一种绕过网络端口屏蔽的系统,包括发送端和接收端,发送端和接收端均包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述发送端和接收端的处理器执行所述计算机程序时实现本发明实施例上述的方法的步骤。本发明采用如上技术方案,可以在不改动现有业务架构的基础上,通过端口代理和端口转发的方式绕过被屏蔽的网络端口,达到事半功倍的效果。附图说明图1所示为本发明实施例一中方法的流程图。图2所示为该实施例中wfp驱动方式的端口代理流程图。具体实施方式为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。现结合附图和具体实施方式对本发明进一步说明。实施例一:本发明实施例提供了一种绕过网络端口屏蔽的方法,如图1所示,其为本发明实施例所述的绕过网络端口屏蔽的方法的流程图,所述方法包括以下步骤:s1:发送端向接收端发送网络数据包。该实施例中设定接收端实际需要连接的实际接收端端口为destport,发送短通过tcp/ip向接收端的destport发送网络请求对应的网络数据包。s2:发送端上安装的端口代理模块选择用于拦截网络数据包的拦截方式。该实施例中根据业务需求来选择拦截方式,具体包括以下三种:(1)采用hook进行拦截hook技术又叫钩子函数,在系统没有调用函数之前,就先被钩子函数捕获并得到控制权,通过在钩子函数里面改变函数的默认行为达到特定目的。该实施例中通过对winsockapi中的connect函数进行apihook,实现进程内的端口代理功能。这种只在应用层进程级别的hook方式实现比较简单,很适合对某个特定进程在用户层进行端口代理,但是它无法拦截内核层的网络通信。(2)采用lsp进行拦截lsp(layeredserviceprovider)即分层服务提供商,winsock作为应用程序的网络套接字工具,可以由称为“分层服务提供商”的机制进行扩展。lsp就是tcp/ip等协议的接口,通过自己实现和安装lsp到现有协议链中,它可以实现加密、过滤、透明代理等功能。该实施例中通过重写lsp的wspconnect函数,实现目标端口数据转发到代理端口的功能。这种方式被广泛应用在网络加速、域名劫持和sock5代理等方面,但是windows的smb客户端并不调用winsockapi实现网络通信,而是在驱动层实现了smb协议的所有流程,所以使用lsp技术也无法拦截到smb的连接过程。(3)采用wfp驱动进行拦截wfp(windowsfilteringplatform)是为网络过滤应用开发平台提供支持的api和系统服务的集合,它允许开发者编写代码和操作系统的网络协议栈交互,它是在win7及以上系统中tdi的替代框架,提供了更加强大的内核网络数据包的过滤、拦截和修改等功能。该实施例中基于wfp框架实现了完整的端口拦截和代理逻辑,这种方式从驱动层入手可以解决无法拦截到特定网络包的问题,但是它无法运行在xp系统并且需要处理签名问题。wfp驱动方式的端口代理流程如图2所示,其中,wfpportproxy.sys封装了wfp的api,对wfp过滤点进行挂载并实现相应的钩子函数;wfpportproxy.dll是用户层和驱动层的代理,程序只需与dll交互就能完成网络包的处理;portproxy.exe是端口代理在应用层的实现,主要通过调用dll安装驱动和设置过滤条件。该实施例中采用wfp驱动方式。s3:端口代理模块根据选择的拦截方式将网络数据包发送至接收端的代理端口。该实施例中设定接收端的用于实际网络数据传输的代理端口为proxyport,接收端中实际接收发送端发送的网络数据包的端口为代理端口proxyport。s4:接收端的代理接口接收到网络数据包后,接收端将本机的代理端口接收的网络数据包转发至本机的实际接收端端口。步骤s4实现接收端将代理接收proxypor至实际接收端口destport之间的网络数据包的转发,即从本机的某一端口接收数据包后转发至本机的另一端口,比如接收端从8080接收到数据后转发到本机的80端口。该实施例中通过安装于接收端上的集成了windows和linux自带的两款网络端口转发工具的端口转发模块进行转发。(1)windows网络端口转发netsh(networkshell)是windows系统自带的功能强大的网络配置工具,它内置网络端口转发的功能,任何传入到本地端口的tcp连接(ipv4或ipv6)都可以被重定向到另一个本地端口或远程计算机上的端口。如转发时在命令行执行命令:netshinterfaceportproxyaddv4tov4listenaddress=*listenport=10445connectaddress=127.0.0.1connectport=445,该命令表示把网络中传入本机10445端口的数据转发到本机的445端口。(2)linux网络端口转发iptables是与最新的3.5版本linux内核集成的ip信息包过滤系统,其是一款功能强大的功能,用来设置数据包过滤条件和nat的命令行工具,通过设定规则可以实现windows下netsh相同的端口转发功能。如转发时在命令行执行命令:iptables-tnat-aprerouting-ptcp--dport10445-jredirect--to-port445,该命令表示把网络中传入本机10445端口的数据转发到本机的445端口。通过本发明实施例一的技术方案,解决了在特定网络环境下,管理员通过网络防火墙屏蔽特定网络端口,导致数据流无法通行的问题,可以实现在应用客户端访问远程服务时,保持原业务中采用的端口号,不需要做任何改动;在应用服务端通过操作系统自带的端口映射工具完成端口转发的功能。实施例二:本发明还提供一种绕过网络端口屏蔽的系统,包括发送端和接收端,发送端和接收端均包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述发送端和接收端的处理器执行所述计算机程序时实现本发明实施例一的上述方法实施例中的步骤。进一步地,作为一个可执行方案,所述发送端和接收端可以是桌上型计算机、手机、笔记本、掌上电脑及云端服务器等计算设备。所述发送端和接收端可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,上述发送端和接收端的组成结构仅仅是发送端和接收端的示例,并不构成对发送端和接收端的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件,例如发送端和接收端还可以包括输入输出设备、网络接入设备、总线等,本发明实施例对此不做限定。进一步地,作为一个可执行方案,所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述发送端或接收端的控制中心,利用各种接口和线路连接整个发送端或接收端的各个部分。所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述发送端和接收端的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。当前第1页1 2 3 当前第1页1 2 3 
    技术特征:

    1.一种绕过网络端口屏蔽的方法,其特征在于,包括以下步骤:

    s1:发送端向接收端发送网络数据包;

    s2:发送端上安装的端口代理模块选择用于拦截网络数据包的拦截方式;

    s3:端口代理模块根据选择的拦截方式将网络数据包发送至接收端的代理端口;

    s4:接收端的代理接口接收到网络数据包后,接收端将本机的代理端口接收的网络数据包转发至本机的实际接收端端口。

    2.根据权利要求1所述的绕过网络端口屏蔽的方法,其特征在于:拦截方式包括三种,分别为:

    (1)通过对winsockapi中的connect函数进行apihook实现;

    (2)通过重写lsp的wspconnect函数实现;

    (3)基于wfp框架实现。

    3.根据权利要求1所述的绕过网络端口屏蔽的方法,其特征在于:步骤s4中接收端将本机的代理端口接收的网络请求转发至本机的实际接收端端口的方法为:通过windows下的netsh或linux下的iptables进行转发。

    4.一种绕过网络端口屏蔽的系统,其特征在于:包括发送端和接收端,发送端和接收端均包括处理器、存储器以及存储在所述存储器中并在所述处理器上运行的计算机程序,所述发送端和接收端的处理器执行所述计算机程序时实现如权利要求1~3中任一所述方法的步骤。

    技术总结
    本发明涉及一种绕过网络端口屏蔽的方法及系统,该方法中包括:S1:发送端向接收端发送网络数据包;S2:发送端上安装的端口代理模块选择用于拦截网络数据包的拦截方式;S3:端口代理模块根据选择的拦截方式将网络数据包发送至接收端的代理端口;S4:接收端的代理接口接收到网络数据包后,接收端将本机的代理端口接收的网络数据包转发至本机的实际接收端端口。本发明可以在不改动现有业务架构的基础上,通过端口代理和端口转发的方式绕过被屏蔽的网络端口,达到事半功倍的效果。

    技术研发人员:陈俊珊;苏再添;黄志炜;孙善为
    受保护的技术使用者:厦门市美亚柏科信息股份有限公司
    技术研发日:2020.12.15
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-7702.html

    最新回复(0)