3601_lpk劫持病毒分析
1. 样本信息病毒名称:3601劫持病毒
所属家族:Trojan-DDoS.Win32.Macri.atk
大小: 24576 byte
修改时间: 2007年1月22日, 16:48:04
MD5: b5752252b34a8af470db1830cc48504d
SHA1: aec38add0aac1bc59bfaaf1e43dbdab10e13db18
CRC32: 4EDB317F
壳类型:UPX壳
编写语言:VC6
病毒行为:连接恶意网址下载代码远程执行、对lpk.dll进行劫持
2. 行为分析
使用火绒剑对病毒的行为进行分析,可以归为以下四类:对文件的操作、对注册表的操作、对进程的操作、对网络的操作。
一、 对文件的操作
① 创建fadbwg.exe文件(之后经过分析此文件名是随机的六个字母),并写入数据:
② 删除原始的病毒文件:
③ 创建hra33.dll文件和临时文件,并写入数据:
④ 在多个文件夹中创建lpk.dll并写入数据:
二、 对注册表的操作
在注册表中创建Ghijkl Nopqrstu Wxy项,并对注册表有删除操作:
三、 对进程的操作
① 创建了进程,经过排查发现创建的都是cmd、find、rar的进程:
② 使用cmd进行跨进程写内存的操作:
四、 对网络的操作
① 发送网络数据包,经过查看数据包流量猜测是发送了计算机的相关信息:
② 网络连接行为:
3. 恶意代码分析
3.1 分析是否有壳,如果有壳则进行脱壳
① 首先使用PEID进行分析,可以得知此病毒是UPX壳:
② 使用OD使用esp定律进行脱壳,脱壳后再使用PEID进行分析,可以得知此程序是VC6.0编写的:
3.2 恶意程序的代码分析片段
一、首先打开注册表,然后判断是否打开成功
① 打开注册表的函数OpenRegFunc如图2-1:
图2-1
二、打开注册表失败
① 恶意函数sub_405B6E:
1. 首先获取各种API地址,如图2-2:
图2-2
2. 生成随机的六个字母,如图2-3:
图2-3
3, 将病毒拷贝到C:\Windows\,以刚才生成的随机字母命名,如图2-4:
图2-4
4. 创建服务Ghijkl Nopqrstu Wxy,路径为随机字母.exe的病毒,如图2-5:
图2-5
5. 更改服务的可选配置参数,如图2-6:
图2-6
6. 使用StartService运行病毒的服务,如图2-7:
图2-7
7. 修改病毒的注册表添加Description项,值为"Ghijklmn Pqrstuvwx Abcdefg Ijklmnop Rst",如图2-8:
图2-8
② 删除病毒自身的函数DeleteFileFunc:
1. 命令行删除原路径病毒如图2-9:
图2-9
2. 更新设置,如图2-10:
图2-10
③ 退出当前进程,如图2-11:
图2-11
三、打开注册表成功
① 使用StartServiceCtrlDispatcher函数,启动之前创建的病毒服务:
② 分析恶意函数sub_40561A,其行为主要包括创建恶意dll、创建4个线程。
1. 创建恶意dll:
Create_hra33dll_Func调用了EnumResourceNames函数,如图2-12:
图2-12
分析EnumResourceNames的回调函数,创建了hra33.dll并写入了可执行文件,如图2-13、图2-14:
图2-13
https://attach.52pojie.cn//forum/202009/26/090140dehf6hv6na9f7xav.png?l
图2-14
2. 修改了hra33.dll的文件资源,如图2-15,其主要步骤是先读取病毒的注册表,如图2-16,然后创建病毒文件、读取病毒文件,如图2-17,之后向dll资源中写入病毒文件和一个字符串,如图2-18、图2-19:
图2-15
图2-16
图2-17
图2-18
图2-19
3. 载入hra33.dll,如图2-20、图2-21:
图2-20
图2-21
4. 创建的第一个线程:
分析其回调函数:其中有很多常用的用户名,如图2-22,猜测是用于暴力破解时使用:
图2-22
其中主要函数的功能通过分析可以得知是通过局域网传播病毒,如图2-23,此函数的参数为图2-24:
图2-23
图2-24
分析NetCopyFunc,首先获取各种API地址,然后字符串操作得到 \192.168.49.1\ipc$,如图2-25,之后调用WNetAddConnection2函数,参数如图2-26:
图2-25
图2-26
如果连接成功,则拷贝病毒命名为g1fd.exe,如图2-27,如果不成功会修改路径继续尝试,如图2-28:
图2-27
图2-28
当成功拷贝病毒会执行CMD语句设置定时任务,如图2-29:
图2-29
3. 创建的第二个线程:
分析其回调函数,首先初始化套接字,然后获取当前日期,如图2-30,之后创建了一个新的线程如图2-31:
图2-30
图2-31
分析线程回调函数sub_405128,此函数又创建了一个新线程,如图2-32:
图2-32
分析其回调函数sub_4040DA,分析得知其功能是尝试连接主机 sbcq.f3322.org,如图2-33:
图2-33
之后判断是否连接成功,如图2-34:
图2-34
如果连接成功的话,会有一个函数获取当前计算机的相关信息如图2-35,此函数的主要功能函数如图2-36:
图2-35
图2-36
然后会载入恶意dll,如图2-37:
图2-37
然后将发送获得的计算机信息,如图2-38、图2-39:
图2-38
图2-39
如果发送成功,先获取UrlDownloadToFile函数地址:
之后有个switch-case结构,判断是根据消息码不同做出不同操作,有以下三种操作:
(1)执行下载的代码:
(2)删除病毒注册表和原文件,然后执行下载的exe文件:
(3)打开IE浏览器执行下载的代码:
https://attach.52pojie.cn//forum/202009/26/090329vwxqertthn3nn5jl.png?l
之后有关于http数据包的函数,如图2-40、图2-41、图2-42,具体有什么作用暂时看不出来:
图2-40
图2-41
图2-42
4. 创建的第三个线程:
分析其回调函数,发现做的事情和第二个线程相同,只是地址发生了变化,这次的远程连接地址为www.520123.xyz,如图2-43:
图2-43
5. 第四个线程在sub_4030FD函数中,是while(1)循环调用此函数,如图2-44,回调函数如图2-45:
图2-44
图2-45
经过OD分析得知回调函数的地址为:0040387C,可以发现此函数也是尝试远程连接,网址为www.520520520.org:9426,和之前操作基本一致,但是含类似base64的加密,如图2-46、图2-47:
图2-46
图2-47
四、分析hra33.dll
① 加载病毒资源,判断是否加载成功,如图2-48,加载病毒资源的函数如图2-49:
图2-48
图2-49
② 如果加载成功,那么会判断当前进程加载模块的文件是不是 hrl.tmp,如图2-50:
图2-50
③ 判断是否在互斥体中,如图2-51:
图2-51
④ 创建临时文件,写入病毒并运行,如图2-52~2-55:
图2-52
图2-53
图2-54
图2-55
⑤ 判断当前是否是lpk.dll,判断函数如图2-56,如果不是的话创建一个事件对象,如图2-57:
图2-56
图2-57
⑥ 恶意函数sub_100010CE:
此函数创建线程循环遍历文件,判断后缀是否有.exe或.rar或.zip。如果有.exe的话判断是否存在lpk.dll,如果不存在就把恶意的hra.dll复制过去并命名为lpk.dll,如图2-58:
图2-58
如果有.rar或.zip的话就获取RAR.exe的路径然后进行恶意操作,操作步骤为:创建临时目录名->查看压缩包中是否存在lpk.dll->如果存在lpk.dll->在临时目录中把压缩包解压出来->替换lpk.dll、重新打包->删除临时目录,如图2-59:
图2-59
⑦ 最后加载原本lpk.dll的原始函数(如果①加载病毒资源失败将直接调到这里),以免原本调用了lpk.dll的程序无法正常运行,如图2-60、图2-61:
图2-60
图2-61
4. 手工查杀步骤
1. 注册表删除HKEY_LOCAL_MACHINE\system\CurrentControlset\services\Ghijkl NopqrstuWxy下注册表键。
2. 删除C:\windows\system32\hra33.dll文件。
3. 遍历所有磁盘和压缩包,删除lpk.dll文件。
很完整 完了之后我还是喜欢再重装 看了半天 还是不懂lpk这种病毒我记得单位电脑中过,还把我U盘感染了 还好插回自己电脑win10自带的杀毒提醒了.不明白这种病毒的目的是想干啥{:1_926:} 以前还中过一种病毒,玩单机游戏下的修改器,当时长了个心眼 开启前打开folder changes view 看看会不会修改系统文件结果TM的是个感染病毒,就看着folder changes view 里面一个接一个的EXE文件被修改,我慌了立马关机重启安全模式查杀 结果还是失去了很多重要文件 (所有被感染的文件应该是头尾加上了恶意代码,杀毒软件查到了直接就删掉了) Salvare000 发表于 2020-9-27 19:06
看了半天 还是不懂lpk这种病毒我记得单位电脑中过,还把我U盘感染了 还好插回自己电脑win10自带的杀毒提醒 ...
这种病毒会替换正常的lpk.dll,这样如果你使用的程序调用了这个库的话就会同时调用他的恶意代码。 以前用的某些软件经常中lpk病毒,不知道从哪来的 LPK这玩意真要感染了电脑重装一个系统算了,我自己搞过脑壳疼。浪费时间 lpk劫持,僵网的木马,就是为了搞肉鸡 nod32杀这个毒很方便 lpk 高版本系统劫持无效吧?能不能通过在注册表项KnownDlls中添加lpk.dll阻止病毒运行? vc6.0hhhhhhhhhhhhhhhhhhhhhhh