利用线程注射技术隐藏的病毒之完全分析
想方设法隐藏自己是病毒的天性,在业界对病毒的定义里,“隐蔽性”就是病毒的一个最基本特征,任何病毒都希望在被感染的计算机中隐藏起来不被发现,因为病毒都只有在不被发现的情况下,才能实施其破坏行为。为了达到这个目的,许多病毒使用了各种不同的技术来躲避反病毒软件的检验,这样就产生了各种各样令普通用户头痛的病毒隐藏形式。由于木马后门的行为特征已具备病毒条件,因此这里把木马后门也统一归纳为病毒来描述。
历史源流:隐藏窗口 、隐藏进程 、隐藏文件
在计算机流行的早期,计算机病毒和木马后门等危害程序在普通用户范围的普及并不是很广泛,这个时期的用户群对计算机和网络安全的防范意识可以说是几乎没有的,普通用户的系统也多为脆弱的Windows 95/98系列和电话线拨号的慢速网络,而那一段时间正是外国木马“bo”和国产木马雏形“冰河”、“netspy”等在如今看来各方面技术都颇为简单的远程控制软件大行其道的黄金时期,很多用户根本就没有防火墙和杀毒软件(即使有,也是以杀cih的为主),即使远方的黑客把用户的计算机翻了个底朝天,用户也不会有所察觉,这一时期接触此类技术的人相对较少,因此并未造成如今这个病毒到处蔓延的局面。
因为这个阶段国内用户的机器环境仍然以Windows 9x为主流,所以病毒编写者们并不需要消耗太多的脑筋就可以做到让病毒悄无声息运行的效果,并让它在alt+del+ctrl呼出的任务管理器中不可见。
我们都知道,在Windows下运行的程序界面都被定义为“窗口”,程序通过这个途径与用户产生交互,每个完整的程序都必须拥有至少一个窗口,但是如果编写者将这个窗口在运行期间设置为“不可见”呢?这样一来,用户就不会察觉到这个程序在桌面上运行了,但是如果有一定经验的用户打开任务管理器,他就会因为发现系统里多出来的进程而产生怀疑,因此病毒编写者在这个时期采取了初级形式的隐藏手段:隐藏进程。
其实所谓隐藏进程,是利用微软未公开的一个api(application programming interface,应用程序接口)函数“registerserviceprocess”将自身注册为“服务进程”,而恰巧Windows 9x中的任务管理器是不会显示此类进程的,结果就被病毒钻了空子,让“冰河”等木马在国内大部分普通用户的机器上安家落户。
而早期后门技术里,还有一个最基本的行为就是隐藏文件,与今天的各种隐藏手段相比,它可谓是“不入流”级别了——这里提到的“隐藏”,就是简单的将文件属性设置为“隐藏”而已,除此之外,再无别的保护手段了,然而,由于系统设计时为了避免初学者胡乱删除文件而默认“不显示系统和隐藏文件”的做法(到了Windows 2000/xp时代,这个做法更升级到“隐藏受保护的系统文件”了),却恰好给这些病毒提供了天然的隐身场所——大部分对电脑操作不熟悉的用户根本不知道“隐藏文件”的含义,更别提设置为“显示所有文件”了,在那个安全软件厂商刚开始探索市场的时代,用户更是不会留意太多安全产品及其实际含义,因而这个时期成了各种初期木马技术发展的重要阶段,利用这种手段制作的木马被统称为“第一代木马”。
以现在的技术和眼光看来,这些早期技术作品的发现和清理是相对较简单的了,因为它们采用的“进程隐藏”技术在nt体系上的Windows2000/xp/2003等操作系统上已经无效了,直接使用系统自带的任务管理器便能发现和迅速终止进程运行,而后在“控制面板”——“文件夹选项”里面设置“显示所有文件”和取消“隐藏受保护的系统文件”,就能发现那个被隐藏起来的木马程序了。对于Windows 9x用户,使用任意一款第三方的进程管理工具如“Windows优化大师”的进程管理组件即可轻松发现。
转截请注明:文章来自 pc捍卫者 http://www.pchwz.com
本站发布此文为传递更多信息之目的,不表明pc捍卫者赞同其观点