导语:2018年的第二周,macOS就迎来一款DNS篡改恶意软件OSX/MaMi,objective-see对DNS篡改恶意软件OSX/MaMi进行了深度分析。
背景
1月11日的时候,有人在MalwareBytes论坛发帖说遭遇了DNS劫持:
之前并没有发现过有macOS系统的劫持DNS设置的恶意软件,所以研究人员对该恶意软件(OSX/MaMi)进行了深入分析。
分析
该恶意软件保存在不同的站点上,比如http://regardens.info;目前尚不知该恶意软件的感染途径。
根据WhatsYourSign的显示,该文件并没有什么特别的,知识一个未签名的64位可执行文件。
当然了,一般新的恶意软件出现后,杀毒软件等都不能及时检测。VirusTotal的59个引擎都把该恶意软件标记为clean了。
通过对该恶意软件分析,我们发现他的app版本号为1.1.0,这就说明该恶意软件发布时间应该不久。
通过分析objective-C的类名和方法可以对恶意软件的功能有个大致的了解。文中研究人员用了J. Levin's invaluable jtool攻击来复制这些信息:
看起来,这个恶意软件好像是一个dns劫持工具,因为其中一个method是setupDNS,其他的功能有:
截屏
生成模拟鼠标操作
下载和上传文件
执行命令等
在应用的主入口(-[AppDelegate applicationDidFinishLaunching:]),我们发现大龄的加密字符串传递给了setDefaultConfiguration: method:
使用debugger (lldb)的方法来解密这些数据
上面的都是一些配置数据,最重要的部分就是:
在lldb中,研究人员对setupCert和setupDNS方法设置了断点:
研究人员推荐的另外一个工具是自己开发的ProcInfo(github地址:https://github.com/objective-see/ProcInfo)
首先该恶意软件会请求安全工具安装自己从互联网下载的新证书(dcdata.bin)。
可以通过Keychain Access应用来查看安装的证书,它是在系统keychain中作为根CA的(可能是MITM攻击)
回到procInfor的进程监控:
SystemConfiguration/preferences.plist文件中的内容就是DNS设置!!!
还记得上面解密的配置信息吗,里面有两个IP地址(82.163.143.135,82.163.142.137),这两个IP地址就被加入到plist文件中了。
同样可以在UI界面中看到这些变化,系统设置(网络):
是的,DNS设置被劫持了。
但是该恶意软件好像并没有长期驻留的意思,虽然它更改了系统的DNS设定,但是也有自删除功能。当研究人员控制该恶意软件来执行修改plist的方法initMaMiSettings时,ProgramArguments
key中配置的值非常简单,该值是告诉系统哪些是要持续执行的:
研究人员认为可能在虚拟机中持续执行的条件没有达到,研究人员仍在进一步研究中。
与Windows恶意软件的关系
研究人员发现2015年有一篇文章是关于这两个IP地址的,题目为“The
mystery of 82.163.143.172 and
82.163.142.174”。文章介绍了一款Windows平台上的劫持DNS设置的恶意软件DNSUnlocker。根据DNS地址和安装的证书判断,该恶意软件与OSX/MaMi应该是相关联的。
DNS地址:
82.163.143.172
82.163.142.174
证书:
所有恶意软件安装的证书都是一样的。
结论
OSX/MaMi并没有运用什么先进的技术,只是以一种简单、持久的方式改变了系统设置。通过安装根证书和劫持DNS,攻击者可以执行中间人攻击,窃取用户身份凭证、注入广告等。
恶意样本下载地址:
解压密码:https://objective-see.com/downloads/malware/MaMi.zip
Q&A:infect3d
Q: 用户如何知道有没有感染该恶意软件?
A: 检查DNS设置,如果DNS被设置为82.163.143.135和82.163.142.137,说明感染了恶意软件。通过可以检查有没有恶意证书cloudguard.me,如果安装的话:
Q: 如何自我保护?
A: 一般恶意软件会安装其他的恶意软件,或者允许远程攻击者执行一些命令。因此,如果用户发现感染了该恶意软件,最好的方式就是重装系统。如果用户不愿意重装系统,那么至少要删除恶意DNS设置并且移除安装的恶意证书。
删除恶意的DNS设置:
打开系统设置,点击网络—高级—DNS,如果设备感染,就会看到恶意的DNS服务器地址82.163.143.135和82.163.142.137。选择每个地址,点击删除按钮。
移除证书:
打开Keychain Access应用,点击系统,如果系统设置(system),如果设备感染,就会看到恶意的证书(cloudguard.me),点击删除进行移除。
Q: 安全工具可以保护吗?
A: 是的,但是到目前为止,杀毒软件等还不能检测。