自动化逆向辅助利器 -- Capa工具介绍

发布者:深信服千里目
发布于:2020-07-27 17:45

概述

近日,FireEye开源了一个逆向辅助工具capa,项目地址为:009K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6X3K9i4u0W2k6i4W2W2i4K6u0r3j5$3q4H3j5g2!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4g2)9^5y4g2!0n7y4W2!0q4y4#2)9&6b7W2!0m8c8g2!0q4y4#2)9&6b7g2)9^5y4q4!0q4y4W2)9&6z5q4!0m8c8W2!0q4z5q4)9^5y4#2!0m8b7g2!0q4y4g2)9^5b7g2!0m8z5q4!0q4y4g2)9^5b7#2)9&6y4W2!0q4y4W2)9^5c8W2)9&6x3q4!0q4y4g2)9^5c8W2)9&6y4W2!0q4y4W2!0m8x3q4!0n7y4#2!0q4y4W2)9&6b7#2!0m8b7#2!0q4y4#2)9&6b7g2)9^5y4q4!0q4z5g2!0m8b7W2)9&6z5q4!0q4y4#2!0n7b7g2!0m8y4#2!0q4z5g2)9&6c8q4)9&6z5g2!0q4y4W2)9^5x3q4)9^5x3g2!0q4y4#2)9^5z5g2!0n7z5g2!0q4y4g2!0n7c8g2)9^5x3g2!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4g2!0n7c8W2!0m8b7W2!0q4z5g2)9^5x3q4)9&6c8W2!0q4y4g2)9&6b7#2!0n7x3q4!0q4y4g2)9&6x3g2)9^5b7g2!0q4z5q4!0m8c8W2)9^5z5g2!0q4y4#2)9&6y4q4!0m8z5q4!0q4y4W2)9^5z5q4!0n7y4#2!0q4z5q4!0m8c8W2!0m8y4g2!0q4y4W2!0m8x3q4!0n7y4#2!0q4y4W2)9&6b7#2!0m8b7#2!0q4y4g2)9^5x3g2)9&6b7g2!0q4y4q4!0n7b7g2)9^5y4W2!0q4y4g2)9&6x3#2!0m8b7g2!0q4y4q4!0n7b7g2)9&6b7W2!0q4y4W2)9^5x3g2!0n7y4W2!0q4y4W2)9^5y4q4)9^5c8W2!0q4y4W2)9&6x3#2)9^5c8q4!0q4y4q4!0n7c8q4)9&6b7#2!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4g2)9&6x3q4)9^5b7#2!0q4y4W2)9&6y4#2!0n7y4W2!0q4z5q4!0m8c8W2!0m8y4g2!0q4y4g2!0n7y4#2!0m8y4g2!0q4y4g2)9^5y4g2!0n7y4#2!0q4z5q4!0n7c8W2)9&6z5q4!0q4z5g2)9&6b7g2)9^5c8W2!0q4y4g2)9&6x3q4)9^5b7#2!0q4y4g2)9^5c8W2)9&6x3g2!0q4y4g2!0n7z5q4)9^5x3#2!0q4y4q4!0n7b7g2)9^5y4W2!0q4y4g2!0m8c8W2!0n7z5g2!0q4y4g2!0n7b7g2)9&6y4q4!0q4y4#2)9&6b7g2)9^5y4p5W2p5b7g2!0q4y4W2)9^5c8W2)9&6x3W2!0q4y4q4!0n7b7W2!0n7y4W2!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4W2)9&6y4W2!0n7z5g2!0q4y4q4!0n7c8g2!0n7c8W2!0q4z5g2)9^5x3q4)9^5y4W2!0q4y4g2)9&6x3q4)9&6x3g2!0q4y4g2)9^5z5q4)9^5y4W2!0q4y4W2)9&6c8g2)9&6x3q4!0q4y4g2)9&6x3g2)9&6z5q4!0q4y4g2!0n7c8W2!0m8b7W2!0q4z5g2)9^5x3q4)9&6c8W2!0q4y4g2!0m8c8g2)9&6b7g2!0q4y4q4!0n7c8q4)9^5c8q4!0q4y4W2)9^5x3g2!0n7y4W2!0q4y4W2)9^5y4q4)9^5c8W2!0q4y4q4!0n7b7W2!0m8x3#2!0q4y4#2!0m8x3q4)9^5x3g2!0q4x3#2)9^5x3q4)9^5x3R3`.`.



工具运行的结果如下,它显示了当前样本的恶意行为,以及对应的ATT&CK向量,如:混淆绕过、系统信息探测、C&C连接、持久化驻留等。


安装

使用命令:git clone --recurse-submodules 181K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6X3K9i4u0W2k6i4W2W2i4K6u0r3j5$3q4H3j5g2)9J5k6h3N6A6N6q4!0q4y4q4!0n7z5q4)9^5b7W2!0q4z5q4!0n7c8q4!0n7c8r3y4S2M7r3q4Q4c8e0W2Q4b7e0q4Q4b7U0W2Q4c8e0N6Q4z5f1u0Q4b7f1g2Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0g2Q4z5o6g2Q4b7U0k6Q4c8e0c8Q4b7U0S2Q4b7f1c8Q4c8e0g2Q4z5p5y4Q4z5o6g2Q4c8e0g2Q4z5e0m8Q4b7f1u0Q4c8e0c8Q4b7V1q4Q4z5o6k6U0j5i4m8S2i4K6u0V1M7Y4g2D9k6i4y4Q4c8e0g2Q4b7f1c8Q4z5e0m8Q4c8e0W2Q4b7e0q4Q4b7U0W2Q4c8e0N6Q4z5f1u0Q4b7f1g2Q4c8f1k6Q4b7V1y4Q4z5p5y4Q4c8e0S2Q4b7f1k6Q4b7e0g2Q4c8e0S2Q4b7U0N6Q4b7f1k6Q4c8e0g2Q4b7V1g2Q4z5o6c8Q4c8e0c8Q4b7U0S2Q4z5p5u0Q4c8e0g2Q4z5p5y4Q4z5o6g2Q4c8e0g2Q4z5e0m8Q4b7f1u0Q4c8e0c8Q4b7V1q4Q4z5o6k6Q4c8e0k6Q4z5o6W2Q4z5o6m8Q4c8e0k6Q4z5f1y4Q4z5o6W2Q4c8e0N6Q4b7U0q4Q4b7V1u0Q4c8e0g2Q4z5f1g2Q4z5p5u0Q4c8e0N6Q4z5f1q4Q4z5o6c8Q4c8e0k6Q4b7e0y4Q4z5o6m8Q4c8e0k6Q4b7U0g2Q4z5p5u0Q4c8e0S2Q4b7e0N6Q4z5o6c8Q4c8e0g2Q4z5o6S2Q4z5e0W2Q4c8e0y4Q4z5o6m8Q4z5o6t1`.


下载好后,使用命令:pip install -e [path_to_capa]进行安装,安装好后,就能开始使用Capa了。

范例演示

下面主要介绍其IDA插件的使用,IDA打开样本后,点击File->Script File加载ida_capa_explorer.py脚本。

PS:该插件目前只适配于IDA7.2及以上版本。



本次实验使用的是BuleHero蠕虫样本(0F606E3FC83F7E8B175DDCAA39517CDD),样本加载成功后,IDA会新增一个capa explorer窗口,该窗口会显示匹配上的规则,鼠标移到上面可以看到规则的内容。



双击规则的Address的值,IDA会自动跳转到恶意代码相应的位置,如下,通过contain an embedded PE file规则,快速地定位到了样本中内嵌的PE文件。



勾上规则后,IDA会高亮显示对应的恶意代码段,从而方便逆向工程师进行分析。



规则的编写格式如下,第一个红框meta用于描述该规则的描述信息,第二个红框features就是用于匹配的逻辑规则,类似于yara,支持的类型有:api、string、bytes、mnemonic等。



了解规则的编写规范后,试着编写一个规则进行练手,如下规则仅用于演示。

可以识别出Lazarus组织的Dtrack后门。



将该规则dtrack.yal放到capa/rules目录下,加载样本B5AB935D750BE8B5B7C9CF3B87C772CA,插件就能自动识别出该样本为Dtrack后门。



capa的大致原理就是,提取样本的导入函数、字符串、汇编码,然后循环遍历规则进行匹配,实质上就是将逆向时手工筛选高危恶意代码的工作自动化,当然,对于一些高度混淆后的样本,建议先解混淆后再使用capa进行分析。



声明:该文观点仅代表作者本人,转载请注明来自看雪