Assassin_ 发表于 2020-5-8 16:08

一个感染性病毒的分析

本帖最后由 Assassin_ 于 2020-5-8 16:25 编辑

# 一个感染性病毒的分析

## 前言

本人功法尚浅,如果有分析错误或者描述错误的地方,还请指正。

## 基本信息

基本信息

| 文件名称            | 3D Pinball                                                   |
| --------------------- | ------------------------------------------------------------ |
| MD5                   | e3de42be0f6b1d0c9dac45bfaf23a3e4                           |
| SHA256                | f6cb28c646c0dafbd34baad35390cd0972879c5d82047da44c47443606bc282c |
| 大小                  | 512.50 KB (524800 bytes)                                     |
| 类型                  | Win32 EXE                                                    |
| CPU(32/64)            | 32                                                         |
| 作用(下载/释放)       | 无                                                         |
| 打包/编译语言         | 无                                                         |
| 编译/保存日期         | 2008-10-16 19:14:58                                          |
| dll 导出函数          | 无                                                         |
| pdb                   | pinball.pdb                                                |


## 静态分析

利用IDA查看并不能看出什么有价值的信息,不过通过字符串搜索可以搜索出一些字符串,暂不知道作用,根据反汇编代码应该被加密



## 动态分析

动态调试

利用fs段查找Kernel基址



根据API名称获取指定API,VirtualProtect



修改内存属性,不过可以看到,该样本并没有提前申请空间而是在资源节中进行占位,提前申请了多余的空间进行后边的代码解密,我们可以看到修改内存属性为可读可写可执行



对比一下节表和内存布局,可以看到确实是多申请了空间



之后进行异或解密,代码进行简单的xor解密,分为两段,总大小为00011ADC+000026E0



解密之后在解密重定位表,然后对代码进行重定位 ,我们可以看到重定位的基址在0x01860000而不是该模块基址0x01000000



重定位完成之后,利用push\ret方法跳转到解密后代码



对API进行Hash,获取相应API,分别为GetEnvironmentStringsA、   GetModuleHandle、GetSystemDirectoryA,该样本都是采用该种方式进行API。



创建线程



我们先略过线程,向下分析,看到对程序入口点进行内存属性修改



修改入口代码



利用jmp直接跳回原代码入口点,发现此时代码为真正的正常软件的代码



我们回到之前创建的线程进行分析

解密字符串



利用GetProAddress获取API地址



之后加载库"advapi32.dll"、"sfc_os.dll"、"sfc.dll"、"Shell32.dll"、"user32.dll"、"ole32.dll"、"crtdll.dll"等并获取相应的API



创建字符串、并尝试打开文件C:\Windows\system32\gazv-mx-dis37,如果存在,直接退出





然后进入一个函数,该函数包括

当前用户名并查看是否包含“ SERVICE”或“ SYSTEM”字符串



比较用户名是否存在计算机名称中



比较系统环境变量是否存在"systemprofile"和"ervice"字符串



如果以上几种情况不存在,则尝试打开互斥体"kkq-vx_mtx",如果已经存在该互斥体则直接退出否则



创建互斥体kkq-vx_mtx1



注册名为kkq-vx的窗口函数



尝试打开互斥体gazavat-svc,若存在结束线程



设置DACL和和所有者



设置SeTakeOwnershipPrivilege权限,使其对当前系统任意文件具有写权限



解密一些反病毒服务和更新服务



然后就开始系统服务感染

遍历服务,获取服务信息,我们可以看一下获取信息的结构体

```
typedef struct _QUERY_SERVICE_CONFIG {
    DWORD dwServiceType;
    DWORD dwStartType;
    DWORD dwErrorControl;
    LPTSTR lpBinaryPathName;
    LPTSTR lpLoadOrderGroup;
    DWORD dwTagId;
    LPTSTR lpDependencies;
    LPTSTR lpServiceStartName;
    LPTSTR lpDisplayName;
} QUERY_SERVICE_CONFIG, LPQUERY_SERVICE_CONFIG;
```

可以看到服务类型,启动类型,程序路径,服务名称 等



比较是否为exe文件 ,如果不是exe文件则直接跳过,否则继续执行

如果存在以下svchost.exe\rundll32.exe\consent.exe\rsvp.exe\chrome.exe字符串,则直接跳过



修改过程为读取服务文件,进行处理,然后将添加了恶意代码的内存数据写入临时文件,利用copy直接覆盖文件完成替换



修改配置文件为自启动



如果为之前解密的反病毒服务或者更新服务,直接修改为DISABLE



可以看到原文件和注入后的文件相差很大





文件感染,利用FindFirstFile和FindNextFile循环遍历,进行感染,不在详述





之后创建两个线程

一个线程对文件进行追踪,以确保全部文件感染



第二个:

收集计算机信息,并利用WMI "SELECT * FROM Win32_Processor"、"SELECT * FROM Win32_BaseBoard"、"SELECT * FROM Win32_DiskDrive"、"SELECT * FROM Win32_ComputerSystemProduct"进行信息查询



然后寻找%ProgramDate%目录下的.dat文件



读取该文件,申请空间等操作,再次猜测他为执行内存执行代码





此时我们发现该文件并没有网络操作如何进行文件传输和执行呢。

之前我们错开了一个跳转,即三种情况的那个若存在以上任意一种情况,执行下边的函数,所以我们分析那个函数



创建gazavat-svc互斥体



这里和之前的相同的操作就不重复了,如对服务的注入,只说以下不同操作

隐藏操作中心图标



绕过Windows安全中心



关闭筛选器



之后还有五个线程

功能分别为

1. 遍历注册表,安装或者卸载指定软件



2. 监视文件,进行注入与之前的线程相同

3. 查讯信息,读取执行%ProgramDate%目录下的.dat文件与之前的线程相同

4. 关闭安全相关服务



5. 遍历进程,尝试结束杀软进程



以上就是五个线程的基本分析,之后还有最后一个函数

解密域名



最后进行连接,接收数据,写入文件等操作



以上,基本流程算是分析完毕,此致,敬礼。

附件:
密码:www.52pojie.cn

lmxhn 发表于 2020-5-9 09:31

感染 性病毒……哈哈

caller1 发表于 2020-5-8 19:26

看到标题第一眼感觉有问题,不是感染型么

lishun2233 发表于 2020-5-9 08:13

把标题看成别的的,不止我一个吧{:1_918:}

小妖不吃象 发表于 2020-5-8 18:34

看看,刚学不是很能看得懂。

zhangdexi 发表于 2020-5-8 18:51

看成性感的病毒了 {:1_925:}

完美的荷包蛋 发表于 2020-5-8 21:18

感谢分享

alittlebear 发表于 2020-5-8 22:01

一个感染 性病毒 的分析。。。

Hwj626 发表于 2020-5-9 09:54

zhangdexi 发表于 2020-5-8 18:51
看成性感的病毒了

哈哈哈哈,太强了,我也是

523067000 发表于 2020-5-9 12:32


厉害啊!这么好的东西!
页: [1] 2 3 4 5
查看完整版本: 一个感染性病毒的分析