基于端口复用技术的木马研究

基于端口复用技术的木马研究

ID:46421013

大小:71.50 KB

页数:5页

时间:2019-11-23

基于端口复用技术的木马研究_第1页
基于端口复用技术的木马研究_第2页
基于端口复用技术的木马研究_第3页
基于端口复用技术的木马研究_第4页
基于端口复用技术的木马研究_第5页
资源描述:

《基于端口复用技术的木马研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于端口复用技术的木马研究1概述木马是驻留在LI标机器上的程序,该程序主要在U标机器上执行一些未经授权的操作,如窃取口令、银行帐号和密码以及控制忖标计算机等,因此,木马程序普遍具冇非法性。木马程序为了避免被发觉,人多会采用各种方法隐藏自最近几年,木马技术发展很快,其隐蔽性也越来越强。下面是一些新型的木马技术:(1)反弹端11木马[1]。此类木马主要是改传统木马的被动监听方式为主动连接。(2)基于窗口HOOK、挂接API或远程线程技术动态嵌入式木马。(3)基于动态链接库转发的木马[2]。(4)协同隐藏型

2、木马[3]。该类木马主耍是综合利用多种隐藏技术。上述4类木马技术是当前非常流行的木马技术,特别是类型(2)和类型(3),可以将木马线程植入合法进程体内,利用介法进程与外界通信,很具迷惑性。但是上述木马均有一个共同的弱点,那就是要打开一个新的端口。所以加强对端口的监控仍然是对付这些木马的有效方法。对于类型(2)和类型(3),还可以采用应用程序和端口相关联的技术来进行检测。如果一个合法的进程打开了一个它不属于它的端口,那么一定是感染了木马。端口监测是当前防火墙普遍采用的核心技术z-—,如果木马程序能够不打

3、开新的端口,而是宵接利用系统12经打开的端口(笔者把这种情况称为端口复用)与外界进行通信,那么隐蔽性将更强,也就更容易穿过防火墙。木文以SPI为基础,实现了一个具冇端口复用特征的木马。2端口复用的实现原理对于基于UDP或TCP的网络应用程序进行通信时,首先必须将木地IP和一个端口绑定在一个套接字上,然后利用该套接字进行通信。不同的网络应用程序不会打开相同的端口。当系统收到一•个数据包时,会根据数据包指示的端口号找到对应的应用程序并转交该数据包。如果对某个端口采用了复用技术,那么系统收到数据包时,就不能

4、够直接将它转交给相应的网络应用程序,而是应该对系统行为作出适当的修改。图1展示了端口复用的原理。数据包归属判断模块主耍是判断该复川端口收到的数据包是应该转发给网络应用程序,还是转发给端口复用模块。3SPT的基本原理服务提供者接口(serviceproviderinterface,SPI)是Windows的WinSock2的新特性。服务提供者接口代表着另一端的Winsock编程(和Winsock2API相对应)。Winsock2不仅提供了一个供应用程序访问网络服务的Windowssocket应用程序编程

5、接口(API),述包含了由传输服务提供者和名字斛析服务提供者实现的Winsock服务提供者接口(SPI)和ws2_32.dllo图2展示了应用程序、Ws2_32.dll和传输服务提供者接口之间的层关系[4]。IWindowssocket2应用程序

6、Windowssocket2API

7、WS2_32.DLL

8、Windowssocket2传输SPI

9、传输服务提供者(DLL)图2网络丿应用程序T作原理传输服务提供者是以DLL的形式存在的,它对外只有一个入口函数:WSPStartup,其中的参数LPWSPPRO

10、C_TABLE结构指针指向函数派遣表,该函数派遣表里包含30个SPI函数指针项。每一个SPI函数有与Z相对应的API。如WSPRocv和WSPSend,它们在Ws232.dll中的对应函数是WSARecv和WSASend,再如WSPRecvFroni和WSPScndTo,在Ws232.dll中的对应函数是WSARecvFrom和WSASendTo.WS2_32.DLL就是通过函数派遣表來实现对传输服务提供者的所冇SPI函数的调用的。当网络血用程序调用WSASocket/socket函数创建套接字时,会

11、有3个参数:地址族,套接字类型和协议,这3个参数共同决定r由哪一个类型的传输服务提供者來实现本应用程序的功能[5]。在整个层次结构中,旳2.32.dll只起到了媒介的作用,应用程序则是对用户功能的实现,而真正实现网络传输功能的是传输服务捉供者接口。当前系统中有一些默认的服务提供者,它们己经实现了人部分基本的功能,所以在书写服务提供者程序时,只须对数据报进行处理后,就可将数据报传送给系统服务捉供者来实现剩下的功能。4基于SPI的端口复用技术对于端口复用技术,核心问题是对数据包的接收处理。本文只研究基于S

12、PT的UDP端口的复用问题。当网络应用程序接收一个数据包时,如图2,会通过API函数RecvFrom或WSARecvFrom调用对应的SPI函数WSPRecvFrom通过对WSPRecvFrom的重新设计刊以实现端口复用的功能,和关核心代码如下:intWSPAPIWSPRecvFrom(参数略){//先接收网络数据包nextproctable.lpWSPRecvFrom(s,lpBuffers,dwBufferCount,lpNumberOfBytesR

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。