Dyre 简单分析
0. 概述
1 |
|
脱壳后的程序中可以看到 C:\CPP_PROJECTS_GIT\DYRE\x64\Release\dyrecontroller.pdb 因此大多数杀软将样本命名为dyre。Dyre的主要目标为在线银行。样本看上去是一个PDF文件,其实则是使用scr后缀的可执行文件,引诱受害者点击文件。
Dyre的一些其他样本 MD5:
- 999bc5e16312db6abff5f6c9e54c546f
- b44634d90a9ff2ed8a9d0304c11bf612
- dd207384b31d118745ebc83203a4b04a
1. 感染与传播
从网上的公开资料来看,样本主要传播途径为钓鱼邮件。
2. 工作流程
- 复制自身 (C:\Documents and Settings\user\Application Data\googleupdaterr.exe)
- 执行复本文件
- 删除自身
- 注入Explorer 进程
- googleupdaterr.exe 进程退出
由于注入Explorer后,进程退出,在任务管理器中看不到任何可疑进程,代码在Explorer中 执行。Dyre 通过写注册表启动项实现自启动,系统启动后将自动执行恶意文件。
1 |
|
3. 网络协议
由于时间较长了,url链接基本都访问不了了,所以这部分内容就不重点说了。
http://192.99.6.61/cho1017/W512600.19532DF60D132DC4E0153BE41218BD1A/5/publickey/
217.12.207.151:8900 和 192.99.6.61:80 都已失效。
可以参考下面这篇文章的图片
Project Dyre: New RAT Slurps Bank Credentials, Bypasses SSL
VirusTotal 的Passive DNS 可以也可以看到一些内容
从链接提供的内容来看,Dyre使用HTTP协议来进行C&C通讯,C&C服务器的IP在代码中硬编码。
4. 高级技术
4.1 脱壳
这个样本使用了反混淆技术,不仔细看的话就像一个正常的MFC程序,其实运行到一定阶段, 进程空间里所有的代码都被替换。脱壳过程中未发现反调试的现象,OEP应该是4021F0,在OD里设置硬件执行断点,F9就可以dump了,修复IAT后可以正常运行。
4.2 进程注入
我们的目标代码应该是注入到 Explorer 中的代码。其实脱壳后的样本的资源文件里包含了注入到Explorer的代码,分别是PAYLOAD32和PAYLOAD64.
Dyre的进程注入和一般的样本有一定的区别,使用了ZwQueueApcThread来启动,而并没有使ZwSetContextThread。在跨进程写则使用了ZwMapViewOfSection而没有使用大家熟悉的ZwWriteVirtualMemory,隐蔽性较强。
新版的Ollydbg 2.01, 支持调试子进程,在子进程中可以看到以下代码
可以确认注入的确实是资源文件里的payload
附录A
strings
1 |
|
参考资料
https://www.virustotal.com/en/file/dc276b0113694ecc62913311e2580857754aa890173dfaa9d95afad6396bb741/analysis/
https://www.fireeye.com/blog/threat-research/2015/07/dyre_banking_trojan.html
https://www.blueliv.com/downloads/documentation/reports/Network_insights_of_Dyre_and_Dridex_Trojan_bankers.pdf
https://portal.sec.ibm.com/mss/html/en_US/support_resources/pdf/Dyre_Wolf_MSS_Threat_Report.pdf
http://www.seculert.com/blog/2015/04/new-dyre-version-evades-sandboxes.html
https://blogs.cisco.com/security/talos/threat-spotlight-dyre