从 Android 恶意软件中提取“可操作”数据(C&C、电话号码等)的简单框架。
在开始使用此项目之前,你需要安装以下软件包:
git clone https://github.com/androguard/androguard; cd androguard; sudo python setup.py install)easy_install pycrypto)easy_install pyelftools)easy_install yara)理念非常简单且模块化。该项目包含几个目录,分别用于承载你的静态分析或输出处理:
plugins - 这里存放负责恶意软件识别和数据提取的代码。每个类都必须继承自 templates 中的 Plugin 类。recon 用于识别恶意软件 - 把你确保能提取数据所需的所有代码放在这里。extract 负责常规提取。提取的数据没有特定格式,但最好保持为 Python 字典,以便输出处理器能够以统一方式读取。processing - 这里放置继承自 OutputProcessor 类的类。它们在数据提取后被调用,并获取提取到的信息。process 方法接收数据并产生某种结果(例如,将文件或 C&C 添加到你的数据库,检查 C&C 是否存活等)。如果你想贡献代码,可以编写一个插件来解码某个新的恶意软件家族。这很简单,只需看看现有的插件即可。
那么,你有一个 APK 样本,却不知道它是什么以及 C&C 在哪里?请输入:
python maldrolyzer.py [sample_path]
如果 maldrolyzer 知道该恶意软件家族,它将显示类似如下有用信息:
{'c2': ['http://esaphapss.net/bn/save_message.php'],
'malware': 'xbot007',
'md5': 'ce17e4b04536deac4672b98fbee905e0',
'sha1': 'a48a2b8a5e1cae168ea42bd271f5b5a0c65f59a9',
'sha256': 'c3a24d1df11baf2614d7b934afba897ce282f961e2988ac7fa85e270e3b3ea7d',
'sha512': 'a47f3db765bff9a8d794031632a3cf98bffb3e833f90639b18be7e4642845da2ee106a8947338b9244f50b918a32f1a6a952bb18a1f86f8c176e81c2cb4862b9'}
你还可以使用 http://amtrckr.info 追踪多个恶意软件家族的 C&C。