LPK劫持分析
1.样本概况
1.1 样本信息
病毒名称: lpk劫持
所属家族:蠕虫病毒(Worm)
大小: 53760 bytes
文件版本:7.02.2600.5512 (xpsp.080413-0852)
修改时间: 2015年9月29日, 13:10:48
MD5: 304BBE0E401D84EDF63B68588335CEB6
SHA1: 8389FB0466449755C9C33716EF6F9C3E0F4E19C8
CRC32: 757BDFA1
病毒行为:
复制自身、释放lpk.dll文件到目录、上传宿主主机的信息,从服务器下载命令并执行、网络传播。
1.2 测试环境及工具
测试环境:VMware WorkStation 16 PRO
工具:PCHunter、火绒剑、IDA、OD、ExeinfoPE
1.3 分析目标
分析病毒永久驻留方式,感染的方式,网络连接,病毒的恶意行为。
2.具体行为分析
2.1 主要行为
Lpk劫持主要行为如下:
-
文件操作:复制病毒、释放文件等。
-
注册表操作:自启动、创建注册表项、删除杀软注册表项、隐藏文件等。
-
进程操作:遍历进程、跨进程读写、跨进程恢复线程、打开设备等。
-
网络操作:连接局域网传播、访问门户网址、与木马网址通讯等
2.1.1 文件操作
-
复制文件到C:\Windows\wmewsc.exe ,然后删除了病毒本体
-
释放了hra33.dll文件
-
在各个目录创建了lpk.dll文件,里面保存的是用于劫持系统lpk.dll的文件。
2.1.2 注册表操作
1.添加了一个服务到注册表中
2.设置IE的一些注册表设置
2.1.3 进程操作
-
创建了病毒进程,然后运行执行了cmd操作和使用rar.exe执行了一些操作。
2.1.4 网咯操作
-
连接了局域网的一些地址,主要通过139、445端口连接。
-
访问了一些门户网站:www.tom.com、www.163.com等
3.与一些网址进行数据交换,数据经过了加密传输。
2.1.5 威胁行为总结
通过分析监控的日志以及人肉之后,可以分析出样本的恶意行为:
-
自我复制样本到C盘,C:\Windows\system32\driver\目录下,启动C:\Windows\system32\drivers\spo0lsv.exe(样本)。
-
在每一个目录下创建了Desktop.ini文件,里面存放的是当前日期。
-
在C盘根目录下创建了autorun.inf文件,里面制定了自启动的文件为根目录下的setup.exe(样本)。
-
对程序目录下的exe进行了感染,图标变为exe,打开exe时,自动打开病毒。
-
设置注册表启动项为C:\Windows\system32\drivers\spo0lsv.exe(样本)
-
设置注册表键值HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL\CheckedValue,隐藏文件不显示。
-
将注册表中杀毒软件启动项全部删除。
-
自己创建了一个注册表的项HEKY_LOCAL_MACHINE\SOFTWARE\Microsoft\Tracing\spo0lsv_RASAPI32,在其中写入了很多信息。
-
修改注册表项IE浏览器的代理和连接设置。
-
连接局域网的一些地址,访问外网的一些地址。
-
使用cmd命令关闭网络共享。cmd.exe /c net share C$/del /y 和 cmd.exe /c net share admin$ /del /y
2.2 恶意代码分析
2.1恶意代码主功能
Lpk劫持主要分为有两个文件3601.exe和hra33.dll。
在3601.exe中:
-
判断Ghijkl Nopqrstu Wxy服务是否被创建。
-
若服务未被创建:
a) 拷贝自身3601.exe到系统C:\Windows目录下,名称随机
b) 创建服务Ghijkl Nopqrust Wxy
c) 启动服务Chijkl Nopqrstu Wxy
d) 删除自身3601.exe
-
若服务已创建
a) 遍历资源,释放hra32.dll
b) 将自身3601.exe作为资源调价到hra33.dll
c) 通过IPC传播病毒
d) 连接远程服务器,执行远程代码
在hra32.dll 中:
-
在临时文件目录下释放病毒文件hrl.tmp, 并启动
-
将lpk.dll放到exe所在的目录
-
判断是否有rar软件,若有则替换压缩文件中的lpk.dll
2.2 恶意程序的代码分析片段
2.1.1 3601.exe详细分析
1. 3601.exe**主要功能**
-
判断Ghijkl Nopqrstu Wxy服务是否被创建。
-
若服务未被创建:
a) 拷贝自身3601.exe到系统C:\Windows目录下,名称随机
b) 创建服务Ghijkl Nopqrust Wxy
c) 启动服务Chijkl Nopqrstu Wxy
d) 删除自身3601.exe
-
若服务已创建
a) 遍历资源,释放hra32.dll
b) 将自身3601.exe作为资源调价到hra33.dll
c) 通过IPC传播病毒
d) 连接远程服务器,执行远程代码
2. WinMain函数
在WinMain函数中,判断Ghijkl Nopqrstu Wxy 服务是否创建,若未创建,则执行创建服务代码,若已创建,则设置服务的回调函数。
3. 判断服务是否被创建
sub_405A52函数的功能是通过查询注册表中的服务来判断Ghijkl Nopqrstu Wxy 是否被创建,若该服务存在,则返回1,否则返回0.。
4.服务未创建
在服务未被创建时,会先在C:\Windows目录下随机生成一个exe文件(xxxxxx.exe,六个字符),然后将3601.exe复制到那个文件中。
创建服务Ghijik Nopqrstu Wxy,设置自启动,启动C:\Windows目录下的病毒文件。
启动服务,将服务信息填入注册表。
删除3601.exe文件,通过cmd命令“\c del C:\Users\15PB\Desktop\3601.exe > null”。
5. 服务已创建
若服务已创建,则设置服务的回调函数为sub_40561A,在该服务回调函数中,首先释放hra33.dll。
将C:\Windows下的xxxxxx.exe作为资源写入到hra33.dll中。
初始化账号密码字典,尝试使用字典爆破登录内网,然后将病毒文件发送到目标机器上。
之后,创建了三个线程,分别连接了sbcq.f3322.org、www.520123.com、www.520520520.org:9426三个网址,下载了一些代码并执行。
连接远程服务,然后发送主机信息,再下载文件并执行文件。
2.1.2 hra33.dll详细分析
1. hra33.dll主要功能
在hra32.dll 中:
-
在临时文件目录下释放病毒文件hrl.tmp, 并启动
-
将lpk.dll放到exe所在的目录
-
判断是否有rar软件,若有则替换压缩文件中的lpk.dll
2. 释放hrl.tmp
在hra33.dll的资源中查找到病毒的exe,然后释放到临时目录下的hrl.tmp中,再启动病毒。
3. lpk.dll劫持
通过遍历磁盘,然后将hra33.dll复制到exe所在目录下,并改名为lpk.dll来达到lpk劫持的目的。
判断是否安装了rar软件,若已安装,则使用rar解压压缩包,然后替换压缩包中的lpk.dll为病毒自身的lpk.dll(即hra33.dll 改名为lpk.dll),再将文件进行压缩。
3.解决方案
3.1 提取病毒的特征,利用杀毒软件查杀
字符串:
sbcq.f3322.org
Ghijkl Nopqrstu Wxy
3.2 手工查杀步骤
-
删除注册表HKEY_LOCAL_MACHINE\system\CurrentControlset\services\GhijklNopqrstu Wxy。
-
删除C:\windows\system32\hra33.dll文件。
-
遍历磁盘和压缩包,删除lpk.dll文件。