-
-
[原创]浅谈macRansom
-
发表于:
2017-7-3 17:04
9283
-
前一段时间Windows上出现了WannaCry,造成了很大影响,在我们刚呼了口气时,Mac平台也’不甘示弱’地出现了首款勒索比特币的恶意软件—macRansom。
这个勒索软件在6.9日就被FortiGuard实验室发现并给出详细介绍,本文主要记录自己的分析流程,第一次分析这种勒索软件,真心希望各位前辈多多提建议,感谢!
首先在https://objective-see.com/blog/blog_0x1E.html找到样本,下载后先在虚拟机运行看看,结果发现运行后没有任何反应
既然这样,我们先通过lldb来看看能不能找到一些原因。
结果发现 运行失败。按理说比较通用的反调试就是ptrace了,不过我们还是先在hopper中看一看确认一下。
从入口开始往下看,看看伪代码,图中标出来的东西有没有一丝熟悉?0x1f
结合之前的有关ptrace的PT_DENY_ATTACH 31
,我们可以确定作者使用了ptrace。那这样的话就好办了我们直接修改汇编把0x1F
修改为0xa
,保存成新的可执行文件后再到虚拟机中看一看
这次我们通过lldb连接macRansom后,r一下,可以看到进程又终止了,说明还有别的检测姿势。没关系,我们继续从hopper中寻求答案!
在hopper中我们看到有两处jne loc_100001b05
,再来看看处理逻辑,我们会发现这里应该是有两处地方做出了某种检测导致进程加载失败。我们继续在lldb中,通过ni
指令,一直到函数跳转之前,通过读取内存看看究竟有什么问题
如图,我们看到了这里主要加载了一条指令sysctl hw.model
,百度了下这个hw.model
主要是来获得目标的硬件信息
那既然这样,我们应该看看下一部分检测了什么,但是要怎么做呢?难道我们又要在hopper中修改,保存后生成新的可执行文件,继续lldb??
,别急,看看反汇编,逻辑很清晰,我们只需要把rax的值改为0不就行了!
继续,我们在下一个跳转处通过x/s $rdi
,可以看到sysctl -n hw.logicalcpu/sysctl -n physicalcpu
,这个主要就是检测你系统中逻辑cpu和物理cpu的个数了
同样,我们通过之前的方法修改rax的值来绕过检测
继续运行,按理说这时候应该运行成功了
但是!这里还检测了系统时间,只有到了指定的时间才可以运行,否则它就待在你的电脑中什么事情都不做,这也是这个勒索软件的隐蔽之处
既然是勒索软件,那么它肯定会加密你的文件,那关于如何加密等信息我们还是从hopper来入手吧。
从函数入口往下看,一眼过去可以瞄到一个sub_100001f30
,跳转到它的伪代码,大致浏览一遍,我们猜测这个函数应该是对勒索软件中的一些字符串做了加密
代码逻辑比较简单,我们可以加载一个脚本,通过hopper来恢复它。
这里要说明一下,hopper是可以加载自己的脚本的,具体做法是把自己的脚本放在目录~/Library/Application Support/Hopper/Scripts
中,然后等hopper加载完可执行文件之后,点击菜单栏的scripts
,选择自己的脚本就可以加载了
我们可以看到一些被加密的字符串显现了出来,这为我们更直观地分析它提供了很大的帮助
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!