记一次内网恶意样本分析

2018-10-10 19:16 恶意文件 逆向分析

1.前言

1.1概述

前一段时间,在内部测试网段做给产品做压力测试时,发现100%的CPU使用率,即使在停止压力时,CPU使用率也忽上忽下,发包机有点卡顿,打开在资源管理器中找到一个占用很多资源的进程,发现了MsMpEng.exe进程,以及以system权限运行的cmd.exe进程,虎躯一震,顿觉不妙。登陆部署在内网的网藤PRS进行查看,发现MS-17 010漏洞利用事件、暴力破解以及端口扫描等事件告警,已经有初步的内网扩散迹象。查找文件系统发现tmp-89847867.exe恶意文件。以下是针对该样本的分析过程。

1.2样本信息

病毒名称:tmp-89847867.exe
大小: 527360 bytes
修改时间: 2018年7月20日, 18:30:09
MD5: C3EEEC50A1F476A22E1DB700B5CA3B37
SHA1: 9D425343DE3F43DC03EEC09BB677EAD35ACAFC2D
CRC32: 46981E2E

2、环境、工具与方法

测试环境:VMware Workstation 14 Pro,Win7 32bit
测试工具:OD,IDA,PEID,火绒剑
分析方法:动态静态结合分析,使用监控软件查看恶意软件行为

3、分析过程


获取临时文件指定路径


拼接出MsMpEng.exe文件的全路径


找到本体文件中的0x66号资源


找到资源在文件中的地址


加载资源,释放出 C:\Users\root\AppData\Local\Temp\MsMpEng.exe文件


使用 ShellExecuteA函数打开cmd.exe,参数是刚释放的文件的路径,通过cmd打开MsMpEng.exe注入到 lsass.exe进程中获取到本机的用户名和密码,写入到MsMpEng.text文件中


读取 lsass.exe 进程的内存


在控制台中输出MsMpEng.text文件中的内容


输出完用户名称和密码后删除可执行文件和保存账户密码的文件


创建5个线程然后挂起主线程

线程1:


获取网卡信息,通过获取的网卡信息解析出来网卡的MAC地址


动态调试会卡在这个查询客户端的函数,绕过之后发现感染机器会传数据给服务器


感染机是以 “ipc.php?v=1&mac=&ip=&host=&” 的格式把数据传回服务器


每隔1000毫秒就传数据给服务器

线程2:

线程2中又创建了线程,主要功能都在子线程中

整个线程每隔1000毫秒循环一次(这就是为什么会发现这个恶意样本的原因,因为样本中开启的线程太频繁导致占用资源太多,电脑会变得特别卡,如果可以及时结束没用的线程就会加强隐蔽性更不容易被发现)


新线程中尝试创建网络共享文件,并且输出了Attack字符串


利用之前获取的本机的用户名和密码创建共享文件


成功创建共享文件后会输出 “BINGO_xxxxxxx”


获取临时路径和“\ DB03C5A.tmp”进行拼接


查找0x65号资源,释放文件


创建管道


获取本进程的启动信息


获取系统路径


通过刚获取的系统路径拼接出 cmd.exe 的全路径,并创建 cmd 进程

线程3:


线程3开始会等待线程4获取主机所在IP段的所有IP,然后对这些IP进行445端口的连接
连接32.2的445端口
每30毫秒就会循环创建一个连接445端口的线程

线程4:


获取主机名称


使用gethostbyname根据主机名称获取的 hostent 结构体中保存有主机的IP,通过解析hostent结构体,获得主机所在的IP段


通过获取到的IP段生成段内的所有IP


每900秒就会循环一次线程,生成IP地址。(红色部分是被我修改过的)

线程5:


获取本机的IPV4的TCP连接表
1.本地IP地址
2.本地端口
3.远程IP地址
4.远程端口

4、样本行为总结

1.在系统文件临时目录下试放恶意文件和文本文件
2.注入lsass.exe进程获取被感染机的用户名和密码
3.连接log.estonine.com服务器
4.将系统用户名和密码上传至病毒服务器
5.对被感染机所在的ip段中的所有ip进行扫描
6.获取本机的TCP连接表

5、查杀与防范

防范:根据目前掌握的信息,预防这个病毒应该关闭445端口或者关闭文件共享服务,防止恶意文件扫描本机的445端口,或者通过共享文件服务进行传播。

查杀方法:如果已经被感染,可以删除本机的系统文件临时目录下的tmp-xxxx.exe和MsMpEng.exe文件,找到\HKEY_LOCAL_MACHINE_SYSTEM\CurrentControlSet\sevices\RpcPolicyMgr\Parameters键值中的dll所在位置,删除dll文件,再把键值删除之后就手动清除完毕了。或者安装杀毒软件进行查杀。

作者:斗象能力中心TCC-Gouchen

评论(3)

3residents

2023/01/26 22:16
3catacombs

2irresolute

2022/09/02 20:13
2twenty-ninth

匿名

2019/11/27 09:39

发表评论

captcha