我们发现很多Mac用户对自身的安全并不是很重视,针对用户的恶意软件逐渐增多,窃取用户的隐私, 监控用户的日常行为, 恶意推广广告, etc。因此,我们应该提高自身的安全意识, 警钟长鸣。
0×01 前言小夏是一名普通Mac用户,某天,他打算试试思维导图来记录工作学习。
他问同事小芳:“Mac下有啥好用的思维导图软件?”
小芳:“XMind呀,很实用的思维导图软件。”
小夏:“那到哪里下载,要钱吗?”
小芳:“哎,你百度XMind破解版呀! 不需要花钱的,直接安装!”
小夏:“这么方便!我试试!”
0×02 样本概述Xmind是一款实用的思维导图软件,正版官网售价高达99刀, 这个价格当然对普通用户无法承受, 通过搜索,很多站点都提供了破解版下载
对比相同版本号的正版和破解版, hash如下:
dab95dbad19995aeb88cc5d1bb0a7912 XMind_orig //正版 v3.7.1我们发现该样本采集了用户的很多隐私信息, 上传到了第三方服务器,采集信息如下图
目的:1、黑产非法售卖用户信息, 泄漏用户隐私2、广告推广, 获取盈利3、钓鱼执法, 发送侵权律师函4、etc
下面我们对该样本详细分析
0×03 基本信息在Mac应用中,OSX系统下的Mach-O是可执行文件格式,程序跑起来解析Mach-O,然后链接系统的库文件以及第三方动态库。
我们使用MachOView进行解析
在可执行文件 Load Commands 字段中记录了程序的加载指令,LC_LOAD_DYLIB是程序加载的动态库,其中Name字段记录了该动态库的路径,通常程序启动会根据该字段加载动态库。这里发现其加载了新增的两个动态库文件libcJFishPoolHook.dylib、libXMindHook.dylib。除此之外,XMind使用Java编写,移植到Mac平台,可执行文件也没有什么值得重点分析。
总结一下,主要做了如下事情:
1、程序启动初始化,获取资源文件。
2、加载.ini配置文件,得到启动的参数键值对。
3、将参数解析,然后运行加载Library(Java打包的动态库).
直接对比正版和破解版的包目录,在包中我们发现了多出来的2个dylib文件
libC.JFishPoolHook.dylib libXMindHook.dylib下面对这2个dylib进行详细分析
0×04 dylib分析对于Mac/iOS中使用到的dylib,可以使用class-dump和hoppper结合进行反汇编分析。class-dump又是一款开源解析MachO利器,与MachOView相似的是,他可按照MachO偏移量,找寻符号表(Symbol Table),从而导出类名和方法名,但是他提供了诸多参数用于导出不同架构的MachO链接符号表。使用如下命令导出类名方法名到文件中:
$ class-dump --arch x86_64 libCJFishPoolHook.dylib > header.txt $ cat header.txt从导出结果来看,很可疑的是CJFishPoolHook类,该类有多达16个成员, 写该动态库的程序员非常老实,没有进行任何加密、混淆类名、方法名的操作,因此从字面上也不难猜出其含义为qq号、微信号、手机号、邮箱号、操作系统、CPU类型、内存、MAC地址、内网IP、公网IP、用户名、应用列表、设备ID,是否上传信息、开启应用和关闭应用的时间。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。