MacOS 的 ssl4.plist 挖矿病毒排查记录
平时遇到基本上是 Linux 挖矿病毒,MacOS 还是第一次见,记录一下排查过程
发现
最近在内网发现大量挖矿告警,payload 如下:
1
2
3
4
5
6
7
8
9
10{
"method": "login",
"params": {
"login": "",
"pass": "",
"rigid": "",
"agent": "xmr-stak/2.10.1/65ade74b9/master/mac/amd-cpu/20"
},
"id": 1
}
目的 ip 是:43.249.204.183
,端口 8888
。
排查
由于是异地办公机,于是就只能要了个 vpn 远程控制进行排查。顺便吹一波 MacOS,内网远程控制特别方便:
首先确保防火墙是关闭的
然后点击 共享,
然后再点击 电脑设置
这个 打钩
然后 屏幕共享 勾选
右边会出现一个 vnc://ip
,让你小伙伴把这个发给你就行了。打开 finder 之后,按 cmd+k
将 vnc://ip
拷贝进来,点击 连接 就 ok 了。然后会有个提示让你二选一,选择第一个就行(类似 什么权限申请之类的),然后你的小伙伴需要点个 确定,你就能看到小伙伴的屏幕了。
既然有通信的 ip,那当然是直接上 virustotal 看一下了:
可以看到,这个 ip 绑定的域名出现过恶意文件 ssl.zip
,查看详情的时候会发现很多查杀的结果是挖矿病毒:
与现象吻合。
登陆之后,本来想打开 活动监视器 的,结果直接闪退。。。用 top 看了一下进程:
这个叫 ssl4.plist
的进程稳定占用了 80% 的 CPU,看了一下这个 pid 的路径:
1
2
3$ lsof -p 37680
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ssl4.plis 37680 macbook cwd DIR 1,4 256 33624176 /Users/macbook/Library/Caches/com.apple.XV
该目录的目录树:
1
2
3
4
5
6
7
8
9
10
11» tree
.
├── config.txt # 钱包配置文件
├── cpu.txt # 性能限制的配置文件
├── openssl
│ └── lib # 必要的动态库
│ ├── libcrypto.1.0.0.dylib
│ └── libssl.1.0.0.dylib
├── pools.txt # 矿池配置文件
├── ssl3.plist # xmr-stak-rx
└── ssl4.plist # xmr-stak-rx
ssl3.plist
、ssl4.plist
其实都是 xmr-stak-rx
:
1
2» ./ssl4.plist -v
Version: xmr-stak-rx 1.0.4-rx 65ade74b9
随便提一下,xmr-stak
是一款集成了 CPU、GPU 挖矿的工具,由最初的 xmr-stak-cpu
、xmr-stak-amd
和 xmr-stak-nvidia
三款集成而来,支持 64 位的 Windows、Linux 和 MacOS 系统。后面还出了 xmr-stak-rx
,支持 RandomX 算法,感兴趣的可以自行搜索。
kill 了之后,还会有个 osascript
占用有点高:
然后过了一会 ssl4.plist
又出现了。不过也算意料之中,挖矿病毒一般都有自启动/常驻留的方式,比如 Linux 有 开机自启动 /etc/init.d/
和 crontab。而 MacOS 也有 crontab 和开机自启动的脚本:
/Library/LaunchDaemons
:系统启动时运行,用户不登录也会运行/Library/LaunchAgents
:用户登录后运行~/Library/LaunchAgents
:用户自定义的用户启动项/System/Library/LaunchDaemons
:系统自带的启动项/System/Library/LaunchAgents
:系统自带的启动项
这些目录下的每个 .plist
文件中,有 3 个属性控制着是否会开机自动启动:
- KeepAlive:决定程序是否需要一直运行,如果是
false
则需要时才启动。默认false
- RunAtLoad:开机时是否运行。默认
false
- SuccessfulExit:此项为
true
时,程序正常退出时重启(即退出码为 0);为false
时,程序非正常退出时重启。此项设置时会隐含默认RunAtLoad = true
,因为程序需要至少运行一次才能获得退出状态
而在 ~/Library/LaunchAgents
里就有 com.apple.FB1.plist
、com.apple.XV.plist
:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23$ cat ./com.apple.FB1.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.apple.FB1</string>
<key>Program</key>
<string>/usr/bin/osascript</string>
<key>ProgramArguments</key>
<array>
<string>osascript</string>
<string>-e</string>
<string>do shell script "osascript ~/Library/LaunchAgents/com.apple.XV.plist"</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StartInterval</key>
<integer>60</integer>
<key>WatchPaths</key>
<array/>
</dict>
</plist>
至于 com.apple.XV.plist
,是个二进制文件,又以 FasdUAS
开头,当 AppleScript 脚本被存储成 脚本
格式的时候(应该是被编译了),就是这个格式。准确的说,这个文件后缀应该是 .scpt
。遗憾的是,这个脚本的作者在保存的时候选择了 仅运行
,所以没法打开:
暂时没有找到逆向的方法,排查到此为止。
清理
- 删除
~/Library/LaunchAgents
下的com.apple.FB1.plist
、com.apple.XV.plist
(注意,文件名中的FB1
、XV
可能是随机生成的) - 删除
~/Library/Caches/com.apple.XV/
(注意,文件名与上面的com.apple.XV.plist
对应。 - kill ssl4.plist(可能的格式为 ssl+数字.plist)以及 含有
osascript
的进程,比如:osascript /Users/xxx/Library/k.plist
等等。(其实重启就好了应该 - 重启后再次确认是否有异常进程
- 检查是否有第三方网站下载的 app,或者盗版/破解版 app,卸载。
后续
收工之后,搜了一下 ondayon.com
,找到了微步的一篇情报,差不多验证了我的猜测,其中也包括 活动监视器 闪退。另外这篇文章指出,感染的方式是安装了“破解版”的 APP 或者在第三方下载的 APP。
还有一篇更早的分析报告,很详细。
最后,从挖矿病毒的文件名来看,从最初的 ssl.plist
到现在的 ssl4.plist
,可能已经变种很多次了。
其实上面的排查还差确认是哪个破解版的 app 附带的挖矿病毒,可惜找了一圈都没发现。下载了微步那篇文章里的样本,mac 版本太高没法运行;而根据安全客的文章,也没发现有单独的恶意脚本。猜测可能是安装的时候释放一次恶意脚本,然后就删除了,反正有自启动的方法。
IoC
IP
101.55.20.149
132.148.245.101
132.148.245.101
43.249.203.223
43.249.204.183
43.249.204.249
45.195.146.32
域名
fadayfa.com
funningx.com
ondayon.com
ondayon89464516.com
safaf4ghdn.space
sgposerverbc.com
wodaywo.com
wodaywo100001.com
wodaywo65465182.com
www.ondayon.com
www.wodaywo.com
www.wodaywo65465182.com
file url
http://ondayon.com:8080/ssl.zip
http://www.ondayon.com:8080/ssl.zip
来呀快活呀