概述
Upatre是于2013年被发现的Downloader,一直作为Dyre,GameOver Zeus等其他恶意家族的下载工具,许多诱饵都伪装成pdf文件来诱骗用户点击,Upatre的文件通常很小,功能单一,但用到的对抗手法值得分析
样本信息
样本是一个伪装为pdf文件的pe样本
SHA1:377f6a84c823dc9f0fd615040b7abbc2454c0e03
样本分析
此样本到执行下载恶意软件之前主要分为两项操作:反虚拟沙盒和代码混淆
反虚拟沙盒
从入口点开始,恶意样本会创建一个windows窗口以及窗口回调函数接收消息,只有接收到的消息是WM_COMMAND以及lpara为edit窗口的句柄时,才能继续执行恶意代码。
恶意样本这么做就是为了反虚拟沙盒,如果虚拟沙盒如果没有实现windows窗口系统,不能模拟windows的消息机制,那么在虚拟沙盒中就跑不出后续行为
代码混淆
基址加16AB与地址为402084的数据逐个异或16位字节,得到VirtualProtect字符串
通过pe结构地址偏移得到模块的导出函数地址
调用VirtualProtect将402280地址的内存属性改为可读可写可执行,然后将这块内存地址数据解密,返回到402280执行代码
shellcode部分
解密的shellcode利用call_get_func_addr函数获取上述函数的地址
将自身重命名复制到临时目录下启动
网络连接,下载恶意程序并执行
总结
upatre这个downloader麻雀虽小,五脏俱全,特别是利用windows消息机制来对抗反病毒虚拟沙盒的技术值得学习。只有不断的学习不断的了解各种对抗技术,才能更好的检测查杀病毒