2017年第Mac恶意软件被IT管理带给我的注意,他发现了一些奇怪的即将离任的网络流量从一个特定的Mac。这导致了发现一块恶意软件与我以前见过,似乎实际上已经存在,未被发现,一段时间,而且目标似乎是生物医学研究中心。

该恶意软件表面上非常简单,只包含两个文件:

~ /。client SHA256: ce07d208a2d89b4e0134f5282d9df580960d5c81412965a6d1a0786b27e7f044 ~/Library/LaunchAgents/com.client.client. .plist SHA256: 83 b712ec6b0b2d093d75c4553c66b95a3d1a1ca43e01c5e47aae49effce31ee3

启动代理.Plist文件本身不可能更简单,只需保持.client始终运行。

<?XML Version =“1.0”编码=“UTF-8”?> <!Doctype Plist Public“ -  // Apple // DTD Plist 1.0 // en”“http://www.apple.com/dtds/propertylist-1.0.dtd“>    keepalive    label   com.client.client  程序janguments    /users/xxxx/.client    runatload    nsuielement   1   

.client文件是事情真的有趣的地方。它采用了缩小和混淆的Perl脚本的形式。

除此之外,Perl脚本还与以下命令和控制(C&C)服务器进行通信:

99.153.29.240 eidk.hopto.org

后者为动态DNS服务no-ip.com管理的域名。

该脚本还包括一些代码,用于通过shell命令拍摄屏幕捕获。有趣的是,它有代码要使用Mac“screencapture”命令和Linux“XWD”命令来执行此操作。它还有代码来获取系统的正常运行时间,使用Mac“uptime”命令或linux“cat / proc / uptime”命令。

脚本中最有趣的部分可以在__data__部分中找到结束。发现有一个MACH-O二进制,第二个PERL脚本和脚本类的java类,它脚本提取到/ tmp /文件夹并执行。在Java类文件的情况下,它与Apple.awt.uiElement设置为True运行,这意味着它在码头上没有显示。

quimitchin-perl-script

二进制本身似乎主要对屏幕捕获和网络摄像头访问感兴趣,但有趣的是,它使用了一些真正的古董系统来呼叫这些目的,例如:

sggetchanneldevicelist sgsetchanneldevice sgsetchanneldeviceinput sgnewchannel qtnewgworld sgsetgworld sgsetchann announds sgsetchannelusage sgsetdataproc sgstartrecord sggetchannelsampledescription

就科技世界而言,这些都是真正古老的功能,可以追溯到os X之前的日子。此外,该二进制文件还包括开放源代码libjpeg代码,最后一次更新是在1998年。

Java类似乎能够接收执行各种任务的命令,其中包括捕获屏幕、获取屏幕大小和鼠标光标位置、更改鼠标位置、模拟鼠标点击和模拟按键的另一种方法。该组件似乎旨在提供一种基本的远程控制功能。

quimitchin-java-class

我们还观察到恶意软件从C&C服务器下载一个名为“macsvc”的perl脚本。这个脚本使用mDNS构建本地网络上所有其他设备的映射,提供关于每个设备的信息,包括其IPv6和IPv4地址、网络上的名称和正在使用的端口。它似乎还试图连接它在网络上找到的设备。

macsvc SHA256: b556c04c768d57af104716386fe4f23b01aa9d707cbc60385895e2b4fc08c9b0

从C&C服务器下载的另一个文件被命名为“AFPSCAN”,似乎尝试连接到网络上的其他设备。

afpscan SHA256: bbbf73741078d1e74ab7281189b13f13b50308cf03d3df34bc9f6a90065a4a55

原始脚本中的Linux shell命令的存在导致我们尝试在Linux机器上运行此恶意软件,在那里我们发现 - 除了Mach-O二进制之外 - 一切都跑得很好。这表明这种恶意软件可能有一个变体,它明确地设计用于在Linux上运行,也许是使用Linux可执行代替MACH-O可执行文件。但是,我们还没有找到这样的样本。

我们能够在与同一C&C服务器通信的Virustotal上找到一对夫妇的Windows可执行文件。此外,一个包含字符串,表示它使用1998年与Mac Mach-O二进制相同的Libjpeg库。每个样品都永远只能提交一次VirusTotal,六月和七月2013,并且只能通过在通用名称几个发动机进行检测。

SHA256:94cc470c0fdd60570e58682aa7619d665eb710e3407d1f9685b7b00bf26f9647 SHA256:694b15d69264062e82d43e8ddb4a5efe4435574f8d91e29523c4298894b70c26

还有其他迹象表明,这种恶意软件已经长期循环未被发现。在其中一个受感染的MAC上,启动代理文件在2015年1月份进行了创建日期。然而,这不是真正创建日期的证据,因为这些日期很容易改变。

此外,在macsvc文件的代码中有一条注释,表明对Yosemite (Mac OS X 10.10)进行了更改,Yosemite是在2014年10月发布的。这表明恶意软件至少在约塞米蒂国家公园发布之前已经存在了一段时间。

if(/ _(tcp | UDP)\ s * \ s +(_ \ s +)$ /){$ s =“$ 2 ._ $ 1”;elsif(/icloud\.com \。\ s +(_ [^ \。] + \ ._(tcp | UDP))\。\ d + \。成员\ .btmm $ /){$ s = $ 1;}#在改变约塞米蒂ELSIF(/icloud\.com \ \ S + \ \ S + _autotunnel6 $ /。){下次;}

当然,另一个线索是一些代码的年代,这可能表明这个恶意软件可以追溯到几十年前。然而,我们不应该把代码的年龄作为恶意软件年龄的强烈标志。这也可能意味着,它背后的黑客真的不了解Mac,并依赖旧的文档。也可能是他们使用旧的系统调用来避免触发任何可能期待更近期代码的行为检测。

具有讽刺意味的是,尽管这种恶意软件的年龄和复杂性,但它使用了相同的旧功能技术,以便持久性,即许多其他Mac MalWare所做的:隐藏文件和启动代理。这使得易于发现,鉴于密切地查看受感染的机器(例如不寻常的网络流量)。它还可以轻松检测和易于移除。

我以前尚未发现此恶意软件的唯一原因是它正在非常紧密地攻击,限制其曝光。过去几年有一些关于中国和俄罗斯黑客的故事,针对和窃取美国和欧洲科学研究。虽然这一点没有证据表明这种恶意软件对一个特定的群体,但它在生物医学研究机构专门看起来似乎可能是这可能是那种间谍活动的结果。

必威平台APP将检测此恶意软件作为OSX.BackDoor.quimitchin。(为什么这个名字?因为Quimitchin是渗透其他部落的阿兹特克间谍。鉴于“古代”代码,我们认为这个名字拟合。)Apple称这个恶意软件果蝇并发布了一个将自动下载的更新防止未来的感染。