社区应用 最新帖子 精华区 社区服务 会员列表 统计排行
  • 6110阅读
  • 2回复

[分享]病毒分析—LPK劫持病毒

楼层直达
z3960 
级别: 茶馆馆主
发帖
770867
飞翔币
207694
威望
215657
飞扬币
2511641
信誉值
8

3601_LPK劫持病毒分析内容虽然与熊猫烧香有很大的差距,但分析步骤大致都是这四步一、基本分析,并提取病毒样本,手工清理机器1.模拟真实场景,在虚拟机中运行样本针对一个文件夹下的一系列操作2.待病毒执行之后,观察可疑情况使用PCHunter工具查看进程,定位到进程文件,再结束病毒进程可疑进程判断依据:图标、文件名、文件路径找到病毒所在位置,将其样本保存,再删除目录下的病毒程序(需结束病毒进程后删除)3.提取样本将路径下文件提取到本地,并修改扩展名为vir(病毒程序名为随机生成)C:Windowszmnfmc.exe 改为 C:Windowszmnfmc..vir4.样本概况       文件: D:Desktopupx-3.96-win32upx-3.96-win323601.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~1WinRARrar.exe vb "C:ToolsASL-masterexeinfope.zip" lpk.dll|find /i "lpk.dll"③观察网络操作,这里能监控的数据不多,有可能会有遗漏由微步云沙箱和火绒剑数据对比可知,病毒程序在不停的向sbcq.f3322.org、www.520123.xyzwww.520520520.org三个域名发送数据具体操作可以使用抓包工具(WSExplorer)进一步观察④观察行为操作行为监控属于火绒剑这个工具特色的一种功能,这里将常见的一些恶意代码行为进行了总结⑤观察执行操作执行监控可以观察病毒程序执行了哪些进程,加载了哪些模块的操作,这里还创建了CMD,执行了一些命令⑥注册表操作可以看到创建了HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesGhijkl Nopqrstu Wxy注册表键,然后设置了一些值分析情况总结分析监控的日志以及自行观察操作之后,可以分析出样本的恶意行为:       1.自我复制样本到C盘:C:Windows目录下,启动C:Windowsxxx.exe(即病毒程序),因病毒名随机生成,所以程序名不固定       2.在每一个exe所在目录下创建lpk.dll       3.在C:WindowsSystem32系统目录下创建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_MACHINESYSTEMCurrentControlSetservicesGhijkl 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:4EDB317F2.手工查杀步骤       1.使用PcHumter结束病毒程序       2.删除HKEY_LOCAL_MACHINEsystemCurrentControlsetservicesGhijkl Nopqrstu Wxy下注册表键;       3.结束服务:Ghijkl Nopqrstu Wxy,删除服务对应的exe文件。       4.删除C:windowssystem32hra33.dll文件;       5.删除生成的lpk.dll文件。LPK劫持病毒样本:https://wwz.lanzouo.com/iTZgRy7tpfa
关键词: bot 系统 下载 360 2012
我不喜欢说话却每天说最多的话,我不喜欢笑却总笑个不停,身边的每个人都说我的生活好快乐,于是我也就认为自己真的快乐。可是为什么我会在一大群朋友中突然地就沉默,为什么在人群中看到个相似的背影就难过,看见秋天树木疯狂地掉叶子我就忘记了说话,看见天色渐晚路上暖黄色的灯火就忘记了自己原来的方向。
级别: 超级版主
发帖
834522
飞翔币
226674
威望
224648
飞扬币
2447196
信誉值
0

只看该作者 1 发表于: 2022-01-11
来看一下
级别: 超级版主
发帖
834522
飞翔币
226674
威望
224648
飞扬币
2447196
信誉值
0

只看该作者 2 发表于: 2022-01-11
不错,了解了