Handbrake是一个macOS上的视频转码器,结果他们的官网被黑客入侵后,换上了他们自己含有木马的应用,这让我不由的想起了去年三月的一个恶意软件——KeRanger,看来
黑掉官网->替换木马程序->感染
这条路也是让人防不胜防啊~
该木马由今年5月中旬被Patrick分析,这里主要记录一下自己的分析学习的流程
0x0 感染方式
该木马是由于黑客入侵了Handbrake的官网之后被替换的,这首先就让很多以为在官网下载就不会出事
的人们尴尬了许多,下载安装的时候还算正常
0x1 OSX / Proton.B
OSX / Proton.B主要做了以下几件事:
- 当用户安装Handbrake软件时,一个木马程序被偷偷安装
- 弹出弹框,诱使用户输入管理员密码,以执行高权限的指令
- 与服务器通信,ssh以及上传文件到远程服务器,监听按键等
0x2 详细分析
我们先来安装这个Handbrake.dmg
文件
打开之后可以看到正常打开了这个视频转码器,但是过了几秒之后,突然弹出一个弹框
总之感觉莫名其妙,先乱输一个密码试试
结果发现,在Dock中很诡异的出现了几秒钟终端
的身影,看来果然不安好心
提示密码错误后,我们继续输入正确密码,看看到底有什么花样
结果当然又调用了终端
,然后在桌面上就基本上没什么改动了
按理来说,外部平静的时候,其内部必然早已风起云涌,那就让我们走的再近一点吧
我们首先打开活动监视器,可以看到出现了一个新的进程–activity-agent
,猜想肯定是之前输入了管理员密码之后的一系列操作运行了它
当我们打开应用程序的Resources
目录看一看有没有什么奇怪的东西
表面看起来一切正常,但是仔细一看,在nib文件中,其他的文件都是几k,而这个HBPlayHUDMainController.nib
文件要一点多兆,果然没有表面上的那么和谐~
我们在命令行中看一看,原来是个zip文件,那这样一来,我们之前输入了密码之后原程序做了一些操作来解压这个文件,既然是程序启动时做出的操作,又因为这个程序是用oc写的,那我们应该在AppDelegate中寻找答案!
我们一路找下去,看到一个[AppDelegate comrad:],其中有bin/sh,这是要做一些编译??我们动态调试进去先看看
结果发现了pgrep -x activity_agent && echo Queue.hbqueue
这条命令,意思就是当程序运行时检查系统中有没有activity_agent
这个进程,有的话输出队列,没的话解压安装。可是我们又不知道密码怎么解压?别急,我们可以尝试直接把那些命令字符串dump下来。
dump之后我们可以看到一些命令,是说要去运行/tmp中的名叫HandBack的程序??
别急,我们先解压看看
与此同时,在活动监视器中我们可以看到出现了这个进程HandBack
,打开后果然印证了。
那这样说来,我们当前在动态调试的HandBack
已经没用了,接下来我们就要转战第二战场–tmp。
找到tmp目录中的.app文件,打开之后我们直接来动态调试,结果发现有反调试保护,我们直接给ptrace下断点看看是不是,因为Mac上反调试的手段相对别的来说还是比较少的。果不其然,我们在触发了断点之后直接thread return
来绕过,看看rdi
,猜想是对路径中的.hash
文件一些操作或改动
不得不说这个.hash
文件很有问题,我们都知道以”.”开头的文件在默认情况下都是隐藏的,它越这样越说明它有很大的问题!
紧接着我们在地址sub_10001e690()
的伪代码中找到一个方法
点进去之后看到,原来这就是用来解密.hash
文件的方法,看了看密钥没有被硬编码,那我们就继续动态调试,直接给地址下断点之后触发
这样我们就轻而易举的拿到了密钥~
接下来让我们来解密.hash文件,解密之后是这样的
然后通过密码破解之后可以看到非常多的指令,放眼望去,基本上这个恶意软件要做什么怎么做都写的很清楚了。
先和之前一样强制性的让你输入管理员密码,拿到root权限之后就开始手机你的浏览器中或者其他地方一些重要的信息
然后通过nc激活监听,成功后把拿到的数据上传到服务器
所以接下来的事情不言而喻……
0x3 总结
以上的分析基本上概括了这个恶意软件由下载到执行再到对受害者造成危害的一系列流程,就和之前的针对macOS平台的全功能勒索软件KeRanger
一样,受害者是从正规的途径收到伤害,这可真的是让大部分人防不胜防啊。但是细心的你如果从一开始输入密码时就看到那个一闪而逝的终端进程时,如果够警惕,立马kill进程卸载软件,就能很大程度的避免。
苹果在后来的特征库中好像加了这个,其中就有上一篇文章中的http://bobao.360.cn/learning/detail/4071.html
不过你看看,我们今天讨论的这个Proton.B,这样只通过一个sha-1来验证的话可能没有什么太大的用处
因为这样只需要稍微修改一下二进制文件就能绕过了~
0x4 参考
https://objective-see.com/blog/blog_0x1D.html
https://objective-see.com/blog/blog_0x1F.html
https://www.cybereason.com/labs-proton-b-what-this-mac-malware-actually-does/