设为首页收藏本站 开启辅助访问
搜索
    查看: 909|回复: 0

    [安全新闻] 关于explorer一键挖矿病毒的分析研究

    [复制链接]
    发表于 2018-8-6 11:52:10 | 显示全部楼层 |阅读模式
    近期我们的海青安全研究实验室捕获了一个新的挖矿木马样本,目前网络上还未见到关于它的分析。与以往的木马相比,这次捕获的样本有了不小的“进化”:手段更加隐蔽,清除更加困难。我们对它的各项特点进行了分析,希望给行业内带来针对此类木马的新的认识,进而发掘更有效的防护措施。

    一、木马简介

    业务环境:powershellv3及以上版本(v1/v2未测试)

    二、木马特点
    1.        纯powershell编写挖矿前置脚本,不是像以前那种使用批处理等简单挖矿了,使用一系列持久化机制,保证自身挖矿功能;

    2.        探测防火墙,探测虚拟机,探测反木马软件,进行对应的行为;

    3.        修改防火墙及反木马软件配置及策略,避免一些防护软件扫描,以及防火墙将挖矿链接阻断;

    4.        缓存认证密码,可选增加用户等机制;

    5.        使用代理中转连接,每个肉鸡都是代理服务器,增加了追踪溯源难度;

    6.        使用更新维护机制,若不清除干净,会常常复发;

    7.        系统隐藏目录存放文件,且很难清除;

    8.        清除竞争对手,保证自己利益最大化;

    9.        使用涉及各方面技术较多。

    执行流程

    对应文件功能

    网络代理方式


    三、Powershell木马代码审计

    木马powershell脚本开头定义了参数集,默认使用参数集Setup



    给脚本基本变量赋值,脚本名、脚本路径、服务名等。
    输出木马版本为2017-12-10


    自定义函数


    $argv0 = Get-Item $MyInvocation.MyCommand.Definition //获取当前运行目录
    根据启动参数执行对应命令


    首先默认执行的是setup
    1、获取系统类型架构

    2、比较安装目录与执行目录脚本时间差,判断是否更新服务


    3、创建服务运行机制
    $source变量保存的是服务主函数,之后会将$source变量中的源代码编译成二进制程序


    编译位二进制程序cspsvc.exe(程序名随编译的脚本名改变而改变)。


    其功能是注册服务,注册服务后cspsvc.exe作用是带参数-SCMStart启动cspsvc.ps1脚本后,-SCMStart启动功能是重新以管理员权限运行cspsvc.ps1脚本


    4 、配置服务运行账户,默认为LocalSystem。


    5、尝试从c:\windows\fonts\arial\config.xml配置文件中读取配置,若配置文件不存在,尝试从c:\windows\SoftwareDistribution\config.xml复制过来,若都不存在,则使用下列地址配置挖矿账户和矿池。


    初始化探测反木马软件、探测防火墙等配置


    如果有域,则使用域后门机制


    6、本地后门文件隐藏
    如果不存在文件
    c:\windows\SoftwareDistribution\config.xml、C:\Windows\fonts\arial\config.xml,
    不存在隐藏文件夹
    C:\Windows\fonts\arial\
    则创建文件夹
    C:\Windows\fonts\arial\


    7、设置读取矿机WEBUI内配置信息解析格式,以供后续使用


    8、修改计算机注册表\HKEY_LOCAL_MACHINE\SYSTEM\Software\Microsoft\DriversPath


    从上述第三个步骤开始进入另外一个进程分支,即服务模式运行,即-SCM参数启动脚本

    Service段代码被加密,将代码中的iex改为echo,解密后分析其执行代码结构。


    1、通过bios信息判断机器是否是虚拟机,如果是,是哪种,不是则为物理机

    2、排除掉自己的挖矿进程外,干掉挖矿竞争对手,即带有关键字xmr、miner、programdata\new、programdata\win、programdata\Window、programdata\Windows等进程。


    3、判断域名内是否带有*csd*、*CSP*、*SERVER-BI*、环境变量$env:COMPUTERNAME、*WIN-IT9E5B2V9AE*、*IT9E5B*、*xzspn*、*dtlab*,
    若有则测试127.0.0.1:5650tcp端口是否打开,如果没有打开探测路径
    C:\Program Files (x86)\Remote Manipulator System - Host,如果有就删除C:\Program Files (x86)\Remote Manipulator System - Host\,然后下载http://185.48.59.45/uni/RMS.exe到C:\ProgramData\RMS.exe,然后运行,接着更改防火墙配置;

    如果IP为212.16.70.23然后下载http://185.48.59.45/uni/RMS.exe到C:\ProgramData\RMS.exe,然后运行,接着更改防火墙配置;


    4、请求dns,’msupdate.info’,若无响应则连接服务器为$ms = "185.48.59.45"

    5、删除计划任务


    6、查找路径


    7、停止进程*JavaCu*

    8、如果存在sc_nmap服务,则删除$env:windir\System32\sc_snmp.ps1脚本和sc_nmap服务;查找进程路径名为*sc_service*、*snmp_reciever*、进程路径名为*sc_snmp.ps1*的进程并强行停止。

    9、查看防火墙规则相关服务,并将其规则文件$env:windir\System32\firewall_rules.ps1和服务删除firewall_rules

    10、终止Windows更新进程命令行为:*windowsupdate.ps1*

    11、如果存在sc_snmp或firewall_rules服务,获取驱动路径注册表HKLM:\SYSTEM\Software\Microsoft\DriversPath中restart项,若无restart则新建键,其值为0;如果restart值为3则删除restart键值。请求计划任务*start service*,如果存在则删除;创建计划任务Start Service,一分钟之后执行任务计划,运行服务。
    $data = (get-date).AddMinutes(1).ToString("HH:mm")
    schtasks /create  /TN "Start Service" /TR "net start cspsvc" /SC ONCE /V1 /Z /ru System /ST $data

    12、如果不存在sc_snmp和firewall_rules服务,若存在任务计划名如*start service*,将其删除。如果不存在目录$env:windir\fonts\arial,但存在$env:windir\SoftwareDistribution\config.xml,则将config.xml复制到$env:windir\fonts\arial。若都不存在,则在arial目录新建config.xml,将矿机配置信息写入


    13、如果存在C:\Windows\SoftwareDistribution\windows.log,获取config.xml中AV变量,默认为1,则默认设定认为反木马软件不存在。添加防火墙排除项。


    若设定手工设定为0,则认为反木马软件存在,若机器不是服务器,判断其防火墙类型是windows defender或System Center Endpoint Protection,接着添加扫描排除项。


    针对部分域,做了特定的识别。


    14、如果认定反木马软件不存在,设定矿机路径为c:\windows\fonts\ttf\,常用路径为c:\windows\fonts\arial,临时路径为c:\windows\fonts\temp。如果有域,则检查域内后门是否存在\\$domain\sysvol\$domain\Policies,接着设置注册表,将WDigest身份认证缓存在内存。


    15、fw默认设置为0,若手工设置为1,则设置地图服务Mapsvc自动运行。
    防火墙规则开启3389,并且远程连接地址添加"185.48.59.0/24,$ips.0.0.0/8"$ips为IP的A段。这样就可以使所有处于内网地址的基本都可以连接。


    16、Psw为账户选项,默认值为0,提供Psw参数为账户密码,并提供了group参数,且如果是管理员则利用WINNT组件添加用户


    并添加为可登录用户


    17、矿池服务器80端口若是开启,则开启757端口代理转发msupdate.info,并且703端口也代理转发到服务器185.48.59.50:80


    757端口为代理矿池服务器下载转发端口,703端口为矿池连接进行挖矿流量转发端口。


    若无法连接互联网,若为域则从域后门复制dll到$env:windir\Fonts\arial,若域为*mi3g*,则连接代理端口192.168.10.99:14445,若能连接C2则设定该代理IP为代理服务器。若存在文件api-ms-win-core-console-l2-2-0.dll,其内容为代理服务器列表。


    18、更新矿机
    访问http://msupdate.info/uni/MD5/explorerx64.exe.md5,获取最新矿机、木马ps1脚本MD5值,然后对比本地矿机、木马ps1脚本MD5值决定是否更新,若有更新,则创建任务计划”update”将文件下载到c:\windows\fonts\temp,然后覆盖旧文件。



    更新办法:


    19、根据硬件UUID,判断硬件性能,选择挖矿模式


    20、测试连接矿池703端口,poolstemp.txt来源于pools.txt,根据配置和矿池连通性,从中选取一条配置,创建配置信息$GeneralPath\config.json。


    21、接着再释放一段加密代码,到c:\windows\system32\drivers\en-US\GpCheck.ps1,同上面方法,代码中的iex改为echo,解密代码,发现其作用是维护更新文件、端口转发、防火墙策略、测试矿池连通性等。


    22、写入xml文件到c:\windows\font\temp\task.xml,该文件作用是利用任务计划创建gpcheck,调用gpcheck.ps1


    23、释放加密代码到c:\windows\System32\drivers\WmiPrvSE.ps1,同上方法解密其代码

    首先使用wmi创建了挖矿进程 c:\windows\Fonts\ttf\explorer.exe


    一旦发现分析工具,则中止挖矿进程


    24、再次释放了一个精简版gpcheck.ps1,其主要功能不变但精简了不少检查。

    从第23个步骤开始进入explorer挖矿分支,矿机会监听999端口,通过本地访问可以获得矿机状态信息。


    账户adm,密码14370


    四、IOCS

    URL
    http://msupdate.info/uni/explorerx64.exe
    http://msupdate.info/uni/explorerx86.exe
    http://msupdate.info/uni/visual.zip
    http://msupdate.info/test.txt
    http://msupdate.info/uni/MD5/explorerx64.exe.MD5
    http://msupdate.info/uni/MD5/explorerx86.exe.MD5
    http://msupdate.info/uni/MD5/explorerx86.exe.md5
    http://msupdate.info/uni/MD5/explorerx64.exe.md5

    File
    C:\Windows\Fonts\arial
    C:\Windows\Fonts\Logs
    C:\Windows\Fonts\temp
    C:\Windows\Fonts\ttf
    c:\windows\SoftwareDistribution\config.xml
    c:\windows\system32\drivers\en-US\GpCheck.ps1
    c:\windows\System32\drivers\WmiPrvSE.ps1
    C:\Windows\System32\drivers\etc\services
    C:\Windows\System32\drivers\etc\protocol
    C:\Windows\System32\drivers\etc\networks
    C:\Windows\System32\drivers\etc\lmhosts.sam
    C:\Windows\System32\drivers\etc\hosts

    Domain/Ip
    msupdate.info(185.48.59.45:80)
    185.48.59.52:34444
    185.48.59.51:24444
    185.48.59.50:14444

    wallet
    47am2aMvQqCLnRBMqBzXfgfuUMKZhBY3SgY45xV6ikJWXDJ5NLtKq3DPGm1sqiuen1YCE1Ak6nwdg3sx8n6rXpWLF4mFpwq

    4BEUrVUbd8h579R2b87uoGRjyDMTGirQaYazVdnLZuwCN2S8SNDzviCL8YDdsPoCKR5EfHWAYYK5xRU1JprZ2v8MP4siP87

    42XyygMzMRjd6A2MvPVXMGbZ6PzNe7Sivd8ek3ySHBmg18dDCWRhCZ6RFxVZFFUvoyCDnwA5Y2tSeSCaZAEq4n6q6DD8pQK

    追踪:查询矿池代理服务器为俄罗斯IP,服务器也是俄语操作系统


    所有IP都属同一个C段,相信这至少是一个长期的据点。

    五、处置方案

    1、进程清理
    清理转发规则:
    Powershell运行以下命令
    Start-Process PowerShell.exe -ArgumentList("-c &{netsh interface portproxy delete v4tov4 listenport=757;netsh interface portproxy delete v4tov4 listenport=703;pause}") -Verb runas


    清理带有\System32\drivers\WmiPrvSE.ps1文件路径的进程(可能已经退出)

    2、注册表清理
    病毒配置:\HKEY_LOCAL_MACHINE\SYSTEM\Software\Microsoft\DriversPath

    防火墙配置清除
    检查防火墙配置
    HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender\Exclusions\
    将防火墙策略配置修改为正常状态

    修改
    HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest\UseLogonCredential 为0
    为0

    3、文件清理
    删除目录及文件
    C:\Windows\Fonts\arial
    C:\Windows\Fonts\Logs
    C:\Windows\Fonts\temp
    C:\Windows\Fonts\ttf
    c:\windows\SoftwareDistribution\config.xml
    c:\windows\system32\drivers\en-US\GpCheck.ps1
    c:\windows\System32\drivers\WmiPrvSE.ps1
    C:\Windows\System32\drivers\etc\services
    C:\Windows\System32\drivers\etc\protocol
    C:\Windows\System32\drivers\etc\networks
    C:\Windows\System32\drivers\etc\lmhosts.sam
    C:\Windows\System32\drivers\etc\hosts

    若为域则要清除\\$domain\sysvol\$domain\Policies\及其子目录下的explorer.exe


    正常情况下文件资源管理器是看不到logs目录的,而且显示了隐藏文件夹(win10和winserver2008下)也看不到,但可以在cmd或者powershell可以探测到


    使用PCHUNTER强行删除,或者进入安全模式下删除,或者使用强力的杀毒软件对指定目录进行清除。


    4、服务清理
    服务名cspsvc,显示名为Cryptographic Service Providers。

    5、任务计划清理
    任务计划GpCheck

    6、批量排查
    Nmap批量扫描999端口

    账户adm,密码14370

    7.主机病毒木马检测



    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|小黑屋|Archiver|手机版|安全狗论坛-汇聚安全的力量 ( 闽ICP备14014139号-1  

    GMT+8, 2018-10-17 22:57 , Processed in 0.098796 second(s), 21 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表