malware_infected

admin 2021年7月18日21:53:46malware_infected已关闭评论68 views字数 2215阅读7分23秒阅读模式

0x00 样本信息

样本名称:bea213f1c932455aee8ff6fde346b1d1960d57ff

MD5:6e4b0a001c493f0fcf8c5e9020958f38

sha1:BEA213F1C932455AEE8FF6FDE346B1D1960D57FF(病毒以 sha1 值命名)

样本链接:https://pan.baidu.com/s/1IKSLrKTuvgr7TEerHtfn_w
提取码:stp6

0x01 测试环境

系统:windows_x32

查壳工具:PEID

检测工具:火绒剑

调试工具:Ollydbg,IDApro,stud_PE

0x02 基本分析

PEID查壳

malware_infected

可以看到是32位的,没有加壳,通过对入口点的观察可以看到开启了基址随机化(ASLR)保护。

0x03 火绒剑进行监控

注册表监控

malware_infected
通过打开注册表键和获取注册表项值,从而恶意程序添加以上键值。

文件监控

malware_infected

恶意程序通过对创建,写入,打开等从而对文件进行一系列的操作。

进程监控

malware_infected

打开以上进程之后对其进行跨进程写入内存操作,然后恢复线程。

网络监控

malware_infected
连接网络后,从网站上下载一个压缩包和一张图片

行为监控

malware_infected

恶意程序入侵explorer.exe通过以上监控我们可以大致了解到这个恶意程序进行了哪些操作

0x04 动静恶意代码分析

关闭基址随机化

通过查壳是可以观察到地址这个恶意程序开启了基址随机化(ASLR)

malware_infected

将动态的基址关闭,,然后转存到存储位置,地址随机化就关闭了。

malware_infected

动静态分析

首先查看一下导入表的API

malware_infected

malware_infected

通过观察API可以看出可能是远程注入

malware_infected

我们通过函数的交叉引用,sub_402690中调用了VirtualAllocEX,然后我们通过多次的交叉引用看看能不能找到start函数

malware_infected

malware_infected

通过两次交叉引用找到了主函数。

反汇编看一下

malware_infected

通过观察分析sub_402A10是关键函数

进入其进行分析

malware_infected

进入sub_402190

malware_infected

可以看出这一块是获取进程句柄后打开一个隐藏窗口,通过遍历进程

malware_infected

进入 sub_402190 分析,看到一些组合函数 CreateToolhelp32Snapshot-> Process32First-> Process32Next,程序通过进程名查找进程,如果找到指定进程执行终止进程操作。

接着sub_402A10往下分析

malware_infected
看到了疑似获取文件属性的函数,但是不清楚xmmword_xxxxxx数据。可以Alt+A将其显示出来

malware_infected

malware_infected

malware_infected

这样我们就能清楚的看见是个URL

具体行为使用OD 分析,经分析sub_402990 是将上面的无规则字符串解密正确的字符串

然后调用sub_402110

malware_infected
分析 sub_402110,其功能就是下载网络中的文件,不过已经失效, 无法下载(http://www.kahusecurity.com/

malware_infected
接下来一部分和上面操作相似,下载 g.zip,和一个jpg 格式的图片,但是也已失效

malware_infected

接着往下分析进入sub_402690

malware_infected

malware_infected
通过异或操作进行PE文件的解密

malware_infected
程序调用 CreateToolhelp32Snapshot->Process32First-> Process32Next 这几个函数,程序在循环遍历系统中进程,查找”explorer.exe”进程。找到进程 ID 只有把 ID 值赋值给 v5。

接下来看sub_402360(时间戳)操作,我们可以看到就是将locale.dll文件的时间设置为notepad.exe的时间戳。

malware_infected

关键点:一个最常见的进程注入过程,OpenProcess 打开进程,VirtualAllocEx 在进程中分配内存空间, WriteProcessMemory 往申请的内存空间写入数据( Buffer )。然后通过 GetModuleHandleA-> GetProcAddress 得到 LoadLibrary 函数地址 , 最 后 通 过 CreateRemoteThread 在远程进程(explorer.exe)中创建一个新的线程。

malware_infected
通过载入OD仔细观察这一块

首先打开“C:windowssystem32locale.dll”文件,成功打开之后会执行一个循环。

malware_infected

在循环后下个断点,然后执行,发现程序在解密4349B0处的数据,解密后是一个PE文件,大小为0x11600字节

malware_infected

将文件 dump 出来,命名为 locale.dll,以备后续分析

退出sub_402690函数,到此最关键的部分已经大致分析完了

释放堆栈空间,创建一个cmd进程,通过ping将自身删除

malware_infected

locale.dll文件分析

DLL被加载的时候会调用这个函数,获取系统时间

malware_infected

然后调用sub_10001120

malware_infected
分析sub_10001120,程序创建线程,分析线程地址 StartAddress。

malware_infected

startaddress分析,还是解密一个文件,然后将执行shell命令打开文件

malware_infected
一个for循环解密"thpt/:d/p1ciuvng57in.olcuofdortnn.te"

至此, locale.dll文件重要部分已经分析结束

0x05手动查杀

通过以上分析如果要进行手动查杀的话需要:

1.删除生成注册表,下载文

2.删除cooki目录下的文件

3.删除C:windowssystem32locale.dll

相关推荐: 驱动病毒那些事(二)----回调

前言 在分析驱动病毒的时候,病毒为了实现其恶意功能不可避免的会注册各种回调函数。内核模块并不是生成一个进程,只是填写一组回调函数让Windows来调用。我们只有深入了解了回调函数的整个调用流程后,分析病毒起来才能更加得心应手。 文章有些长,请大家耐心阅读。 进…

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年7月18日21:53:46
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   malware_infectedhttps://cn-sec.com/archives/427365.html