国内外木马研究现状 下载本文

内容发布更新时间 : 2024/6/29 16:44:41星期一 下面是文章的全部内容请认真阅读。

国外研究背景:

快速发展的计算机网络的普及,人类社会已经进入信息时代,信息已成为一种宝贵的人力资源。网络战争战场将成为未来信息作战风格。木马技术是一种两用网络攻击技术,使用木马技术渗透到敌人在系统内,建立一个稳定的内部点的攻击,并且提供了一个屏障。 1.有关国外的隐藏技术

(1)木马的P2P网络模型

木马设计的一个主要困难是隐藏的木马一定会各种各样的技术来隐藏行踪的目标系统植入后,为了避免被发现,尽可能延长生存。木马隐藏技术主要分为两类:主机隐藏和隐藏通信。设计一个新的木马主机隐藏DLL陷阱技术在Windows SPI接口,木马没有隐藏的过程。通信隐藏使用P2P技术控制网络模型取代了传统的木马,木马通信协议开发P2P环境中,提高隐藏的木马控制系统通信的性质,并确保系统的可靠性。

(2)Bootkit

Bootkit是继承自Rootkit内核权限获取和自我痕迹擦除技术的Rootkit高级发展模式。大规模互联互通“之前每个人都连接到互联网”,恶意代码乘坐便携式存储介质,如光盘或软盘的恶意软件,通常病毒隐藏在引导扇区的磁盘,充当一个数字寄生虫,感染主机PC在引导过程的介绍。感染会腐败的机器通过改变硬盘的主引导记录,任何引导磁盘引导扇区代码,或磁盘分区表(DPT)。bootkit是启动病毒能够钩和补丁Windows加载到Windows内核,从而得到无限制的访问整个电脑,甚至可以绕过满卷加密,因为主引导记录不加密。主引导记录包含密码解密的软件要求和解密开车。

国内研究现状:

计算机病毒、特洛伊木马以及网络蠕虫等恶意程序对网络安全构成了巨大的威胁。其中特洛伊木马的破坏最大,它能在高隐蔽性的状态下窃取网民的隐私信息。通常被感染木马的计算机用户并不知道自己的计算机已被感染。这是由于木马程序具有很高的隐蔽性,它能在看似无任何异常的情况下,秘密操控远程主机,进行破坏活动。 1.木马隐藏相关技术 (1)程序隐蔽

木马程序隐藏通常指利用各种手段伪装木马程序,让一般用户无法从表面上直接识别出木马程序。要达到这一目的可以通过程序捆绑的方式实现。程序捆绑方式是将多个 exe 程序链接在一起组合成一个 exe 文件,当运行该 exe 文件

时,多个程序同时运行。程序捆绑有多种方式,如将多个 exe 文件以资源形式组合到一个 exe 文件中或者利用专用的安装打包工具将多个 exe 文件进行组合,这也是许多程序捆绑流氓软件的做法。 因此,木马程序可以利用程序捆绑的方式,将自己和正常的 exe 文件进行捆绑。当双击运行捆绑后的程序时,正常 的 exe 文件运行了,而木马程序也在后台悄悄地运行。程序隐藏只能达到从表面上无法识别木马程序的目的,但是可以通过任务管理器中发现木马程序的踪迹,这就需要木马程序实现进程隐藏。 (2)进程隐蔽

隐藏木马程序的进程显示能防止用户通过任务管理器 查看到木马程序的进程,从而提高木马程序的隐蔽性。目前,隐藏木马进程主要有如下两种方式:

(2.1)API 拦截

API 拦截技术属于进程伪隐藏方式。它通过利用 Hook 技术监控并截获系统中某些程序对进程显示的 API 函数调用,然后修改函数返回的进程信息,将自己从结果中删除, 导致任务管理器等工具无法显示该木马进程。具体实现过程 是,木马程序建立一个后台的系统钩子(Hook),拦截 PSAPI的 EnumProcessModules 等相关函数的调用,当检测到结果 为该木马程序的进程 ID(PID)的时候直接跳过,这样进程信息中就不会包含该木马程序的进程,从而达到了隐藏木马 进程的目的。

(2.2)远程线程注入

远程线程注入属于进程真隐藏方式。它主要是利用CreateRemoteThread 函数在某一个目标进程中创建远程线程,共享目标进程的地址空间,并获得目标进程的相关权限, 从而修改目标进程内部数据和启动 DLL 木马。通过这种方 式启动的 DLL 木马占用的是目标进程的地址空间,而且自身是作为目标进程的一个线程,所以它不会出现在进程列表中。DLL 木马的实现过程是:

① 通过 OpenProcess 函数打开目标进程;

② 计算 DLL 路径名需要的地址空间并且根据计算结果 调用 VirtualAllocEx 函数在目标进程中申请一块大小合适的内存空间;

③ 调用WriteProcessMemory 函数将DLL 的路径名写入申请到的内存空间中;

④ 利用函数 GetProcAddress 计算 LoadLibraryW 的入口 地址,并将 LoadLibraryW 的入口地址作为远程线程的入口地址;

⑤ 通过函数 CreateRemoteThread 在目标进程中创建远程线程。

通过以上步骤就可以实现远程线程注入启动 DLL 木马,达到隐藏木马进程的目的。而且,远程线程注入方式与 其他进程隐藏技术相比,具有更强的隐蔽

性和反查杀能力, 增加了木马的生存能力。 (3) 通信隐藏

进程隐藏可以进一步加强其隐蔽性。但是仍然可以从通信连接的状况中发现木马程序的踪迹。因此,很有必要实现木马程序的通信隐藏。以下是两种通信隐藏技术的实现思想。

(3.1)端口复用技术

木马服务器端程序在运行时会主动打开某一端口和客户端程序进行连接,从而降低了木马程序的隐蔽性。木马端口复用技术能避免这种缺点,它让木马服务端程序共享其他网络程序已打开的端口和客户端进行连接,从而防止重新开启端口降低隐蔽性。该技术的关键之处在于,木马程序应增设一个数据包转交判断模块,该模块控制主机对数据报的转交选择。当主机收到目的端口与木马所复用的端口一致的数据包时,调用数据包转交判断模块进行判断,若为木马程序的数据包,将其转发给木马程序。否则,将其转交给开启该端口的网络程序。利用端口复用技术可以增强木马的通信隐藏,但是对于某些设置得过严的防火墙和入侵检测系统,这种技术也会失 去作用。因此,除了通信端口的隐藏之外,还应该考虑数据 包传输协议的隐藏。本文通过分析相关网络协议,编写出了 一款利用 ICMP 协议缺陷传输数据的木马程序,这里给出该技术的关键实现思想。

(3.2)利用 ICMP 和 HTTP 协议

通常网络防火墙和入侵检测系统等安全设备只检查ICMP 报文的首部,对数据部分不做处理。因此,可以将木马程序的通信数据隐藏在 ICMP 报文格式的选项数据字段进行传送,如把服务端程序向客户端程序传输的数据伪装成回显请求报文,而把客户端程序向服务端程序传输的数据伪装 成回显应答报文[1] 。这样,就可以通过 PING\\PING-RESPONSE 的方式在木马服务端程序和客户端程序之间建立起一个高效的秘密会话信道。利用 ICMP 协议传输数据还有一个很大的优点,即 ICMP 属于IP层协议,它在传输数据时并不使用任何端口,从而具有更好的隐蔽性。利用HTTP 协议进行木马程序之间的数据传输同样具有很高的隐蔽性。攻击者可以将木马客户端程序使用的端口绑定到 HTTP 服务的端口(80)上。那么,当木马服务端程序向客户端程序建立连接时,目的端口就变成了80 端口,从而将该连接伪装成 HTTP 服务连接以逃过防火墙的检查。实验测试表明,利用 ICMP 协议缺陷传输数据的木马程序能够很好地逃避网络防火墙和入侵检测系统的检查,实现 和控制端之间的通信。但是,采用该技术的木马程序传输数据的效率和稳定性还有待提高。以上分析的各种木马隐藏技术都只是建立在木马程序 实现自身隐藏的基础上。然而,目前网络安全状况表明,随着反木马技术的不断提高,木马程序仅靠自身或者某单一技 术已无法实现高隐蔽