文章目录
3601-lpk.dll劫持病毒分析
1.样本概况
1.1 样本信息
病毒名称:3601.exe
所属家族:木马病毒
大小: 24576 bytes
文件版本:7.02.2600.5512 (xpsp.080413-0852)
修改时间: 2015年9月29日, 13:10:48
MD5: B5752252B34A8AF470DB1830CC48504D
SHA1: AEC38ADD0AAC1BC59BFAAF1E43DBDAB10E13DB18
CRC32: 4EDB317F
1.2 测试环境及工具
测试环境:虚拟机Windows 7 32位
测试工具:火绒剑、PCHunter、PEiD、OllyDbg、IDA、LoadPE
1.3 分析目标
分析病毒具体行为,找到病毒行为的具体实现代码,了解病毒实现原理,评估病毒的威胁程度。
1.4 样本行为概述
是一个lpk.dll劫持的木马病毒,样本运行后的行为:
①行为监控:释放PE文件,自我复制和删除,释放并隐藏lpk.dll文件
②文件监控:释放hra33.dll,RCX923D.tmp文件,遍历文件夹劫持lpk.dll
③进程监控:创建cmd、rar、find进程
④注册监控:修改注册表服务项,设置允许访问网络连接
⑤网络监控:有网络连接行为
2.具体行为分析
2.1 主要行为
①释放PE文件,自我复制和删除,释放并隐藏lpk.dll文件
②释放hra33.dll,RCX923D.tmp文件,遍历文件夹释放lpk.dll
③创建cmd、rar、find进程
④修改注册表服务项,设置允许访问网络连接
⑤有网络连接行为
2.2 提取恶意代码
原样本是一个加壳程序,壳版本是UPX 0.89.6。对样本进行脱壳处理,提取恶意代码。详细分析提取样本就可以了。
在分析样本时,使用PEID查看提取样本的基本信息,可以确定这是一个VC6.0的程序。
2.3 恶意代码分析
①程序流程和关键函数
样本会先检测注册表键值判断服务是否已经创建,如果服务未创建,创建服务,启动服务,若服务已经创建,则自我复制,修改服务配置,然后自我删除。样本主要功能:释放hra33.dll文件和发送网络数据。
样本代码主程序执行流程如下图:
病毒会释放一个hra33.dll的资源文件,该文件执行释放.tmp文件,遍历文件夹劫持lpk.dll等恶意为。
hra33.dll的主程序流程图如下:
②检测代码分析
样本会先检测注册表键值判断服务是否已经创建,防止重复操作。
③服务处理函数分析
服务处理回调函数主要功能:释放hra32.dllPE文件,发送网络数据
④当检测到服务注册表键值不存在时,执行自我复制,启动服务,自我删除
先检测样本路径,若样本不在系统目录下,自我复制一份到系统目录
更改服务配置参数,启动服务
删除自身样本,设置当前进程优先级,当前线程优先级。
⑤线程1:获取主机信息,创建网络连接
获取主机名,IP地址,用户名,密码
敏感字符串
创建网络连接,若连接成功,复制自身到磁盘根目录,执行
⑥网络线程:发送网络数据
⑦hra33.dll的释放lpk.dll线程分析
遍历指定驱动器文件,若存在exe文件,拷贝一份lpk.dll文件到当前路径
若是.rar和.zip压缩文件,则执行rar.exe和cmd.exe进程。在压缩包中插入lpk.dll文件。
3.解决方案
3.1 提取病毒的特征,利用杀毒软件查杀
①病毒特征:关键字符串
Ghigkl
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
1NTUHRYRExYRExYREx3c0eQJChcRFUM=
②Yara规则:
rule vir_3601
{
strings:
$text_1="Ghigkl"
$text_2="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
"
$text_3="1NTUHRYRExYRExYREx3c0eQJChcRFUM="
condition:
$text_1 or $text_2 or $text_3
}
③利用ClamAv查杀
3.2 手工查杀步骤
①结束进程树
②删除注册表服务项
③删除病毒exe和hra32.dll
④遍历磁盘和压缩包,删除lpk.dll