病毒分析—LPK劫持病毒
本帖最后由 Nattevak 于 2022-1-4 19:56 编辑来自百度百科:“LPK劫持者”病毒运行将在系统文件夹内施放一个盗号木马,修改注册表,该病毒会搜索所有含有exe文件的文件夹以及rar压缩文件,然后进行自我复制,进行大范围传播,另外,该病毒还将感染部分html文件和js脚本,使其指向黑客指定的挂马网站。最后,该病毒还将恶意代码注入windows进程中,以实现监听用户电脑的目的。用户一旦中毒,将被下载大量木马病毒,还要面临虚拟财产被盗、隐私信息泄露等威胁。
3601_LPK劫持病毒分析内容虽然与熊猫烧香有很大的差距,但分析步骤大致都是这四步
一、基本分析,并提取病毒样本,手工清理机器
1.模拟真实场景,在虚拟机中运行样本
针对一个文件夹下的一系列操作
2.待病毒执行之后,观察可疑情况
使用PCHunter工具查看进程,定位到进程文件,再结束病毒进程
可疑进程判断依据:图标、文件名、文件路径
找到病毒所在位置,将其样本保存,再删除目录下的病毒程序(需结束病毒进程后删除)
3.提取样本
将路径下文件提取到本地,并修改扩展名为vir(病毒程序名为随机生成)
C:\Windows\zmnfmc.exe 改为 C:\Windows\zmnfmc..vir
4.样本概况
文件: D:\Desktop\upx-3.96-win32\upx-3.96-win32\3601.exe
大小: 53760 bytes
文件版本:7.02.2600.5512 (xpsp.080413-0852)
修改时间: 2015年9月29日, 13:10:48
MD5: 304BBE0E401D84EDF63B68588335CEB6
SHA1: 8389FB0466449755C9C33716EF6F9C3E0F4E19C8
CRC32: 757BDFA1
二、行为分析,获取病毒行为
1.使用火绒剑工具监控病毒样本的运行,待病毒执行一段时间后,分开查看病毒的行为。分析监控到的日志,主要观察的点:
①文件操作,主要看文件创建、修改、删除等操作
②进程操作,主要看创建进程、写入内存等操作
③网络操作,主要看网络连接地址、IP等信息
④行为操作,主要观察病毒样本运行后进行的一些行为操作
⑤执行操作,主要看病毒执行的一些命令
⑥注册表操作,主要观察注册表的创建注册表键和设置注册表项值等操作
分析样本的行为,尽可能发现恶意行为。
开启火绒剑监控样本运行
①观察文件操作,主要观察文件的写入操作,这里保险起见勾选文件被修改和写入文件两个选项
②观察进程操作
因为进程现在还不太好判断,所以进程相关的所有操作都先看一下
CMD执行的命令:
cmd /c C:\PROGRA~1\WinRAR\rar.exe vb "C:\Tools\ASL-master\exeinfope.zip" lpk.dll|find /i "lpk.dll"
③观察网络操作,这里能监控的数据不多,有可能会有遗漏
由微步云沙箱和火绒剑数据对比可知,病毒程序在不停的向
sbcq.f3322.org、www.520123.xyz、www.520520520.org三个域名发送数据
具体操作可以使用抓包工具(WSExplorer)进一步观察
④观察行为操作
行为监控属于火绒剑这个工具特色的一种功能,这里将常见的一些恶意代码行为进行了总结
⑤观察执行操作
执行监控可以观察病毒程序执行了哪些进程,加载了哪些模块的操作,这里还创建了CMD,执行了一些命令
⑥注册表操作
可以看到创建了HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Ghijkl Nopqrstu Wxy注册表键,然后设置了一些值
分析情况总结:
分析监控的日志以及自行观察操作之后,可以分析出样本的恶意行为:
1.自我复制样本到C盘:C:\Windows目录下,启动C:\Windows\xxx.exe(即病毒程序),因病毒名随机生成,所以程序名不固定
2.在每一个exe所在目录下创建lpk.dll
3.在C:\Windows\System32系统目录下创建hra33.dll
4.使用CMD命令删除源目录病毒程序
5.进行网络连接,向病毒关联的三个服务器发送数据
6.创建Ghijkl Nopqrstu Wxy注册表键并设置相关值
三、详细分析病毒代码,获取行为的恶意代码
通过行为分析之后,可以知道恶意代码的一些恶意行为,想要获取更加详细的行为需要使用IDA或是OD分析样本。
1.查壳脱壳
使用PEiD 查壳,发现是UPX的壳,所以直接使用官方脱壳工具就可以了,不需要手工脱壳
2.查看资源
3.使用OD以及IDA双剑合璧分析
使用IDA打开病毒程序,按下F5将其转换为伪代码,简单分析OEP处代码
OEP处函数分为以下三部分:
sub_405A52函数分析
此函数为注册表相关的函数,初始化操作后将HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Ghijkl Nopqrstu Wxy添加到注册表中去
sub_40561A函数分析
程序以服务的方式启动
调用RegisterServiceCtrlHandlerA注册Ghijkl Nopqrstu Wxy服务,进入sub_4058E9函数,可以看到其功能是设置服务状态。
继续向下分析
创建互斥体,如果失败则结束进程;判断服务是否已经创建,防止多开
向下分析,进入sub_405394函数,内部函数为EnumResourceNames,查看EnumFunc,其功能为遍历资源,释放DLL
继续向下分析sub_4053A6函数,分析后可以将函数功能归纳为将自身病毒exe,当成资源,添加进hra33.dll PE文件中
sub_4034E5 — load_dll函数功能比较简单,就是加载hra33.dll
接下来可以看见创建了四个线程,首先分析第一个线程sub_402DD5函数
administrator可知此处为Windows用户名
Passord为密码
故推测此处是在暴力枚举,进行暴力破解
向下分析sub_402A59函数,功能为初始化服务
继续分析来到sub_402AD0函数,其函数功能为建立IPC连接,并传播病毒
函数sub_402A92 — get_cur_filename的功能就是GetModuleFileName
故第一个线程的功能就是通过IPC,局域网传播病毒
接下来分析第二个线程sub_4051E0函数
进入函数后可以发现在经历了初始化和获取本地时间的操作后又创建了一个线程
进入sub_405128函数继续分析仍然在创建线程
进入StartAddress函数分析
首先是sub_404044函数 — connect_remote_host
其中包含sub_406C70函数 — get_ip,其功能为通过主机获取IP地址
故sub_404044函数函数功能为连接 sbcq.f3322.org 服务器
继续向下分析,sub_403492函数 — SetSocketOpt ,函数功能为设置套接字的操作
向下分析,sub_4060F0函数 — get_systeminfo ,功能汇总为获取系统版本 CPU 内存 网卡信息
sub_4034E5函数,其功能上文已经分析过了,为加载hra33.dll
继续向下分析,可以看到sub_403758函数,分析内部功能后可知其功能为接收远程命令
继续向下分析
获取系统目录后,通过sub_406C30函数 — 生成随机数,与cn.exe拼接为字符串
之后在网址中下载内容,保存到Dest中,调用sub_40351A函数结束当前服务
继续向下分析
最后使用sub_40355B函数删除自身,结束进程
sub_403135函数下载数据,到内存中执行
sub_403280函数HTTP相关 发包函数
sub_403311函数与sub_403135函数功能大致相同,都是下载数据,到内存中执行
故第二个线程的功能为连接远程服务,执行远程代码
连接 sbcq.f3322.org 服务器
接下来分析第三个线程sub_405241函数
其功能函数等与第二个线程sub_4051E0函数内函数皆相同,只是连接的服务器发生了变化
故第三个线程的功能也为连接远程服务,执行远程代码
连接 www.520123.xyz 服务器
接下来分析第四个线程sub_405241函数
其功能函数等与第二个线程sub_4051E0函数内函数同样相同,也只是连接的服务器发生了变化
但此处的服务器地址被加密了,故使用OD动态调试,解密“1NTUHRYRExYRExYREx3c0eQJChcRFUM=”,获取明文服务器网址
故第四个线程的功能同样为连接远程服务,执行远程代码
连接 www.520520520.org:9426 服务器(1NTUHRYRExYRExYREx3c0eQJChcRFUM=加密)
sub_40561A函数汇总
sub_405B6E函数分析
此函数功能也比较简单,主要就是拷贝自身到系统目录,创建服务,启动服务,删除自身这几项操作
生成随机的病毒名字符串,并将自身拷贝到系统目录下
进入sub_406C30函数,可以直接根据rand函数判断出此处是在生成随机数
进入sub_40355B函数,发现主要是执行删除自身的操作
OEP处函数分析结束,现汇总如下:
接下来分析病毒生成的hra33.dll文件
仍然使用IDA打开hra33.dll文件,F5将其转换为伪代码
顺带看一眼导出表,可以看到病毒生成的DLL程序与系统LPK文件的导出表是一致的,根据名称也可以判断出这是一个劫持LPK的程序
当我们调用lpk.dll时,导出图中这些函数,当程序想要执行时,就需要加载这个DLL;需要调用函数时,就会先调用hra33.dll,执行函数时程序将原来的系统DLL替换为真正的函数
DllEntryPoint函数分析
进入sub_10001134函数进行分析,可以看到FindResourceW(hModule, (LPCWSTR)0x65, (LPCWSTR)0xA);函数与我们之前分析病毒程序时分析的UpdateResource内容相似,所以与之前的病毒分析相联系,可知此处是在寻找病毒文件
进入sub_10001338函数,此函数功能为判断当前文件是否时hrlxxx.tmp文件
进入sub_100012BD函数,其函数的主要功能就是防止多个dll同时启动,则为防多开的操作
如果sub_10001338函数与sub_100012BD函数都不满足条件,则进入sub_10001193函数
继续向下分析来到函数sub_100012F6,判断当前模块名是否是lpk.dll
如果是lpk.dll,返回1,创建事件,进入sub_100019E6函数
继续跟进线程的回调函数sub_100018D3
进入StartAddress回调函数
继续进入sub_1000142B函数,其大致功能为判断主机中是否存在WINRAR程序,若存在则使用cmd命令运行程序,并查找RAR程序中是否存在lpk.dll文件,如果存在则解压文件,替换lpk.dll文件,重新打包文件,最后删除临时文件。
sub_100010CE函数其功能为替换lpk原始导出的函数,进入函数详细分析
sub_1000101F函数是为了将原始lpk真正的函数地址保存起来
DllEntryPoint函数汇总
四、提取病毒特征,完成查杀,编写文档报告及专杀工具
1.病毒特征
MD5值:B5752252B34A8AF470DB1830CC48504D
SHA1值:AEC38ADD0AAC1BC59BFAAF1E43DBDAB10E13DB18
CRC32:4EDB317F
2.手工查杀步骤
1.使用PcHumter结束病毒程序
2.删除HKEY_LOCAL_MACHINE\system\CurrentControlset\services\Ghijkl Nopqrstu Wxy下注册表键;
3.结束服务:Ghijkl Nopqrstu Wxy,删除服务对应的exe文件。
4.删除C:\windows\system32\hra33.dll文件;
5.删除生成的lpk.dll文件。
LPK劫持病毒样本:https://wwz.lanzouo.com/iTZgRy7tpfa
我也中过一次勒索病毒,全盘都被加密了,需要打入一个比特币,最后没办法,只能重装系统,还好没有太多重要的东西,之前也中过一些浏览器劫持类木马,后面也是重装解决,很多人为了个人利益真是什么事都做得出来,:@ LPK当年上学时的病毒 全盘感染 2010年左右曾经打包过一份病毒样本,不知道放在哪里了哈哈 现在病毒少了很多 牛啊学习到了谢谢大佬
牛啊学习到了谢谢大佬 我记得这个病毒超级烦人,及其恶心,通盘可执行程序感染,杀完了,过了段时间又不知道从哪里冒出来 ,又再次感染,我头皮发麻。。。。{:1_896:} 看爆破密码 应该是国人开发的,但这个病毒应该出来好早了,用易语言的那个时候人应该不多,谢谢大神分析提供解决方案,这个毒太流氓了,不好根除,还会悠修改HTML文件 看爆破密码 应该是国人开发的,但这个病毒应该出来好早了,用易语言的那个时候人应该不多,谢谢大神分析提供解决方案,这个毒太流氓了,不好根除,还会悠修改HTML文件 看爆破密码 应该是国人开发的,但这个病毒应该出来好早了,用易语言的那个时候人应该不多,谢谢大神分析提供解决方案,这个毒太流氓了,不好根除,还会悠修改HTML文件 行为跟我在10年前遇到的那个全盘感染的病毒相似 虽然看不懂哈哈