鬼影7
C:\Windows\System32\64A506EC.tmp(该文件名为随机字符+explorer进程ID.tmp) 此文件为病毒副本程序。
C:\Users\a\AppData\Local\Temp\ 55596a66.bat(自删除批处理脚本)
C:\Windows\System32\ 5D27626D.sys(驱动程序)
C:\Windows\System32\ AeLookupSvc.dll(系统中不存在的服务程序,以服务程序名命名)
此次分析主要是鬼影7外壳程序分析,其所释放的驱动程序和服务程序请静待下回分析
外壳程序主要行为:
判断自已是否注入到其它进程中运行,如果已注入到其它进程,病毒会安装驱动等,服务等主体程。
一.没有注入的病毒行为:
<1>.首先会判断KB2536276666.log文件是否存在,该文件标志着该电脑是否被感染。如存在就退出运行。
<2>.检测本机所运行的相关安全软件,并设置标志位。
<3>.配置本机输入法注册表相关设置,释放C:\Windows\System32\64A506EC.tmp文件,分别HOOK imm32.dll 的ImmLoadLayout函数与ntdll.dll的ZwQueryValueKey函数,然后显示调用LoadKeyboardLayout,并发送WM_INPUTLANGCHANGEREQUEST将64A506EC注入到explorer.exe进程中。此时木马检测是否注入成功,如成功就退出运行,失败则会在当前进程释放驱动和服务DLL程序并安装。
二.注入到傀儡进程中的行为:
<1>.注入到傀儡进程中的病毒程序就是原程序副本,只是运行环境发生变化,病毒运行时检测所注入的傀儡进程名称,然后根据注入进程不同执行不同行为。
<2>.注入的进程如果是explorer.exe病毒就释放驱动和服务DLL程序并安装,如果是setup.exe程序,病毒就会重新执行没有注入的病毒行为。如果注入的是HELPCTR.EXE,control.exe进程时,病毒设置输入法DLL程序,然后退出运行。
作用:此外壳程序主要作用就是安装一个系统底层的驱动程序和一个RING3的服务程序。
其病毒主要的作用在所释放安装的两个服务程序当中,这两个服务程序的详细分解请静待下章。
病毒入口点如上图:病毒开始执行时就用自定位方式获取当前执行时偏移地址,然后和当前进程模块比较,以此来检测是否注入到傀儡进程中运行。
木马检测系统是否被感染过,如果系统已经种植了该病毒程序,则不继续感染。
病毒跳转到自身所构造的SHELLCODE中运行,但这些SHELLCODE代码全是90,即什么都不干,此处用意估计是迷惑逆向分析者,无实在意义。
病毒检测一些系统运行的安全软件,如360tray.exe,HardwareInfo.exe,HintClient.exe,AVP.exe等,其中explorer.exe为病毒要注入的傀儡进程,病毒会获取该进程ID,然后以些ID+随机字串生成要注入的傀儡DLL文件。
病毒生成傀儡DLL文件64A506EC.tmp。
病毒获取Imm32.dll的ImmLoadLayout与ZwQueryValueKey函数地址,用来HOOK这两个函数。
病毒HOOK了以上两个函数,然后病毒调用LoadKeyboardLayout函数,此时ImmLoadLayout,ZwQueryValueKey会被调用,病毒在ZwQueryValueKey会在该函数内部返回64A506EC.tmp字串,然后恢复被HOOK的函数,以上行为意在用输入法原理注入到目标进程当中,要注入的目标进程是explorer.exe,病毒马上会发送WM_INPUTLANGCHANGEREQUEST消息给explorer.exe进程,这时病毒DLL就会注入explorer.exe进程中。
病毒向explorer.exe进程发送WM_INPUTLANGCHANGEREQUEST消息。
病毒等待全局事件,如果该事件被置位,则说明病毒成功注入explorer.exe进程,如果等待超时或返回失败时,病毒就会在当前进程中完成注入到explorer.exe傀儡进程的任务,即完成驱动及服务的释放与安装。
如上图所示,病毒成功将64A506EC.tmp动态链接库注入到explorer.exe中,此DLL动态链接库为病毒副本程序,只是该病毒在运行时就会测测运行环境,所以注入到explorer.exe进程中的病毒会有所不同,它会直接尝试创建服务等程序。
注入到explorer.exe进程中的病毒检测当前所注入的进程名称,如果不是setup.exe,control.exe,HELPCTR.exe时,病毒会创建一个线程,在线程中检测是否是注入到explorer.exe中,如果是病毒就开始执行主要功能。如果不是explorer.exe,则退出运行。
病毒检测注入进程的ID是否是explorer.exe进程。如果则置为全局事件,结束刚才验证是否注入成功的进程。
置位全局事件。
病毒它建驱动服务程序,并验证是否运行起来,如果创建的驱动服务没有运行,就会调用CreateService他建服务,并启动服务。
病毒创建RING3服务程序。
病毒创建RING3服务文件。
原创作者:sev7n
SP地址:http://www.secpulse.com/archives/206.html