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查壳
可以看到是32位的,没有加壳,通过对入口点的观察可以看到开启了基址随机化(ASLR)保护。
0x03 火绒剑进行监控
注册表监控
通过打开注册表键和获取注册表项值,从而恶意程序添加以上键值。
文件监控
恶意程序通过对创建,写入,打开等从而对文件进行一系列的操作。
进程监控
打开以上进程之后对其进行跨进程写入内存操作,然后恢复线程。
网络监控
连接网络后,从网站上下载一个压缩包和一张图片
行为监控
恶意程序入侵explorer.exe通过以上监控我们可以大致了解到这个恶意程序进行了哪些操作
0x04 动静恶意代码分析
关闭基址随机化
通过查壳是可以观察到地址这个恶意程序开启了基址随机化(ASLR)
将动态的基址关闭,,然后转存到存储位置,地址随机化就关闭了。
动静态分析
首先查看一下导入表的API
通过观察API可以看出可能是远程注入
我们通过函数的交叉引用,sub_402690中调用了VirtualAllocEX,然后我们通过多次的交叉引用看看能不能找到start函数
通过两次交叉引用找到了主函数。
反汇编看一下
通过观察分析sub_402A10是关键函数
进入其进行分析
进入sub_402190
可以看出这一块是获取进程句柄后打开一个隐藏窗口,通过遍历进程
进入 sub_402190 分析,看到一些组合函数 CreateToolhelp32Snapshot-> Process32First-> Process32Next,程序通过进程名查找进程,如果找到指定进程执行终止进程操作。
接着sub_402A10往下分析
看到了疑似获取文件属性的函数,但是不清楚xmmword_xxxxxx数据。可以Alt+A将其显示出来
这样我们就能清楚的看见是个URL
具体行为使用OD 分析,经分析sub_402990 是将上面的无规则字符串解密正确的字符串
然后调用sub_402110
分析 sub_402110,其功能就是下载网络中的文件,不过已经失效, 无法下载(http://www.kahusecurity.com/)
接下来一部分和上面操作相似,下载 g.zip,和一个jpg 格式的图片,但是也已失效
接着往下分析进入sub_402690
通过异或操作进行PE文件的解密
程序调用 CreateToolhelp32Snapshot->Process32First-> Process32Next 这几个函数,程序在循环遍历系统中进程,查找”explorer.exe”进程。找到进程 ID 只有把 ID 值赋值给 v5。
接下来看sub_402360(时间戳)操作,我们可以看到就是将locale.dll文件的时间设置为notepad.exe的时间戳。
关键点:一个最常见的进程注入过程,OpenProcess 打开进程,VirtualAllocEx 在进程中分配内存空间, WriteProcessMemory 往申请的内存空间写入数据( Buffer )。然后通过 GetModuleHandleA-> GetProcAddress 得到 LoadLibrary 函数地址 , 最 后 通 过 CreateRemoteThread 在远程进程(explorer.exe)中创建一个新的线程。
通过载入OD仔细观察这一块
首先打开“C:windowssystem32locale.dll”文件,成功打开之后会执行一个循环。
在循环后下个断点,然后执行,发现程序在解密4349B0处的数据,解密后是一个PE文件,大小为0x11600字节
将文件 dump 出来,命名为 locale.dll,以备后续分析
退出sub_402690函数,到此最关键的部分已经大致分析完了
释放堆栈空间,创建一个cmd进程,通过ping将自身删除
locale.dll文件分析
DLL被加载的时候会调用这个函数,获取系统时间
然后调用sub_10001120
分析sub_10001120,程序创建线程,分析线程地址 StartAddress。
startaddress分析,还是解密一个文件,然后将执行shell命令打开文件
一个for循环解密"thpt/:d/p1ciuvng57in.olcuofdortnn.te"
至此, locale.dll文件重要部分已经分析结束
0x05手动查杀
通过以上分析如果要进行手动查杀的话需要:
1.删除生成注册表,下载文
2.删除cooki目录下的文件
3.删除C:windowssystem32locale.dll
前言 在分析驱动病毒的时候,病毒为了实现其恶意功能不可避免的会注册各种回调函数。内核模块并不是生成一个进程,只是填写一组回调函数让Windows来调用。我们只有深入了解了回调函数的整个调用流程后,分析病毒起来才能更加得心应手。 文章有些长,请大家耐心阅读。 进…
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论