malware_infected

  • Comments Off on malware_infected
  • 41 views
  • A+

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查壳

wKg0C2BkXVAWFfMAACImWg6HR8361.png

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

0x03 火绒剑进行监控

注册表监控

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

文件监控

wKg0C2BkXgeAd3GAABpW1x6nqI636.png

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

进程监控

wKg0C2BkXiAEHstAADjafUSQhs417.png

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

网络监控

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

行为监控

wKg0C2BkXoOAc3Y6AAAvaxY3Dh4838.png

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

0x04 动静恶意代码分析

关闭基址随机化

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

wKg0C2BkXwSAX3pcAAEe7ZFgWZI857.png

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

wKg0C2BkX2uAQXPcAAEsvowGfzM966.png

动静态分析

首先查看一下导入表的API

wKg0C2BkX6CAbhiOAAFOMb4uddE995.png

wKg0C2BkX6AP0icAACw0c8Bh5c499.png

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

wKg0C2BkX9WAG2F6AABgL3VJZ0g284.png

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

wKg0C2BkYByAaHBFAACI8Lobjw853.png

wKg0C2BkYCAb73yAABt1avEQk462.png

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

反汇编看一下

wKg0C2BkYEqASbtoAABqRy1L2Fs322.png

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

进入其进行分析

wKg0C2BkYG6ATs9KAAA4xkfEymk243.png

进入sub_402190

wKg0C2BkYIaATXxgAAAPPvQjoE594.png

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

wKg0C2BkYKaAf42gAAB3PW5XPZc751.png

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

接着sub_402A10往下分析

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

wKg0C2BkYgOAXMYCAABFUFn6avw045.png

wKg0C2BkYleADIvTAABlR9QoN6M636.png

wKg0C2BkYnOAD0o3AABvTedOKUM438.png

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

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

然后调用sub_402110

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

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

wKg0C2BkY5WAaFibAACWumOvsiA769.png

接着往下分析进入sub_402690

wKg0C2BkYeAQdTeAAB3UWQmgnc375.png

wKg0C2BkZEAK6dqAABYB3RaT9U987.png
通过异或操作进行PE文件的解密

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

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

wKg0C2BkZaeAS8yoAABDdpnxsHE512.png

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

wKg0C2BkZ1SAMfWFAABOATHqVsQ155.png
通过载入OD仔细观察这一块

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

wKg0C2BkZ5iAZInqAABS2zPTw54898.png

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

wKg0C2BkZ7iAeaxlAAFwgEAHi0A694.png

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

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

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

wKg0C2BkaSCAYSoXAABADtU8lUo764.png

locale.dll文件分析

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

wKg0C2BmiZuAaDunAABSzo47xzU362.png

然后调用sub_10001120

wKg0C2BmigKASyhtAAAeEfp3Hkc263.png
分析sub_10001120,程序创建线程,分析线程地址 StartAddress。

wKg0C2BmikGAb6V6AAAw0H30xpI061.png

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

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

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

0x05手动查杀

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

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

2.删除cooki目录下的文件

3.删除C:windowssystem32locale.dll

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

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