一、基本信息

样本名称:1.exe
样本编译时间:
样本类型:MZ for MS-DOS
样本文件大小:234,496 字节
样本文件MD5 校验值(md5、certutil):324b6ab5e45e2a106025be8802d39511
样本文件SHA-256校验值(shasum、certutil) :3c2952b8e4351727e26025036532b31841b06c45b5e0e3faec4110d1959aad8b
壳信息:MPRESS v2.12 - [ v2.19 ]
可能受到威胁的系统:DOS系统
样本图标:
样本功能:

二、样本行为分析

1、网络行为分析

1.exe

  • 发起网络连接请求

image.png

images.exe

  • 发起网络连接请求

image.png

2、文件行为

1.exe

  • 在程序文件夹下新建Microsoft DN1

image.png

  • 读取多个文件夹下desktop.ini配置文件

image.png

  • 在程序文件夹下新建文件images.exe

image.png

3、注册表行为

1.exe

  • 设置IE浏览器最大同步下载的连线数目

image.png

  • 在Windows\CurrentVersion\Explorer\下新建了一个键值 ADDEJIWOQK,设置了一个注册表项inst,类型为Binary

image.png

  • 将images.exe添加为开机自启动项

image.png

images.exe

  • 和1.exe类似


4、进程行为

1.exe

  • 调用cmd执行Conhost.exe

image.png

image.png

  • 启动自释放文件images.exe(BA_exec_extratedfile)

image.png

三、样本执行过程

  • 入口两个函数

image.png

  • 第一个函数,设置security_cookie

image.png

  • 第二个函数为主体函数,进入定位到关键函数(0x00401730)

image.png

  • 跟进后发现第四个函数为功能函数(0x401300)

image.png

  • F7步入分析,发现第一个函数关闭了控制台程序

image.png

  • 进入第二个函数(0x401000),该函数首先获取了当前进程的句柄,然后调用VirtualAllocEx分配内存,大小为0xC00000字节,有执行权限,返回值为分配的起始地址(0x920000),此时该块区域全部被0填充。

image.png

  • 接下来将内存地址(0x495000)处的0x28000字节数据逐字节进行取反操作,处理后的数据放入到新分配的内存中。

image.png
image.png

  • 对0x92000处的数据进行解密,得到shellcode1。

image.png
image.png
image.png

  • 转去执行shellcode1

image.png

shellcode1

  • 首先利用PEB结构定位后续需要的导入表函数的实际地址

image.png

  • 接着shellcode自身存在一个PE文件(0x92053F)

image.png

  • 检查该PE文件的一些基础信息(Magic,文件头地址,区块数目,可选头大小,入口点RVA)

image.png

  • 分配一块新的内存区域,大小为0x154000,页属性为可读可写。

image.png
image.png

  • 将上述PE文件复制到新分配的内存中
    • 复制PE头

image.png
image.png

  • 复制各个区块

image.png

  • 修正IAT表

image.png

  • 更改各个段的属性(例:.text段内存属性为PAGE_EXECUTE_READ)

image.png

  • 因为修改了内存,所以调用ZwFlushInstructionCache函数转去执行这个PE程序(shellcode2)

image.png

shellcode2(恶意行为)

  • 新建一个线程

image.png

  • 该线程执行的函数功能包括:
    • 调用GetCommandLineA,获取命令行参数

image.png

  • 调用GetStartUpInfo,取得进程在启动时被指定的 STARTUPINFO 结构,用 GetProcessHeap 返回调用进程的默认堆句柄,用 RtlAllocateHeap 分配堆内存。接着获取模块句柄,最后关闭进程。

image.png

  • 数据库操作
  • 注册表操作
  • 连接远程服务器

四、加密算法分析

  • 取反

    五、通信协议分析

    六、自我保护技术分析

  • 加密

  • 不落地执行dll

    七、IOC

  • IP

  • 命令行

    八、预防及修复措施

    九、总结

    十、分析工具