恶意PowerShell脚本分析

admin 2022年11月7日21:52:06评论97 views字数 2171阅读7分14秒阅读模式


恶意PowerShell脚本分析

该恶意文件为ACE压缩文件,内含4个jpg文件和一个PE文件,利用WinRAR漏洞(CVE-2018-20250),诱使受害者解压文件触发漏洞释放PE文件到启动目录,等待计算机重启后自动执行。通过自启的PE文件,释放powershell脚本、vbs脚本,并写入自启项到注册表,层层解密得到最终的powershell攻击脚本,计算机启动后自动执行攻击脚本。脚本包含功能:远端下载文件、接收执行远端命令、解码数据等功能。powershell脚本经过几十次的混淆,手动反混淆比较费时间,定位到混淆用到的指令iex所在C#库,修改替换库可以比较方便的获取到混淆之前的代码。


1. 样本概况1.1  样本信息文件名:9CFB87F063AB3EA5C4F3934A23E1D6F9Size: 410224 bytesMD5: 9CFB87F063AB3EA5C4F3934A23E1D6F9SHA1: 7E181CE4CD405836E658C888334CD5893637FB1ACRC32: 7A9FCD5C1.2  测试环境及工具运行平台:Windows 7 X64系统监控工具:火绒剑调试工具:IDA Pro、Windows Powershell ISE2. 沙箱监控使用WinRAR打开查看压缩包内容,包含4个jpg图片文件和一个exe文件Dropbox.exe,并设置有路径:C:C:C:..AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup

恶意PowerShell脚本分析

恶意PowerShell脚本分析

解压后会触发WinRAR漏洞(CVE-2018-20250),释放exe到启动目录。

恶意PowerShell脚本分析

恶意PowerShell脚本分析

恶意PowerShell脚本分析

Dropbox.exe将在计算机启动时自动运行。其详细功能见逆向分析。3.    逆向分析3.1 CVE-2018-20250WinRAR目录穿越漏洞(CVE-2018-20250):该漏洞是由于WinRAR 所使用的一个陈旧的动态链接库UNACEV2.dll所造成的,该动态链接库在2006 年被编译,没有任何的基础保护机制(ASLR,DEP 等)。该动态链接库的作用是处理ACE 格式文件。而在解压处理过程中存在一处目录穿越漏洞,允许解压过程写入文件至开机启动项,导致代码执行。3.2 Dropbox.exe分析将Dropbox.exe脱掉upx壳

恶意PowerShell脚本分析

脱壳后的PE文件信息

恶意PowerShell脚本分析

使用IDA Pro静态分析,主要行为:释放并执行ps1脚本。

恶意PowerShell脚本分析

释放目录:

恶意PowerShell脚本分析

3.3 释放的脚本a.ps1

恶意PowerShell脚本分析

恶意PowerShell脚本分析

主要行为:解密生成并执行vbs脚本3.4 释放的vbs脚本

恶意PowerShell脚本分析

恶意PowerShell脚本分析

恶意PowerShell脚本分析

恶意PowerShell脚本分析

主要行为:创建id.png文件,被加密的powershell脚本文件”

恶意PowerShell脚本分析

创建tmp.vbs文件,用于隐藏窗口执行命令

恶意PowerShell脚本分析

注册开机自启服务CortanaService,作用为—启动tmp.vbs无窗口执行解密脚本,解密脚本解密id.png文件,得到“被混淆的powershell脚本”,见下图。

恶意PowerShell脚本分析

脚本执行完成后,文件资源管理器查看被释放的文件:

恶意PowerShell脚本分析

解密脚本:

恶意PowerShell脚本分析

解密得到被混淆的ps1脚本,该脚本分析见下节。3.5 反混淆powershell脚本混淆脚本见下图:

恶意PowerShell脚本分析

脚本使用Invoke-Expression指令,将混淆脚本代码字符串作为命令执行,并使用字符串反转、字符串替换等手段混淆脚本。修改替换Invoke-Expression指令对应的库,在执行iex函数执行命令时保存命令文本,得到如下明文脚本:

恶意PowerShell脚本分析

该脚本开机时被执行,详细分析见下节。3.6 明文powershell脚本

恶意PowerShell脚本分析

运行时首先进入如下循环:(该循环作用为连接服务端并上传设备信息)尝试获取设备信息,并连接服务器,连接成功则跳出循环进行下一步操作。

恶意PowerShell脚本分析

获取设备信息操作如下:(1)收集当前环境信息:Windows版本;内网IP地址;系统位数;计算机名称;用户组;公网地址。(2)计算hash得到一个设备识别id。

恶意PowerShell脚本分析

(3)获取计算机当前公网地址如下

恶意PowerShell脚本分析

连接服务端报错日志:

恶意PowerShell脚本分析

由于样本的远端服务器失效,将在死循环请求连接。手动跳出循环观察后续行为:进入下一个循环:(本循环用于接收服务端指令)

恶意PowerShell脚本分析

恶意PowerShell脚本分析

恶意PowerShell脚本分析

分发服务端返回的指示,并执行对应指示操作:

恶意PowerShell脚本分析

恶意PowerShell脚本分析

该循环的主要行为整理如下:

恶意PowerShell脚本分析

4.  网络行为4.1 上传设备信息的post请求:

恶意PowerShell脚本分析

url:http://162.223.89.53/oa/data:序列化的设备信息4.2 接收服务端指令的get请求

恶意PowerShell脚本分析

url:http://162.223.89.53/oc/api/?t={deviceID}4.3 发送服务端指令执行结果

恶意PowerShell脚本分析

url:http://162.223.89.53/or/?t={deviceID}data: 处理结果4.4 查询计算机所在公网ip

恶意PowerShell脚本分析

恶意PowerShell脚本分析

5.  溯源5.1 IP关联

恶意PowerShell脚本分析

样本请求的服务器地址被收录在微步开源情报, 地址标签归属于APT组织MuddyWater。5.2 公开报告根据APT组织MuddyWater与样本利用漏洞检索发现微软曾发布如下报告:利用WinRAR CVE-2018-20250漏洞的针对性攻击分析。报告提供CVE-2018-20250利用的攻击链与本样本一致:

恶意PowerShell脚本分析

5.3 APT组织简介

恶意PowerShell脚本分析

在收录的apt组织利用手段信息库中,本次样本的利用方式,也匹配该组织曾使用的技术手段。

恶意PowerShell脚本分析


其它学习教程。

恶意PowerShell脚本分析恶意PowerShell脚本分析



恶意PowerShell脚本分析





原文始发于微信公众号(安全狗的自我修养):恶意PowerShell脚本分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年11月7日21:52:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   恶意PowerShell脚本分析http://cn-sec.com/archives/1395308.html

发表评论

匿名网友 填写信息