前言
Wannamine2.0是wannamine家族的变种。该家族特征是使用NSA泄露的eternalblue漏洞利用工具包+扫描传播模块+挖矿木马,一切未打ms17-010漏洞补丁的机器都将是其目标,对于网络中存在ms17-010漏洞的机器而言,它是不可忽视的安全威胁。该挖矿木马为了躲避杀毒软件查杀,特地将主控程序加密并放到资源EnrollCertXaml.dll中。样本通过MS17-010(永恒之蓝)漏洞进行传播,其漏洞利用模块是使用的NSA工具包eternalblue和doublepuls,即2017年影子经纪人所公开的NSA工具包,定时和C&C进行连接接受命令和更新模块,主要目的为挖掘门罗币。
一:目录
- 1.目录
- 2.样本信息
- 3.样本分析
- 4.防御手段
二:样本信息
- 1.样本名称:spoolsv.exe
- 2.样本md5:97911A1DA380F874393CF15982C6B1B9
- 3.是否加壳:无壳
- 4.编译语言:Microsoft Visual C++ v14 - 2015 - x64
- 5.样本来源:客户受感染主机
三:样本分析
母体文件
首先,获取系统信息和进程线程ID,进行运算,产生标志,这一点和WanaCry一致。
接着初始化网络。创建一个名为{F5175396-40C2-0218-278D6EE}的互斥体。
然后,程序创建了五个线程,分别执行查找指定文件,链接445端口,进行局域网内传播,获取主机名和同一网段内的其他主机IP验证是否可以通过445端口链接,开辟存储TCP表,从task.attendecr.com:80/task处读取文件到内存,访问读取error.ttemdecr:8080/log,或者scan.attendecr.80/status内容。
Thread_1:
- 连接字符串,c:\windows\System32\EnrollCertXaml.dll,判断c:\windows\System32\EnrollCertXaml.dll是否存在,如果存在,则读取入内存,
- 如果不存在,创建C:\Windows\SpeechsTracing\Crypt”目录,然后释放病毒文件到C:\Windows\SpeechsTracing\Misresoft
- 删除源目录
- 拼接字符串,读取svchost的配置信息
- 释放x86.dll和x64.dll文件到C:\Windows\SpeechsTracing\Microsoft\中
- 根据上面的print函数(相当于赋值操作),创建了两个进程,执行c:\windows\SpeechsTracing\Microsoft\svchost.exe操作,
- 读取并写入stage1.txt,判断攻击是否成功
- 然后,通过CreateProcessA函数启动spoolsv.exe安装后门程序,同时将这个行为特征记录在stage2.txt。
- 调用CreateThread,创建一个线程。
- 连接字符串,c:\windows\System32\EnrollCertXaml.dll,判断c:\windows\System32\EnrollCertXaml.dll是否存在,如果存在,则读取入内存,
Thread_2
- 遍历每个IP地址
- 创建线程,每创建64个线程,暂停500ms
- 连接445端口和63257端口,
- 进入关键区,将可以被利用的地址保存,
Thread_3
- 获取用户名和主机名
- 如果不是本地回环,则将ip地址传入sub_14000C110,目的是交给线程2
- 获取用户名和主机名
Thread_4
- 存放已经可以被利用的IP的Tcp表,
- 存放已经可以被利用的IP的Tcp表,
Thread_5
- 从task.attendecr.com:80/tasks读取文件到内存
- 从task.attendecr.com:80/tasks读取文件到内存
Thread_6
- 从访问读取error.ttemdecr:8080/log,或者scan.attendecr.80/status处读取文件
- 从访问读取error.ttemdecr:8080/log,或者scan.attendecr.80/status处读取文件
x86.dll(x64.dll)
x64.dll和x86.dll针对不同的架构,但是其功能是相同的。所以为了篇幅期间只分析x86.dll。
可以看到x86.dll有三个导出函数,分别是DllRegisterServer,DllUnregisterServer,DllEntryPoint,从名字上来看这只是只是注册服务和删除服务的导出函数。
- 创建了互斥体名为{B3DD837C-473B}的互斥体
- 初始化网络,创建了线程,主要用于释放病毒,这里释放的是关于上文所述的EnrollCertXaml.dll,然后解压
- 将恶意代码数据写入SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost中的netsvcs中,而svchost是用来加载成组服务的,netsvcs 是一组服务的集合,不是单个的服务,具体哪些服务在netsvcs里,由此我们可以知道,病毒写入此注册表的目的是为了启动服务。从而实现常驻。
- 以c:\windows\System32\svchost.exe -k netsvcs参数创建服务。
- 设置服务的描述和文件信息,servicedll指向dll文件的路径。
备注
由于样本不全,无法对病毒的关键逻辑进行分析。
四:防御手段
1.打ms17-010补丁
- 官方补丁【注:补丁如果打不上原因kennel是补丁依赖,即安装此次的补丁需要前一个补丁的支持。】:https://docs.microsoft.com/zh-cn/security-updates/Securitybulletins/2017/ms17-010
2.封堵445端口
- 防火墙禁用445端口
- 组策略445端口
- 禁用SMB服务
3.安装安全软件
- 进过测试,国内大部分安全厂商具备查杀此类病毒的能力
- 建议:查杀时,最后隔离网络,避免交叉感染
4.如何判定是否安装补丁
- 1)控制面板-程序和功能-卸载程序-补丁更新
- 2)cmd命令行-输入systeminfo
- 3)win+R 输入regedit,依次展开,查看注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\Currentversion\hotfix
5.安全意识
- 不下载、不运行未知来源的软件,不点开不明链接,要有网络安全防范意识。