Eraseme后门分析

天融信阿尔法实验室 陈峰峰

0×00 概述

这是@neteagle捕获的一个样本,好奇索要过来看看,简单分析了一下;这是一个带感染功能的后门程序。由于其传播名称eraseme_%d%d%d%d%d.exe,所以我们称之为Eraseme后门。这是我第一份分析报告,感谢hj大侠和段哥的指导。分析中如有不对的地方也望各位指出。

样本主要包含三个程序:

PE程序(PE0):外壳程序,主要负责释放PE1

PE程序(PE1):核心程序,负责感染、控制,使用UPX减小体积,释放SYS1

驱动程序(SYS1):修改系统TCPIP并发最大连接数

 

0×01 程序运行流程

图片1

  • PE0程序运行流程(eraseme_51587.exe

1.检查环境是否是处于正常环境中,如果存在文件监视、进程监视、wireshark程序正在运行,或者运行在wmware或Sandboxie沙箱环境中,则直接退出;(ps:其中还检查当前用户是否为currentuser,猜测可能是某个沙箱环境会使用currentuser用户名登录,有知道的朋友帮忙告知一下)

检查是否在VMWare

图片2

检测Sandboxie

图片3

找是否执行了wiresharkprocomonfile monitorregistry monitor

图片4

2.在正常环境下,解密自身资源,获得PE1注入新创建的进程中执行;

图片5

3.清理文件  Open C:\Windows\system32\cmd.exe /c del C:\eraseme_51587.exe >nul

4.退出

  •  PE1程序运行流程
  1. 获取操作体系统版本;
  2. 检查计算机用户名是否包含‘snadbox’,‘vm’这种字段。如果存在就退出;
  3. 获取当前模块名称写入注册表项HKLM\SOFTWARE\Microsoft\windows\currentVersion\run,实现开机自启动
  4. 判断系统目录下是否已经存在文件winrsc.exe,不存在的话,就将PE0复制到系统目录更名为winrsc.exe(Xp下复制自身到c:\windows\system目录下,Win7放到%APPDATA%\Microsoft\windows\Start Menu\programs\startup\目录下)
  5. 存在的话就会创建一个线程执行后门主要功能:

1) 创建exe文件执行互斥

2) 通过ZwSystemDebugControl,隐藏当前进程(XP有效),创建一个线程释放SYS文件到C:\windows\system32\drivers\sysdrv32.sys,加载驱动并运行。

3) 创建一个线程伪装Web服务器,随机生成一个端口(1120~64535),并进行监听,并且收到’GET ‘字符开头的数据时。就会向该连接发送自身二进制数据;

4) 与C&C服务器mail.vspcord.com,555端口建立TCP连接,连接成功后发送机器相关信息,等待接收命令,根据指令发送相关信息

5) 创建一个线程,遍历搜索内网,查找内网所有开放139445端口的主机。并对这些主机进行IPC$暴力破解(自带一个简单的字典,同时可以通过远程控制下发新的字典数据),破解程序将其复制到远程主机上,重命名为Eraseme_%d%d%d%d%d.exe(%d1-9的随机数),并创建服务执行或者使用计划任务执行,并向C&C服务器发送

”PRIVMSG #xploit :[ntpass(NetAddJob)] \\192.168.231.128  $passwd$:$username$ [$share]”

“PRIVMSG #xploit :[ntpass(Service)] \\192.168.231.128  $passwd$:$username$ [$share]“;。

6) 创建一个U盘监视的线程,当有U盘存在的时候,会拷贝自身到U盘根目录下生成win.com文件。并且在根目录写入autorun.inf文件来自动执行该文件。

提权

图片6

实现进程隐藏

图片7

图片8

检查活动的用户名是否包含CurrentUsersandboxvmware等字段

图片9图片10

复制自身到系统目录

XP下复制到c:\windows\system\

Win7复制到%APPDATA%\Microsoft\windows\Start Menu\programs\start up\

图片11

1.释放sysdrv32.sys,修改系统TCPIP最大并发连接数,默认为252

图片12

2.监听自身ip下随机的一个端口,等有连接发送来”GET ”数据时候,先发送HTTP/1.0 200 OK..Server: private…..

图片13

再把自身二进制数据发送过去

图片14

3.向mail.vspcord.com服务器发送机器相关信息,并等待服务器返回数据,根据数据执行相关命令

图片15

发送机器相关信息

图片16图片17图片18

接受并执行服务器发送的指令和代码

图片19

4.遍历局域网下开放445139端口的主机,然后通过ipc$将自身文件传播到局域网主机中

图片20

遍历内置用户名以及密码表,成功连上之后通过ipc$进行局域网传播

图片21

图片22

5.远程启动

通过创建服务启动

图片23

向C&C服务器发送“PRIVMSG #xploit :[ntpass(Service)] \\192.168.231.128  $passwd$:$username$ [$share]“;

图片24

通过计划任务启动,向C&C服务器发送”PRIVMSG #xploit :[ntpass(NetAddJob)]  \\192.168.231.128 $passwd$:$username$ [$share]”

图片25图片26

6.有移动磁盘的时候,会复制自身到该移动磁盘根目录win.com,并且写入autorun.inf文件,插入系统直接执行样本

图片27

图片28

 

0×02 总结

经过分析,可以看出,其加入了很多虚拟机、沙箱的检查,能够逃避部分APT检测工具检测,但其躲避方法比较普通;代码中针对XP的功能较多,以及通过NetBios暴力猜测方式传播,猜测应该是一个早期的样本。

 

Written by 漏洞应急响应中心