对木马隐藏技术的研究
- 格式:doc
- 大小:26.00 KB
- 文档页数:2
木马捆绑与隐藏12.2.1 背景描述木马并不是合法的网络服务程序,如果单纯以本来面目出现,很容易被网络用户识别。
为了不被别人发现,木马制造者必须想方设法改换面貌;为了诱使网络用户下载并执行它,黑客将木马程序混合在合法的程序里面,潜入用户主机。
在受害主机里,为了逃避杀毒软件的查杀,木马也会将自己“乔装打扮”;为了防止用户将其从系统里揪出来,木马则采取一切可能的手法进行隐藏自己。
总之,现在的木马制造者是越来越狡猾,他们常用文件捆绑的方法,将木马捆绑到图像、纯文本等常见的文件中,然后通过网页、QQ、Email 或MSN 等将这些文件传送给受害者,而用户一旦不慎打开这些文件,木马就自动执行了,主机就中木马了。
12.2.2 工作原理1.木马捆绑木马捆绑即是文件捆绑,黑客将木马或者病毒等恶意程序与其它正常文件组合成的一个整体。
这是一种最简单也是最可行和最常用的一种方法,当受害者下载并运行捆绑了木马等恶意程序的文件时,其中的木马等恶意程序就会被激活。
木马捆绑的手段归纳起来共有四种:(1)利用捆绑机软件和文件合并软件捆绑木马;(2)利用WINRAR、WINZIP 等软件制作自解压捆绑木马;(3)利用软件打包软件制作捆绑木马;(4)利用多媒体影音文件传播。
2.木马隐藏隐藏是一切恶意程序生存之本。
以下是木马的几种隐藏手段:(1)进程隐蔽:伪隐藏,就是指程序的进程仍然存在,只不过是让它消失在进程列表里。
真隐藏则是让程序彻底的消失,不以一个进程或者服务的方式工作,做为一个线程,一个其他应用程序的线程,把自身注入其他应用程序的地址空间。
(2)伪装成图像文件:即将木马图标修改成图像文件图标。
(3)伪装成应用程序扩展组件:将木马程序写成任何类型的文件(如dll,ocx等),然后挂在十分出名的软件中。
因为人们一般不怀疑这些软件。
(4)错觉欺骗:利用人的错觉,例如故意混淆文件名中的1(数字)与l(L的小写)、0(数字)与o(字母)或O(字母)。
湖北大学高等教育自学考试本科毕业生论文评审表论文题目:计算机木马病毒研究与防范姓名:李宝君专业:计算机应用技术办学点:郧阳师范高等专科学校学生类型:独立本科段(助学班/独立本科段)2014年 12月 18日湖北大学高等教育自学考试办公室印制论文内容摘要目录第一章.木马病毒的概述 (5)1.1木马的的定义 (5)1.2木马的基本特征 (5)1.3木马的传播途径 (6)1.4木马病毒的危害 (6)第二章.木马病毒的现状 (7)2.1特洛伊木马的发展 (7)2.2 木马病毒的种类 (7)第三章.木马病毒的基本原理 (10)4.1木马病毒的加载技术 (10)4.1.1 系统启动自动加载 (10)4.1.2 文件劫持 (10)4.2 木马病毒的隐藏技术 (10)第四章.木马病毒的防范 (12)5.1基于用户的防范措施 (12)5.2基于服务器端的防范措施 (13)5.3加强计算机网络管理 (15)致谢 (16)参考文献 (17)第一章木马病毒的概述1.1木马的的定义木马的全称是“特洛伊木马”,是一种新型的计算机网络病毒程序,是一种基于远程控制的黑客工具,它利用自身具有的植入功能,或依附具有传播功能的病毒,进驻目标机器监听、修改。
窃取文件。
1.2木马的基本特征(1)隐蔽性是其首要的特征当用户执行正常程序时,在难以察觉的情况下,完成危害影虎的操作,具有隐蔽性。
它的隐蔽性主要体现在6个方面:1.不产生图标、2.文件隐藏、3.在专用文件夹中隐藏、4.自动在任务管理其中隐形、5.无声无息的启动、6.伪装成驱动程序及动态链接库(2)它具有自动运行性它是一个当你系统启动时即自动运行的程序,所以它必需潜入在你的启动配置文件中,如win.ini、system.ini、winstart.bat以及启动组等文件之中。
(3)木马程序具有欺骗性木马程序要达到其长期隐蔽的目的,就必需借助系统中已有的文件,以防被你发现,它经常使用的是常见的文件名或扩展名,如“dll\win\sys\explorer等字样,或者仿制一些不易被人区别的文件名,如字母“l”与数字“1”、字母“o”与数字“0”,常修改基本文件中的这些难以分辨的字符,更有甚者干脆就借用系统文件中已有的文件名,只不过它保存在不同路径之中。
木马程序是如何实现隐藏的木马是一种基于远程控制的病毒程序,该程序具有很强的隐蔽性和危害性,它可以在人不知鬼不觉的状态下控制你或者监视你。
有人说,既然木马这么厉害,那我离它远一点不就可以了!然而这个木马实在是“淘气”,它可不管你是否欢迎,只要它高兴,它就会想法设法地闯到你“家”中来的!哎呀,那还了得,赶快看看自己的电脑中有没有木马,说不定正在“家”中兴风作浪呢!那我怎么知道木马在哪里呢,相信不熟悉木马的菜鸟们肯定想知道这样的问题。
下面就是木马潜伏的诡招,看了以后不要忘记采取绝招来对付这些损招哟!1、集成到程序中其实木马也是一个服务器-客户端程序,它为了不让用户能轻易地把它删除,就常常集成到程序里,一旦用户激活木马程序,那么木马文件和某一应用程序捆绑在一起,然后上传到服务端覆盖原文件,这样即使木马被删除了,只要运行捆绑了木马的应用程序,木马又会被安装上去了。
绑定到某一应用程序中,如绑定到系统文件,那么每一次Windows启动均会启动木马。
2、隐藏在配置文件中木马实在是太狡猾,知道菜鸟们平时使用的是图形化界面的操作系统,对于那些已经不太重要的配置文件大多数是不闻不问了,这正好给木马提供了一个藏身之处。
而且利用配置文件的特殊作用,木马很容易就能在大家的计算机中运行、发作,从而偷窥或者监视大家。
不过,现在这种方式不是很隐蔽,容易被发现,所以在Autoexec.bat和Config.sys中加载木马程序的并不多见,但也不能因此而掉以轻心哦。
3、潜伏在Win.ini中木马要想达到控制或者监视计算机的目的,必须要运行,然而没有人会傻到自己在自己的计算机中运行这个该死的木马。
当然,木马也早有心理准备,知道人类是高智商的动物,不会帮助它工作的,因此它必须找一个既安全又能在系统启动时自动运行的地方,于是潜伏在Win.ini中是木马感觉比较惬意的地方。
大家不妨打开Win.ini来看看,在它的[windows]字段中有启动命令“load=”和“run=”,在一般情况下“=”后面是空白的,如果有后跟程序,比方说是这个样子:run=c:\windows\file.exe load=c:\windows\file.exe这时你就要小心了,这个file.exe很可能是木马哦。
基于进程和通信隐藏的木马设计与实现摘要近年来,特洛伊木马等恶意代码己经成为网络安全的重要威胁。
很多国家都采取积极的网络安全防御措施,投入大量的人力和物力研究网络信息安全技术。
文章首先分析了传统木马的一般工作原理及其植入、加载、隐藏等关键技术。
随着网络技术的不断更新和发展,木马技术也在不断地更新换代,现代木马的进程隐藏和通信隐藏等等都发生了变化。
进程的隐藏和通信的隐藏一直是木马程序设计者不断探求的重要技术。
攻击者为达到进程隐藏的目的,采用远程线程和动态链接库,将木马作为线程隐藏在其他进程中。
选用一般安全策略都允许的端口通信,如80端口,则可轻易穿透防火墙和避过入侵检测系统等安全机制的检测,从而具有很强的隐蔽性。
本文研究了如何将Windows环境下的动态链接库(DLL)技术与远程线程插入技术结合起来实现特洛伊木马植入的新方案。
在该方案中,提出了特洛伊木马程序DLL模块化,并且创建了独立的特洛伊木马植入应用程序,将木马程序的DLL模块植入宿主进程。
实验结果证明该方案能实现的木马植入,具有很好的隐蔽性和灵活性。
关键词:特洛伊木马;动态连接库;进程插入;远程线程The Design and Implementation of Trojan Horses Base on Process Hiding and Communications HidingAbstractIn recent years,malicious codes including Trojan have threatened network information security, and more and more countries paid attention to take active measures to protect the network, and spent a lot in research to develop network information security technology mentally and materially. This paper firstly analyses the basic principle, entry technology, load technology and hiding technology of traditional Trojan horse. With the development of network technology, Trojan horse technology is upgrading constantly. Modern Trojan horse is changed in process hiding and communication hiding.The process hiding and communications hiding are important technology being explored by Trojan horse programmers all long. Adopting the measure of dynamic link storage, and Remote Thread technology, and hiding Trojan horse behind the other processes as a thread program, it is easy to hide. Choosing the port correspondence which is permitted by almost all the ordinary security policy, likes 80port, may easily penetrate the firewall and avoid the examine of security systems as invasion-checking mechanisms and so on. Thus, it has a very strong covered.This paper is implemented the injection of Trojan horse by combining the technology of DLL (dynamic linking library) and of remote thread injection on the Windows platform. In this paper, modularization of Trojan horse process is proposed to create an independent Trojan horse injection process, thus, to inject Trojan horse DLL module to the host process.Experimental results show that the program could realize the Trojan injected with good covered and flexibility.Key Words:Trojan Horse;DLL;Process Injection;Remote Thread目录论文总页数:23页1 引言 (1)2 特洛伊木马简介 (1)2.1 认识木马 (2)2.2 木马原理 (2)2.3 木马的危害 (3)2.4 常见木马的介绍 (3)3 木马隐藏概述 (4)3.1 本地隐藏 (4)3.2 通信隐藏 (8)4 隐藏技术的实现 (10)4.1 隐藏进程 (10)4.2 隐藏通信 (14)4.3 木马功能的实现 (15)5 系统测试 (19)5.1功能测试 (19)5.2性能测试 (20)结论 (21)参考文献 (21)致谢 (22)声明 (23)1引言近年来,黑客攻击层出不穷,对网络安全构成了极大的威胁。
特洛伊木马的隐藏技术浅析王海青【摘要】文章着重从木马的文件隐藏、进程隐藏、通信隐藏三个方面系统分析了木马的隐藏技术.【期刊名称】《甘肃广播电视大学学报》【年(卷),期】2010(020)002【总页数】2页(P63-64)【关键词】木马;文件隐藏;进程隐藏;通信隐藏【作者】王海青【作者单位】甘肃广播电视大学,继续教育学院,甘肃,兰州,730030【正文语种】中文【中图分类】TP393.8随着病毒编写技术的发展,木马程序对用户的威胁越来越大,为了不被目标系统用户及管理员发现,木马通过各种技术手段把自己的运行形式进行隐蔽。
1.文件隐藏木马程序植入目标系统后,会在目标系统的磁盘上加以隐蔽欺骗用户。
隐藏、保护木马文件的主要方式有:(1)嵌入隐藏。
采用此隐蔽手段的木马通常有以下两种形式:插入到某程序中和与某程序捆绑到一起,一旦运行程序就会启动木马。
如绑定到系统文件中,在系统启动时木马也跟随启动;或者捆绑常用程序,这样程序一旦被点击木马就会运行加载,使用户难以防范。
(2)伪装隐藏。
利用自身外部特征的多变性进行伪装,以单独的文件存在,同时定制好了文件名,修改与文件系统操作有关的程序,伪装成正常的文件或者非可执行文件,再将文件属性修改为系统隐蔽或者只读。
如木马文件把图标改成Windows 的一些非可执行文件的默认图标,再把文件名改为*.jpg.exe、*.txt.exe等,由于Windows默认设置是“不显示已知的文件后缀名”,因此木马文件将会显示为*.jpg、*.txt等。
(3)替换隐藏。
木马通过修改自身的DLL替换目标文件的系统DLL文件,替换的基础上不增加新的文件,也不需要打开新的端口或者监听端口,替换之后,对于正常的系统调用还照常进行,只有在木马的控制端向被控制端发出指令后,隐藏的程序才开始运行。
2.进程隐藏木马将自身作为DLL插入别的进程空间后,用查看进程的方式无法找出木马的踪迹,看到的仅仅是一些正常程序的进程,但木马却已经偷偷潜入其中了。
详解常用的木马隐身术武林安全网-电脑资料一、对木马使用花指令花指令就是指程序中包括了跳转指令及一些无用的指令在内的汇编指令段,有加区加花和去头加花两种,通常是用来改变程序的入口点或打乱整个程序的顺序,。
而一些杀毒软件在进行木马查杀工作时,都是按从程序的开头到结尾的顺序进行检测的,以此来找到与病毒库中某一特征码相似的特征。
甚至一些杀毒软件就是以程序的入口点作为特征码的。
因此,如果木马的程序顺序被打乱,或者程序的入口点被修改,那么,杀毒软件也就很难检测出它来,于是就达到了隐身的目的。
能完成这些工作的,就是在木马程序中使用花指令。
要在木马程序中使用花指令,可以有两种方式,一种是使用互联网上现成的,另一种是攻击者自己编写或者使用花指令生成软件。
由于互联网上现成的花指令同样会被杀毒软件厂商所得到,因此不会有什么好的保护效果。
对于有一定汇编技术的攻击者来说,就会使用自己编写花指令的方式,还可以使用一些花指令生成软件,如超级加花器和花蝴蝶等。
正是由于给木马添加不易被检测到的花指令需要高超的编程技术,也就很少有普通的攻击者使用这种方式,至少在没有陌生的花指令生成软件出现之前,是不太喜欢使用它的。
并且,由于对木马使用花指令也只是对其可执行文件本身有效,当其加载至内存后,这种隐身方式将失去作用。
因此,使用具有内存查杀功能的杀毒软件,就能够非常容易地检测到只使用这种隐身方式的木马病毒的。
在当前具有内存查杀功能的安全软件之中,查杀花指令保护木马比较好的就是EWIDO了。
也可以使用Ollydbg程序先将木马加入到内存中后再查杀。
同时,还可以使用像“花指令清除器”一类的花指令检测软件,来识别和除去花指令。
二、终止安全软件进程现在,几乎所有的木马都在使用一种十分有效的、躲避安全检测软件的方法,就是终止系统中所有安全软件的进程,从而达到了不会被查杀的目的。
而要实现这种功能,只要木马能够枚举系统中的所有正在运行的进程,然后从中找到匹配的安全软件进程名,通过发送一个终止进程的Windows消息给它,就可以结束这些正在运行的安全软件,电脑资料《详解常用的木马隐身术武林安全网》(https://www.)。
1引言特洛伊木马(简称木马)是指一类伪装成合法程序或隐藏在合法程序中的恶意代码,这些代码或者执行恶意行为,或者为非授权访问系统的特权功能而提供后门。
木马的首要特征是它的隐蔽性,为了提高自身的生存能力,木马会采用各种手段来伪装隐藏以使被感染的系统表现正常。
FredCohen等人[1,2]对病毒进行了深入研究,他们将木马作为病毒的一种特例,并给出了病毒和木马的数学模型,但未对木马的隐藏特征进行分析。
HaroldThimbleby等人[3]对病毒和木马模型框架进行了研究,给出了木马的形式化模型,对木马隐藏的特征进行了描述,但未对木马协同隐藏进行描述和分析。
张新宇等人[4]仅对Linux环境下的木马隐藏(包括协同隐藏)进行了研究,但未涉及Windows环境。
笔者在对木马隐藏技术归纳研究的基础上,深入分析研究了协同隐藏,并针对现有木马对抗实时检测的缺陷和通信隐藏能力的不足,提出两种基于该思想的新型木马结构,深化了协同隐藏思想,提高了木马的隐藏能力和生存能力。
2隐藏技术木马程序与普通远程管理程序的一个显著区别是它的隐藏性。
木马被植入后,通常利用各种手段来隐藏痕迹,以避免被发现和追踪,尽可能延长生存期。
隐藏技术是木马的关键技术之一,笔者从本地隐藏、通信隐藏和协同隐藏3个方面对木马隐藏技术进行分析研究。
2.1本地隐藏本地隐藏是指木马为防止被本地用户发现而采取的隐藏手段,主要包括启动隐藏、文件隐藏、进程隐藏、内核模块隐藏、原始分发隐藏等。
这些手段可以分为三类:(1)将木马隐藏(附着、捆绑或替换)在合法程序中;(2)修改或替换相应的检测程序,对有关木马的输出信息进行隐蔽处理;(3)利用检测程序本身的工作机制或缺陷巧妙地避过木马检测。
2.1.1启动隐藏启动隐藏,是指目标机自动加载运行木马程序,而不被用户发现。
在Windows系统中,比较典型的木马启动方式有:修改系统“启动”项;修改注册表的相关键值;插入常见默认启动服务;修改系统配置文件(Config.sys、Win.ini和System.ini等);修改“组策略”等。
引言木马通常需要利用一定的通信方式进行信息交流(如接收控制者的指令、向控制端传递信息等)。
系统和应用程序一般采用TCP/UDP通信端口的形式与控制端进行通信。
木马一般也是利用TCP/UDP端口与控制端进行通信。
通常情况下,木马进行通信时直接打开一个或几个属于自己的TCP/UDP端口。
早期的木马在系统中运行后都是打开固定的端口,后来的木马在植入时可随机设定通信时打开的端口,具有了一定的随机性。
可是通过端口扫描很容易发现这些可疑的通信端口。
事实上,目前的许多木马检测软件正是通过扫描本地和远程主机系统中打开的已知木马端口进行木马检测的。
木马通信端口成为暴露木马形踪一个很不安全的因素。
为此采用新技术的木马对其通信形式进行了隐蔽和变通,使其很难被端口扫描发现。
2木马通信形式的隐蔽技术木马为隐蔽通信形式所采用的手段有:端口寄生、反弹端口、潜伏技术,嗅探技术。
2.1端口寄生端口寄生指木马寄生在系统中一个已经打开的通信端口,如TCP80端口,木马平时只是监听此端口,遇到特殊的指令才进行解释执行。
此时木马实际上是寄生在系统中已有的系统服务和应用程序之上的,因此,在扫描或查看系统中通信端口时是不会发现异常的。
在Windows9X系统中进行此类操作相对比较简单,但是在WindowsNT/2K系统中实现端口寄生相对比较麻烦。
在控制端与木马进行通信时,如木马所在目标系统有防火墙的保护,控制端向木马发起主动连接就有可能被过滤掉。
2.2反弹端口反弹端口就是木马针对防火墙所采用的技术[1]。
防火墙对于向内的链接进行非常严格的过滤,对于向外的连接比较信任。
与一般的木马相反,反弹端口木马使用主动端口,控制端使用被动端口。
木马定时监测控制端的存在,发现控制端上线,立即主动连接控制端打开的被动端口。
为了隐蔽起见,控制端的被动端口一般开在TCP80。
这样,即使用户使用端口扫描软件检查自己的端口,发现的也是类似TCPUSERIP:1026CONTROLLERIP:80ESTABLISHED这种情况,用户可能误认为是自己在浏览网页。
木马隐藏技术分析郜多投(山东大学山东省济南市250100)摘要:文章首先介绍了木马的原理和特征,然后对木马所实现的功能做了简单的介绍,最后从木马的文件隐藏,进程隐藏和通信隐藏三个方面着重进行了分析。
关键词:木马;木马隐藏;通信隐藏[引言]木马,是一种通过潜入对方电脑进非法操作的计算机成程序,是目前黑客惯用的一种攻击手段,和一般的恶意软件不同,木马不主动进行自我复制和传播,破坏其他程序,然而,木马的潜伏性是超前的,为了看起来和正常程序一样,在进入系统之前,对自身的程序进行了伪装,使被感染的系统看起来一切正常,从而严重威胁计算机网络安全。
1.木马的原理和特征一个完整的木马程序包含两部分内容,服务端和控制端,服务端程序是通过远程计算机网络植入对方电脑,而黑客通过客户端进入运行了服务端的受控电脑,通常运行了服务端的计算机会生成一个类似于系统文件的进程,此时端口被暗中打开,电脑中保存的各类数据会向控制端进行发送,黑客也可以通过这些暗中打开的端口进入目标电脑,此时,电脑中更多的隐私将会遭受更大的泄露。
木马一般具有以下特征:一,隐藏性,隐藏性是木马的最显著特征,比如,改写进程名称使其和系统文件高度相似,隐藏在任务管理器中的进程,减少程序大小,减少暗中打开端口的流量。
二、自动运行性,可以随电脑启动而启动,比如潜入启动配置文件win.ini,winstart。
Bat等,有的也可嵌入正常软件,随软件的运行而启动。
三、欺骗性:木马为了防止被发现,通常伪装成为系统中本身存在的文件,比武将文件名中的“O”改为“0”,“1改为I”等容易混淆是非的字符,或者有的系统中本身的文件名也可被木马直接套用,只不过是保存在不同的系统路径下,另外,有的木马将自己改装成为ZIP压缩文件,当用户解压时,直接运行。
四、自我恢复性。
目前大多数木马程序的功能模块已不是单一的组件构成,而是自动复制到电脑其他路径做备份,在子木马或者主木马被删除时,都可以再自动生成。
2003年3月JOU RNAL O F HOHA IUN I V ERSITY CHAN GZHOU M ar.2003 文章编号:100921130(2003)0120069204木马程序的隐藏机理及有效检测手段吴云燕, 裴开平, 许 涛, 刘宪成(河海大学计算机及信息工程学院,江苏常州 213022)摘要:在V C++下,对木马程序在任务栏和任务列表中的隐藏机理进行了剖析,并结合进程和注册表的相关知识提出了一些有效检测手段.关键词:木马程序;黑客;函数;进程;注册表中图分类号:T P393.09 文献标识码:B 随着计算机的不断发展,网络中的安全问题日趋严重.一类称为“特洛伊木马”的黑客程序,一旦被植入用户计算机,就如同木马屠城记中的木马一般,与黑客里应外合,可以对被感染的计算机随心所欲地进行监视、破坏,造成极大的危害.本文在V C++下,对木马程序的隐藏机理进行剖析,并结合进程和注册表的相关知识提出一些有效检测手段.1 黑客软件隐藏程序的机理分析 由于木马程序是一种恶意程序,它必须在被攻击者没有察觉的情况下悄悄启动运行,否则,也就失去了为黑客提供后门的作用,所以它不是像其它程序一样公开显示在任务栏和任务列表中,而是想方设法加以隐藏.1.1 程序在任务栏中的隐藏原机理.程序在任务栏的隐藏比较简单,首先要保证程序主界面的隐藏,这可以通过修改应用程序类的初始化实例函数In itlnstance()的ShowW indow()语句来实现,即将S W SHOW参数改为S W H I D E.主界面隐藏的同时,任务栏虽然也会消失,但在程序启动时会闪一下,因此还需要修改程序的扩展属性,即去掉原有的W S EX A PP W I NDOW属性,并新添加一个W S EX TOOLW I NDOW属性,这样,系统会将其认为是一个工具条窗口,而不会在任务栏中加以显示.为实现这一点,有一种很简便的M FC的写法:在程序框架类的预创建窗口函数里,直接对CR EA T ESTRU CT结构对象进行逻辑操作,以改变程序属性:cs.style=W S PO PU P;cs.dw ExStyle =W S EX TOOLW I NDOW;1.2 程序在任务列表中的隐藏原理任务列表(按下C trl+A lt+D el键时弹出的对话框)显示了当前系统正在运行的一些应用程序,有经验的用户可以通过观察任务列表而发现一些值得怀疑的应用程序而在此将其关闭;收稿日期:2002209216作者简介:吴云燕(1974-),女,江苏武进人,助教,计算机应用专业.07 河 海 大 学 常 州 分 校 学 报 2003年3月所以大多数黑软也都设法通过较复杂的手段实现了自身在任务列表中的隐藏,使被发现的机会大大降低.在W in9x中,一般每个应用程序都要通过一个A P I(应用程序接口)函数R egisterSer2 viceP rocess()向系统申请注册成为一个服务进程,并且通过这个函数结束该服务进程的运行.如果一个进程注册为一个服务进程,那么通过C trl+A lt+D el就可以在任务列表里看见该进程的标题;而如果一个进程运行了但没有向系统申请注册成为服务进程,那么它就不会在任务列表里显示.黑软正是利用这个原理,使自身在运行时能在任务列表中实现隐藏.该函数存放于系统内核Kernel32.dll中,具体声明如下:DWORD R egisterServiceP rocess(DWORD dw P rocessId,DWORD dw T ype);其第一个参数指定当前进程的进程标识,若是0,则为服务进程(会在任务列表中显示);第二个参数指出是注册还是注销当前进程,其状态分别为:R SP S I M PL E SERV I CE和R SP UN R EG IST ER SERV I CE.黑软一般是在程序启动初始化时,首先从Kernel32.dll动态连接库中将R egisterServiceP rocess()函数加载到内存,然后再通过设置该函数的第一个参数,将程序从任务列表中隐藏.另外,还有一部分黑软是通过ShowW indowA sync()函数启动一个新的线程来显示一个新窗口的.该函数的原形为:BOOL ShowW indowA sync(HWND h W nd,int nCm dShow),其第二个参数可以设置窗体显示状态,若设置成S W H I D E,就可以使目标窗体(木马程序)从任务列表中隐藏.2 如何有效地找出可能隐藏的木马程序2.1 进程监控进程通常被定义为一个正在运行的程序的实例.它由两部分组成:(a)操作系统用来管理进程的内核对象,内核对象是系统用来存放关于进程的统计信息的地方;(b)地址空间,包含所有可执行模块或DLL模块的代码和数据,还包括动态内存分配的空间,如线程的堆栈和堆分配空间.进程监控技术是追踪木马后门的一个有力武器.因为90%以上的木马和后门是以进程的形式存在的,所以如果能设法显示内存中所有的进程及进程调用的所有模块文件(DLL),就比较容易发现入侵进程.异常的用户进程或者异常的资源占用都有可能是非法进程.W indow s2 2000的工具taskm gr.exe可以比较详细地查看当前系统进程信息,但它是W indow s GU I程序,需在命令行下使用,不太方便,为此可结合系统函数,编写一些小程序显示所有系统进程.M S的W indow sN T开发小组开发了自己P rocess Status(进程状态)函数.这些函数包含在PSA P I.DLL文件中,只能在高于N T4.0以后的版本中使用.PSA P I共有14个函数.通过调用这些函数,可以很方便地获取系统进程的所有信息,例如进程名、进程I D、父进程I D、进程优先级、映射到进程空间的模块列表等等.为方便起见,以下程序只获取进程的名字和I D.M odules.c ∥调用PSA P I函数枚举系统进程名和I D#include"p sap i.h"vo id P rin tP rocess N a m e A nd I D(DWORD p rocessI D){char szP rocess N a m e[M A X PA TH]="unknow n";HANDL E hP rocess =OpenP rocess (PROCESS QU ER Y I N FORM A T I ON PROCESS VM R EAD ,FAL SE ,p rocessI D ); ∥取得进程的句柄if (hP rocess ){HM ODUL E h M od ; DWORD cbN eeded ;if (Enum P rocess M odules (hP rocess ,&h M od ,sizeof (h M od ), &cbN eeded ))Get M odule Base N a m e (hP rocess ,h M od ,szP rocess N a m e ,sizeof (szP rocess N a m e ));} ∥取得进程名称p rintf (" n %220s %220d ",szP rocess N a m e ,p roessI D ); ∥回显进程名称和I DC l oseH andle (hP rocess );}vo id m ain () ∥枚举系统进程I D 列表{DWORD aP rocesses [1024],cbN eeded ,cP rocesses ;unsigned int i ;if (!Enum P rocesses (aP rocesses ,sizeof (aP rocesses ),&cbN eeded ))return ;cP rocesses =cbN eeded sizeof (DWORD ); ∥计算进程数量for (i =0;i <cP rocesses ;i ++)P rin tP rocess N a m e A nd I D (aP rocesses [i ]); ∥输出每个进程的名称和I Dreturn ;} 以上方法仅适合N T 系统,因为PSA P I 函数只能枚举N T 系统的进程.在W indow s 9x 环境下可以通过调用Tool H el p A P I 函数来达到枚举系统进程的目的.Too l H el p 共有12个函数,通过调用这些函数一样可以取得本地系统进程的详细信息.2.2 注册表校验从W indow s 95开始,微软公司就在视窗系统中引入了注册表的概念[1].注册表代替了以往用于M s 2Do s 、W indow s 以及M icro s oft L an M anager 中的许多.in i 、.sys 和.com 配置文件.注册表是视窗系统的一个核心数据库,在这个数据库中存放了与系统相关的各种参数,这些参数包含系统的启动信息、硬件的驱动程序安装信息,以及在视窗系统上运行的各种应用程序的注册信息等.在系统安装之后,所有的操作都可以在注册表中得到体现,甚至连隐藏较深的木马程序也无法遁形.所以,用校验注册表来发现入侵进程.也是常用的手法之一.许多黑软喜欢在注册表中将木马程序设置成自动运行,而在注册表中可设置成自动运行的项分为三类,下面分别加以讨论[2].a .一进入W indow s 就自动运行.这是一般最常见的项,也是许多对注册表了解的W in 2dow s 用户们所熟知的地方,例如:H KEY LOCALM A CH I N E SO FTWA R E M icros oft W indos w s CurrentV ersi on R un H KEY LOCALM A CH I N E SO FTWA R E M icros oft W indow s CurrentV ersi onR unServices O nce(W in 9x 与W in M E 才有)H KEYCU RR EN T U SER SO FTWA R E M icros oft W indos w s CurrentV ersi on R un H KEY CU RR EN T U SER SO FTWA R E M icros oft W indos w s CurrentV ersi on R unO nce 用户可以从这些项目下找出那些既不是W indow s 系统的也不是自己已安装的程序.这些程序很可能是黑客植入计算机的木马程序,清除它们.17第17卷第1期 吴云燕,等 木马程序的隐藏机理及有效检测手段27 河 海 大 学 常 州 分 校 学 报 2003年3月b.自动载入运行的DLL文件.有些木马程序可能会设计成.DLL或.V XD的形式,一旦进入W indow s,系统就以自动载入驱动程序的方式运行.虽然目前这类木马程序(或病毒程序)很少见,但在理论上是可行的,因此为了彻底有效地查找与摧毁可能存在的木马程序,必须检测W indow s载入各类驱动程序的设置项:H KEY LOCAL M A CH I N E SYST E M Con tro lSet001 ServicesH KEY LOCAL M A CH I N E SYST E M Con tro lSet002 ServicesH KEY LOCAL M A CH I N E SYST E M Con tro lSet003 ServicesH KEY LOCAL M A CH I N E SYST E M Curren tCon trolSet Services由于这些项中许多设置都与系统或外围设备有关,所以一定要特别小心,只有在确认是木马程序后才可删除.c.运行其他文件时附带运行.这是一个非常特殊的项.通过设置该项,每次运行任何一个可执行程序文件时,便能乘机运行一次木马程序,如此就可以保持木马程序一直在被攻击者的W indow s中运行,而且这一项也很难被注意或发现.该项如下:H KEY CLA SSSES ROO T Exefile Shell Open Comm and@=" "%1 "%3"这里@=" "%1 "%3"是一般正常的值,但若其中包含一个程序文件名,例如:@=" w indo s.exe "%1 "%3"则其中的程序文件w indo s.exe有极大可能是木马程序,应以清除.参考文献:[1] 晶辰工作室.W indow s2000Server系统管理实用教程[M].北京:电子工业出版社,2000.[2] 程秉辉,John H.黑客任务实战[M].北京:希望电子出版社,2000.The H i di n g M echan is m and D etcti n g M ethodsof Trojan Horse ProgramW U Yun-yan, PE I Ka i-p i n g, XU Tao, L I U Xi a n-cheng(College of Computer&Infor m ati on Engineering,Hohai U niv.,Changzhou213022,Ch ina)Abstract:T h is paper analyzes how T ro jan Horse P rogra m s h ide the m selves in task lists.Som e ef2 ficien t detecting m ethods com bined w ith the related p rocess and registry p rinci p les,are put for2 w ard.Key words:T ro jan horse p rogra m;hacker;functi on;p rocess;registry。
木马的隐藏技术探讨摘要:木马所从事的是“地下工作”,因此它必须隐藏起来,想尽一切办法不让用户发现它。
木马最显著的特征就是隐蔽性,它对隐藏技术也是多种多样,本文对常用隐藏技术进行探讨。
关键词:木马隐藏技术端口启动由于木马所从事的是“地下工作”,因此它必须隐藏起来,并想尽一切办法不让用户发现它。
这也是木马区别于远程控制软件的最重要的特点。
下面我探讨一下木马通常的隐藏技术,(1)在任务管理器里隐藏。
查看正在运行的进程最简单的方法就是按下Ctrl +Alt+DeI键时出现的任务管理器。
木马会千方百计地伪装自己,使自己不出现在任务管理器里。
木马发现把自己没为“系统服务”就可以轻松地欺骗用户。
因此,希望通过按Ctrl+Alt+Del键发现木马是不大现实的,(2)在任务栏中隐藏。
这是最基本的隐藏方式,如果在Win-dows的任务栏里出现一个莫名其妙的图标,谁都会明白是怎么回事。
要实现在任务栏中隐藏,在编程时可以很容易地实现,以VB为例,在VB中只要把from的Visible属性设置为False.Showl-nTaskBar设为False程序就不会在任务栏中出现。
(3)端口修改。
一台机器有65536个端口,通常用户无法注意到如此多端口,而木马不一样,它特别注意用户的端口。
如果用户稍微留意,不难发现大多数木马使用的端口在1024以上,而且呈越来越大的趋势;当然也有占用1024以下端口的木马,但这些端口是常用端口,且占用这些端口容易造成系统不正常,这样的话,木马就会很容易暴露。
有此用户可能知道一些木马占用的端口,他会经常扫描这些端口,但现在的木马都具有端口修改功能,所以用户很难有时间扫描全部的65536个端口。
(4]隐藏通讯。
隐藏通讯也是木马经常采用的手段之一。
任何木马运行后都要和攻击者进行通讯连接,或者通过即时连接,木马把侵入主机的敏感信息送给攻击者。
现在大部分木马一般在占领主机后会在1024以上不易发现的高端口上驻留:有一些木马会选择一些常用的端口,如80,23。
对木马隐藏技术的研究
计算机病毒、木马以及网络蠕虫等恶意程序对网络安全构成了巨大的威胁。
其中木马的破坏最大,它能在高隐蔽性的状态下窃取网民的隐私信息。
通常,被感染木马的计算机用户并不知道自己的计算机已被感染,这是由于木马程序具有很高的隐蔽性。
木马的隐藏技术主要由以下三种:
1、程序隐蔽
木马程序隐藏通常指利用各种手段伪装木马程序,让一般用户无法从表面上直接识别出木马程序。
要达到这一目的可以通过程序捆绑的方式实现。
程序捆绑方式是将多个exe 程序链接在一起组合成一个exe 文件,当运行该exe 文件时,多个程序同时运行。
程序捆绑有多种方式,如将多个exe 文件以资源形式组合到一个exe 文件中或者利用专用的安装打包工具将多个exe 文件进行组合,这也是许多程序捆绑流氓软件的做法。
2、进程隐蔽
隐藏木马程序的进程的显示能防止用户通过任务管理器查看到木马程序的进程,从而提高木马程序的隐蔽性。
目前,隐藏木马进程主要有如下两种方式:(1)API拦截
API 拦截技术属于进程伪隐藏方式。
它通过利用Hook技术监控并截获系统中某些程序对进程显示的API 函数调用,然后修改函数返回的进程信息,将自己从结果中删除,导致任务管理器等工具无法显示该木马进程。
具体实现过程是,木马程序建立一个后台的系统钩子(Hook),拦截PSAPI的EnumProcessModules 等相关函数的调用,当检测到结果为该木马程序的进程ID(PID)的时候直接跳过,这样进程信息中就不会包含该木马程序的进程,从而达到了隐藏木马进程的目的。
(2)远程线程注入
远程线程注入属于进程真隐藏方式。
它主要是利用CreateRemoteThread 函数在某一个目标进程中创建远程线程,共享目标进程的地址空间,并获得目标进程的相关权限,从而修改目标进程内部数据和启动DLL 木马。
通过这种方式启动的DLL 木马占用的是目标进程的地址空间,而且自身是作为目标进程的一个线程,所以它不会出现在进程列表中。
3、通信隐藏
进程隐藏可以进一步加强其隐蔽性。
但是仍然可以从通信连接的状况中发现木马程序的踪迹。
因此,很有必要实现木马程序的通信隐藏。
本文给出了以下两种通信隐藏技术的实现思想。
4、协同隐藏
木马协同隐藏思想通常是综合利用各种木马隐藏技术,通过木马子程序或者木马程序之间相互协作,实现更高的隐蔽性。
木马协同隐藏技术摆脱了传统隐藏技术仅靠单一木马、单一技术的方式,它能够从宏观整体出发,设计更加强大的木马协作隐藏模型。
“灰鸽子”木马病毒
常见木马机器隐藏技术
以灰鸽子变种木马为例,灰鸽子变种木马运行后,会自我复制到Windows 目录下,并自行将安装程序删除。
修改注册表,将病毒文件注册为服务项实现开机自启。
木马程序还会注入所有的进程中,隐藏自我,防止被杀毒软件查杀。
自
动开启IE浏览器,以便与外界进行通信,侦听黑客指令,在用户不知情的情况下连接黑客指定站点,盗取用户信息、下载其它特定程序。