|
病毒描述
病毒名称 : Trojan/Generic.antj
文件MD5 : 85edd7f699664eeac000addebcaf2275
文件大小 : 31,232 字节
编写环境 : C++
是否加壳 : 否
文档公开级别 : 完全公开
病毒执行体描述:
Trojan/Generic.antj 对系统DLL(动态链接库文件)进行感染劫持,并在首次开机时检测系统的启动环境,是否是安全模式下的系统,并检测服务是否已安装,并为自己添加至服务启动项,并将自身复制到“%SystemRoot%system32”目录下以随机名称的文件加载至服务启动项中。并且立即启动服务。
在“%USERPROFILE%Local SettingsTemp”目录下备份病毒文件自身,并创建傀儡进程Svchost.exe,并对其进行劫持。对本地网页后缀相关的文件进行感染。
启动的服务中,检查本地磁盘中所有的可执行文件(后缀为“exe”),并在可执行文件的目录下释放一个lpk.dll(劫持的文件),可执行文件运行以后会优先于其他路径来加载DLL。
病毒行为流程分析:
一、检测当前系统运行环境,是否是安全模式。若非安全模式则进行检测当前的系统中自身的服务是否已安装,将自身复制到“%SystemRoot%system32”目录下,以当前系统的时间为文件的名称,并添加到服务管理器启动项中。并将自身复制到“%USERPROFILE%Local SettingsTemp”目录下备份名称为“SOFTWARE.LOG”。
二、服务安装成功则立即启动服务,服务启动过程函数中会先检测Svchost.exe是否已经挂接成功,这个原理和灰鸽子病毒挂接EXPLORER.EXE进程一样,做为傀儡进程使用,实际系统里有两个相同进程,但是检查其父进程的就可以发现一些猫腻,在以往的专杀中都是检测相同进程的父进程来判断是否是病毒所创建。
傀儡(Svchosts.exe)进程创建完毕后,不会立即运行,而是检测得到进程空间上下文,将原来的地址空间卸载。下面给出详细的挂接过程。
创建时候就把它挂起。然后得到它的装载基址,使用函数ZwUnmapViewOfSection来卸载这个这个基址内存空间的数据,。再用VirtualAllocEx来个Svchosts.exe进程重新分配内存空间,大小为要注入程序的大小(就是自身的imagesize)。使用WriteProcessMemory重新写Svchosts,.exe进程的基址,就是刚才分配的内存空间的地址。再用WriteProcessMemory把自己的代码写入Svchosts,.exe的内存空间。用SetThreadContext设置下进程状态,最后使用ResumeThread继续运行Svchosts,.exe进程。
此时运行的Svchosts.exe的内存空间的映射数据并非原始的文件信息了,而是病毒修改后的文件信息。这么做最初的思想就是让杀毒软件判断为正常文件,而放过查杀,系统的Svchosts.exe在杀毒软件的进程中是默认放过的,重新检测一遍文件也是对的,就放过了,但是挖空内部数据,重新填入,使病毒以更隐蔽的方式运行。
三、傀儡进程执行服务安装成功后,会在"HKLMSYSTEMControlSet001Services" 添加一个系统服务名称为“Distribukhq",执行文件路径存放在ImagePath键值中。
保证重启系统后病毒运行环境搭建完成,会在检测当前磁盘文件的数量,并在所有可执行文件的目录中隐藏添加lpk.dll文件,当可执行文件运行后会优先加载当前目录下的dll文件,病毒文件可以不断继续传播。会检测压缩包文件,还检测系统中的网页相关文件,进行感染。
LPK.dll大致流程:
1. 检测当前执行体.
2. 如果模块名称不是LPK或者不是hr开头的, 则遍历硬盘复制lpk.dll进行感染.
3. temp目录释放hrxx.tmp….执行..防止服务被删除,或者exe文件被删除.
4. hrxx.tmp,服务执行体, 与宿主文件执行都是一个执行文件.
病毒技术要点
Trojan/Generic.antj 对系统具有破坏性,感染的文件和程序在运行过程中会不断自我复制,自我检测,并且一个宿主文件里写了多种用途,自身可执行,并可添加至服务中继续运行,模块可以供其他程序调用,防止查杀,对抗杀毒部分使用傀儡创建"Svchosts.exe"进行寄生,混淆杀软检测,感染EXE的是 相同目录下的lpk.dll的劫持,对EXE文件没有进行修改,比较隐蔽的感染系统。
病毒清理流程
所有进程中扫描Lpk.dll(感染劫持文件), 内存特征.卸载内存镜象.
1.查找 HKLMSYSTEMControlSet001ControlSession Manager
键值 PendingFileRenameOperations, 清空.
2.服务Distribukhq, 找到并删除,删除服务的执行体文件.
可在HKLMSYSTEMControlSet001ServicesDistribukhq 下ImagePath中看见路径.
3.删除local settingTemp 目录中Hrxx.tmp 与SOFTWARE.LOG.删除. 查找windowstemp目录下,查找hrxx.tmp 并删除.
4.遍利所有盘符目录中查找lpk.dll ,其文件属性为系统属性,只读隐藏属性..找到清除.
|
|