在上集中,我们对当前信息安全行业的事件响应状况进行了分析,并且讲述了我们实验环境的搭建要素,我们将在下集中给大家继续介绍我们的实验分析过程。
在配置好了实验所用的虚拟机之后,我们还需要在目标主机中创建一个较大的攻击面,以此来保证我们所部属的恶意软件能够正常运作。在这一步骤中,我们可以安装一个老版本的,存在漏洞的Java,Flash,Office,IE浏览器,或者Adobe Reader。除此之外,你也可以安装Visual C++ Redistributable 2005/2010( https://www.microsoft.com/en-us/download/details.aspx?id=3387 )。
最后,我们还需要确保:
l 开启查看隐藏文件夹和系统文件功能;
l 关闭系统的自动更新
l 禁用浏览器的隐私功能,并将浏览器的安全等级设为“低”
l 关闭系统防火墙
l 显示已知文件类型的扩展名
l 禁用阻止弹窗功能
现在,我们的实验环境已经配置完成了,接下来我们需要创建以下三个系统快照:
1. 安装工具之前的系统-没有安装任何应用程序或者恶意软件;
2. 安装了工具的系统-在平台中已经加载了恶意软件的静态行为分析工具;
3. 安装了恶意软件的系统-在系统感染了恶意软件之后,我们需要保存系统快照,以便我们以后对其进行详细分析;
实验工具
在我们实际对恶意软件进行分析之前,我们还需要安装一些软件,这些工具能够帮助我们调试,反汇编,监视注册表,分析内存进程,识别文件创建活动,以及查看网络通信数据。我们有大量的工具能实现上述这些功能,我在下面的列表中列出了一些目前较为流行的软件,这些软件的可靠性相对而言比较高:
l Malcode Analysis Pack -这款工具非常实用,它能提供大量功能强大的分析程序;
l OllyDBG -这款调试器能够帮助你进行实时分析;
l IDA Pro -这款热门的反汇编工具能够帮助我们对恶意代码进行静态分析;
l CaptureBat -这是一款行为分析工具,它能够监视文件,进程,以及注册表的活动;
l PEiD -这款实用的轻量级应用程序能够识别压缩包内的可执行程序;
l Import Reconstructor -当我们对恶意软件进行恢复时需要用到这个程序;
l RegShot -注册表静态比较工具,能够帮助我们观察注册表的修改情况;
l 010 -一款十六进制编辑器,当我们对PE文件进行可视化分析时会用到它;
l 7ZIP -数据压缩程序;
l OLEDump -可用于分析恶意OLE文件(doc和xls等文件);
l Sysinternals -这个工具集中包含很多软件,这些软件可以帮助我们进行研究和分析;
我们将上述的这些应用程序全部加载到我们安装了Windows操作系统的目标主机中。现在,我们就可以提取第二次系统快照了。当你想要快速回滚到一个干净的平台来对另一款新的恶意软件样本进行分析时,你将会用到这个系统快照。当然了,你也可以采用不同的分析方法来对同一恶意软件样本进行研究。
声明:尽管在虚拟机系统中运行恶意代码相对而言是安全的(如果网络以及其他服务都采用了正确的配置),但是相关设备中仍然存在一些漏洞,这些 漏洞 将允许恶意代码逃出虚拟机系统,并且感染实体主机。所以在你操作的过程中,应该做好最坏的打算,为最坏情况的发生而做好预防措施。请注意,我们应该使用专用的硬件设备来运行我们的虚拟恶意软件实验环境,请不要在你的个人电脑或者公司电脑上进行此类实验。除此之外,我还建议大家在隔离网域中进行相应操作。
分析
既然我们的实验环境已经配置完成了,而且也已经安装好了实验所必需的一些分析工具,那么接下来我们就要获取一份可用于分析实验的恶意软件样本。在这一步骤中,我们有很多选择,但是根据我的经验,我给大家推荐:
l MWCrawler -这款python爬虫程序能够爬取到各种恶意软件黑名单,并且能够与相应的服务器进行链接,然后下载恶意软件。通过这个程序我们可以轻松地下载到恶意软件样本,而不必进行大量的配置和调试。
l 除此之外,还有 VXCage/Viper 、 Reverse.IT 以及 theZoo 等工具,在此就不一一举例说明了,感兴趣的朋友可以自行搜索了解。
正如我在这篇文章中的开头所提到的,我将会对Win32/Potao进行分析,大家可以点击 这里 获取这款恶意软件,解压密码为“infected”。
首先我要做的就是用十六进制编辑器打开这些文件,然后查看其文件格式头,并确定我们将要处理的恶意软件类型。
我们可以从上图看到,文件的头两个字节为“4D 5A”,说明这个文件是一个PE文件,或者是一个可执行文件。这部分内容已经超出了本文所要讲解的知识,如果你想要了解更多关于这种文件格式(这是一种常见的文件格式)的信息,你可以点击 这里 获取。
在偏移量00170h处,我们可以看到这片内存区域中存储着“UPX0”和“UPX1”这两个字符串。UPX会在其压缩文件中使用这两个标识符。UPX是一款先进的可执行程序文件压缩器,压缩过的可执行文件体积缩小50%-70% ,这样减少了磁盘占用空间、网络上传下载的时间和其它分布以及存储费用。 通过 UPX 压缩过的程序和程序库完全没有功能损失和压缩之前一样可正常地运行,对于支持的大多数格式没有运行时间或内存的不利后果。如果你想要了解更多有关压缩和手动解压方面的内容,我建议大家阅读 这篇文章 。
在MAP( Malcode Analysis Pack )的帮助下,我可以直接点击样本文件,然后选取“字符串”:
这里并没有多少有用的数据,因为针对字符串的分析并不会给我们提供多少有价值的信息。
在MAP的帮助下,我们可以点击样本来直接获取到相应文件的MD5 Hash:
接下来,在我触发恶意软件之前,我将解压恶意软件的样本文件,并对其进行分析。
我们可以看到,文件已经成功解压了。我们对文件进行重命名,然后加上”.exe”后缀,Windows将会加载如下图所示的一个图标:
这是一种非常典型的社会工程学小技巧,如果大家对此感兴趣,请点击 这里 来了解更多与社会工程学技术有关的信息。
在我们执行文件之前,我们先要运行CaptureBat,并且确保Kali主机中的Wireshark处于正常运行状态。在点击文件之后,我们将会看到:
CaptureBat的日志文件如下:
我们可以看到,恶意软件向系统中的Temp临时目录中写入了一些文件。
在对这些文件进行了进一步的分析之后,我们可以看到:
也许 ,大家也想将网络的通信数据映射出来,并且了解恶意软件的反分析技术,具体信息如下图所示:
虽然我没有对这些实验数据进行非常深入地分析,但是我希望这篇文章至少能够帮助你了解手动进行恶意软件分析的大致流程以及所需要用的一些工具软件。非常感谢大家能够阅读这篇文章,祝大家新春快乐。
本文由 360安全播报 翻译,转载请注明“转自360安全播报”,并附上链接。
原文链接:http://www.redblue.team/2016/02/a-soft-introduction-to-malware-analysis.html