Windows下木马隐藏技术分析

时间:2022-10-04 04:06:57

Windows下木马隐藏技术分析

摘要:作为黑客常用的一种攻击工具,木马对计算机网络安全构成严重威胁。本文介绍了木马的定义、功能及其工作原理,重点分析了木马文件,进程,通信隐藏技术,对防范木马攻击具有重要意义。

关键词:木马;隐藏技术;网络安全

中图分类号:TP309.5 文献标识码:A 文章编号:1007-9599 (2012) 10-0000-02

目前,木马已经成为常见的网络攻击技术之一,对网络安全造成了严重的威胁。它具有攻击范围广、隐蔽性强等特点。本文主要针对木马的隐藏技术展开研究。

一、木马定义和特征

木马是指潜伏在电脑中,受到外部用户控制以达到窃取本机信息或控制权为目的的程序。其全称为特洛伊木马,英文叫做“Trojan horse”。它是指利用一段特定的程序(木马程序)来控制另一台计算机。木马通常有两个可执行程序:分别为客户端和服务端,即控制端和被控制端。植入被种者电脑的是“服务器”部分,而所谓的“黑客”正是利用“控制器”进入运行了“服务器”的电脑。一旦运行了木马程序的“服务器”以后,被种者的电脑就会有一个或几个端口被打开,黑客就可以利用这些打开的端口进入电脑系统,用户的个人隐私就全无保障了。木马的设计者采用多种手段隐藏木马以防止木马被发现。随着病毒编写技术的发展,木马程序采用越来越狡猾的手段来隐蔽自己,使普通用户很难发觉。

二、木马的功能

木马的主要功能有:

(一)窃取数据:仅仅以窃取数据为目的,本身不破坏损伤计算机的文件和数值,也不妨碍系统的正常办公。有很多木马有键盘记录功能,会记录服务端每次敲击键盘的动作,所以一旦有木马入侵,数据将很容易被窃取。

(二)篡改文件:对系统的文件有选择地进行篡改,对服务端上的文件有筛选的施行删除,修改,运行等一些系列相关操作。

(三)使系统自毁。利用的方法有很多:比如改变报时的钟频率、使芯片热解体而毁坏、使系统风瘫等。

三、木马的隐藏技术

(一)文件隐藏

木马程序植入目标系统后,就会改变其文件表现形式加以隐蔽,从而欺骗用户。隐藏保护木马文件的方式主要有以下几种:

1.捆绑隐藏

采用此隐蔽手段的木马主要有两种方式:插入到某程序中或者与某程序捆绑到一起,一旦程序运行木马也就会被启动,例如使用压缩的木马程序伪装成jpeg等格式的图片文件,木马程序就有了随时运行的可能。或者与常用程序捆绑到一起,一旦木马被点击就会加载运行,使用户难以防范,例如提供给用户捆绑了木马程序的解压软件,一旦用户运行该软件此程序便被释放并立即运行。

2.伪装隐藏

首先利用自身多变性的外部特征伪装成单独的文件,选定好文件名,然后修改文件系统的相关程序,最后设置文件属性为隐藏或者只读。这样,木马就伪装成了正常的文件或者非可执行文件。

3.替换隐藏

木马将自身的DLL替换为目标文件的同名DLL文件,备份原先的正常系统文件。经过这样的替换后,一般情况下,正常的系统文件,只有当具有木马的控制端向被控制端发出指令后,隐藏的程序才开始运行。

(二)进程隐藏

进程是程序运行在操作系统中的表现行为。主要有以下三种方法:

1.注册为系统服务

在WIN9X系列的操作系统中,在系统进程列表中看不到任何系统服务进程,因此只需要将指定进程注册为系统服务就可以在系统进程列表中隐形此进程。

2.使用HOOK技术

我们可以利用Windows系统提供的挂钩函数,使得被挂钩的进程在自己处理接收到的消息之前,先处理我们的消息处理函数。一般地,这个消息处理函数放在DLL中,让目标进程加载,这就达到了注入代码的目的。

所谓的HOOK技术是指通过特殊的编程手段截取Windows系统调用的API函数,并将其丢掉或者替换。例如在用户查看任务管理器时截取系统遍历进程列表的函数并进行替换,隐藏木马进程。

3.基于DLL的进程隐藏技术

DLL不会在进程列表中出现,是因为它不能独立运行,必须由进程加载并调用。一个以DLL形式的程序,通过某个已经存在进程进行加载,就可实现程序的进程隐藏。主要有以下两种方式:

在注册表中插入DLL。在Windows NT/2000/XP/2003中,有一个注册表键值HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsHKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs。当某个进程加载User32.dll时,这里面所有的DLL都将User32.dll利用LoadLibrary函数加载到该进程空间中。我们可以把自己的代码放在一个DLL中,并加入该键值,这样就可以注入到所有使用User32.dll的进程中了。

远程线程注入。在Windows系统中,每个进程都有自己专门的地址空间,一个进程不能创建本来属于另一个进程的内存指针。远程线程技术就是利用特殊的内核编程手段打破这种限制,访问另一个进程的地址空间,进而达到隐藏自身的目的。所谓远程线性插入DLL技术是指通过在另一个进程中创建远程线程的方法进入其内存空间,然后加载启动DLL程序。

文献[3]提出的基于DLL加载三级跳和线程守护的隐藏技术,增强了木马的隐蔽性与抗毁性。

(三)启动隐藏

木马的最大特点就是它一定要伴随系统的启动而启动,否则就失去了意义。木马启动的方式有以下几种:

1.注册表启动项:

利用windows平台的特殊性,通过它的注册表予以加载。一般通以下键值:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

上一篇:高校图书馆服务器虚拟化建设中需要注意的若干... 下一篇:谈ERP系统在线棒材钢铁企业中的实施