Parite.H病毒分析
样本信息
MD5:633464FF7520FDAFF672F726C059E33D
样本概述
该样本是一个被Parite感染型病毒感染的exe文件。其运行后会先解密一段数据,这段数据包括原文件的一些信息和一段shellcode。这段shellcode会解密文件末尾的病毒dll将其写入临时目录下的临时文件中,然后调用病毒dll文件导出的Initiate()API通过setwindowshook的方式将其注入explorer.exe进程。病毒dll被注入到explorer.exe进程中后创建线程感染本地或者网络资源中的exe和scr文件。
行为概述
注册表行为
1,HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer
键:PINF 值:病毒dll文件的路径(%temp%\随机名.tmp)
文件行为
1,在%temp%路径下释放病毒dll文件,命名规则*.tmp。
进程行为
1,将病毒dll注入到explore.exe进程中。
网络行为
无
详细分析
1,解密一段数据
解密出来的数据包括原文件的一些信息和一段shellcode
2,运行解密出来的shellcode
该shellcode首先会通过获得HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer处PINF键的值来判断主机有没有被感染过。
如果PINF键下有值,则说明主机的%temp%目录下已经有病毒dll文件,shellcode将直接加载病毒dll文件并设置全局钩子
如果PINF键下没有值,该shellcode会将文件末尾被加密的病毒dll解密后写入%temp%目录下的临时文件中,文件命名规则*.tmp。
创建临时文件
解密数据并写入
3,加载病毒DLL,并调用其中的Initiate()函数
使用LoadLibraryA()加载写入的病毒DLL
获得DLL文件中的Initiate()API的地址并运行
Initiate()函数,检测是否存在“Residented”互斥体,如果不存在则设置全局钩子,挂钩WH_CALLWNDPROC类型的消息,钩子过程为病毒dll导出的AttachHook()API,这样当某个进程接收到WH_CALLWNDPROC类型的消息时病毒dll就会被加载到其进程空间中。
4,病毒dll分析
4.1,检测当前进程是否是explore.exe
检测当前进程是否是explore.exe,如果是则创建感染线程
4.2,创建“Residented”互斥体
创建“Residented”互斥体确保只有一个病毒实例在运行
4.3,将自身路径记录在注册表中
4.4,创建感染线程,感染本地磁盘和网盘中的exe和scr文件
创建感染线程
感染本地磁盘和网盘中的exe和scr文件