三个有趣的脱壳例子

最近看了youtube上的一些视频教程,看到了几个有趣的脱壳方式。这里介绍下。具体的视频教程在MalwareAnalysisForHedgehogs和hasherezade的youtube频道下面。

案例一

工具:python、HxD

样本:https://www.hybrid-analysis.com/sample/a6cbeeecfb50bf94499547fbf0adc6451326be45a16462f9056eaba2342fcf2c?environmentId=100

我们知道有一些壳会用一个key去和最初的源文件进行xor运算。那么这种情况下只要找到那个key就可以和样本xor,从而有机会直接在样本的某个部位找到那个PE文件然后dump出来。将我们的样本在HxD里面打开。

这里我们看到了一个反复的字符串”W..1..4..3..5..8.....”。所以我们猜测这就是那个key。然后看我选中的那段内容,开头是“.Z”,这让我们想起来PE文件的“MZ”头。我们猜测的key第二个字节是“.”也就是“00”,而“00”和“Z”进行xor的话还是“Z”,所以猜测这里就是PE文件的开头了。

把这部分内容复制出来。然后采用一个python脚本来进行xor运算。

运行脚本后,我们得到了这个实际的样本。

案例二

工具:PE-sieve

样本:https://www.hybrid-analysis.com/sample/008c4bd6ee834d113cfc693af0ea90396eaa47e860bcdd567ffd964b57434e1d?environmentId=100

PE-sieve是hasherezade开发的一个能从内存里面dump出满足PE结构内容的工具。根据作者本人说这个工具能够解决大多数常规的壳,更多的使用需要大家自行探索了,这里抛砖引玉介绍一个简单的案例。

将我们的样本跑起来然后获得样本的PID之后用工具dump出来。

获得了一个exe。但是如果用pe-studio打开分析下导入表这些内容会发现似乎仍然不是最终的payload,并且似乎还有一个壳在那里。那么就再跑一下这个样本然后用OD附加上去。

在OD里面看下内存发现了一个有意思的节。

这里我们看到蛮有趣的一点就是一些节名称和一个“F8”偏移,所以可以猜测这是一个PE结构了。手动加上“MZ”和“PE”头,如图所示。

这个时候PE-sieve就可以识别这个结构了。再次运行一下并使用这样的命令“PE-sievePID /imp”可以自动修复导入表。

这里我们看到内存220000处开始的PE结构已经出来了。导入表也已经修复了。

案例三

工具:OD、HxD

样本:https://www.hybrid-analysis.com/sample/482a8b7ead1e07ac728e1e2b9bcf90a26af9b98b15969a3786834d6e81d393cd?environmentId=100

我们知道有一些脚本是在exe文件里面的。这里提供的样本中就wrap了一个.bat脚本。

对于这个样本来说,关键的点就是在“WriteFile”这里下断点了。因为最终样本会将脚本写到磁盘上去。

如图,找到那个Buffer然后复制出来。

改一下扩展名就好了,这就是那个脚本。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180402G0T53300?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券