在上一季度,我们看到了使用恶意软件的增加包装商,加密器和保护者-所有用来混淆系统或程序试图识别恶意代码的方法。这些封隔器使得进行静态分析变得非常困难,甚至几乎不可能。越来越多的恶意软件使用这些保护性包装程序的作者引发了对恶意软件分析替代方法的兴趣。

查看API调用,或代码中告诉系统执行某些操作的命令,就是这些方法之一。我们不是试图反向工程一个保护性的打包文件,而是使用基于执行的API调用的动态分析来确定某个文件可能被设计用来做什么。我们可以通过它的API调用来判断一个文件是否有恶意,其中一些API调用是典型的恶意软件类型。例如,一个典型的下载器API是UrldownloadTofile。API.getWindowdc.典型的屏幕抓取者我们有时会在间谍软件和键重Gers中看到。

让我们看一个例子来阐明这是如何有帮助的。

特洛伊的例子

我们的例子是众所周知的木马与SHA256称为1.exe0213B36EE85A301B88C26E180F821104D5371410AB4390803AAA39FAC1553C4C

检测了

这个文件是打包的(使用VMProtect),所以我的反汇编程序不知道从哪里开始。由于我不是反向工程方面的专家,我将通过查看文件在沙箱执行期间执行的API调用来试图弄清楚文件做了什么。

这是我们从沙箱(Deepviz)获得的调用列表:

API列表

对于初学者来说,让我们看看所有这些函数的作用。以下是我在微软发现的关于他们的信息:

GetModuleHandle函数

检索指定模块的模块句柄。模块必须已被调用进程加载。GetModuleHandleA (ANSI)

getProcAddress函数

从指定的动态链接库(DLL)中检索导出的函数或变量的地址。

_wtoi.

将字符串转换为整数。

CreateStreamOnHGlobal函数

这个函数创建一个流对象,该对象使用一个HGLOBAL内存句柄来存储流内容。这个对象是ole提供的IStream接口的实现。

strstr函数

在字符串中找到第一次出现子字符串。比较区分大小写。Strstra(ANSI)

wsprintf函数

将格式化的数据写入指定的缓冲区。根据格式字符串中的相应格式规范,将任何参数转换并复制到输出缓冲区。WsPrintFA(ANSI)

WinHttpOpen函数

此函数初始化,对于应用程序,使用WinHTTP函数并返回WinHTTP会话句柄。

getModulefilename功能

检索包含指定模块的文件的完全限定路径。该模块必须已被当前进程加载。GetModuleFileNameW (Unicode)

LoadLibrary功能

将指定的模块加载到调用进程的地址空间中。指定的模块可能导致要加载的其他模块。LoadLibrarya(ANSI)

LocalAlloc函数

从堆中分配指定的字节数。

LocalFree函数

释放指定的本地内存对象并使其句柄无效。

getModulefilename功能

检索包含指定模块的文件的完全限定路径。该模块必须已被当前进程加载。GetModuleFileNameA (ANSI)

ExitProcess功能

结束调用进程及其所有线程。

关键恶意指标

并非如上所示的所有功能都指示可执行文件的性质。但API Winhttpopen告诉我们,我们可以在那个地区期待一些东西。

接着这个函数,我们用URL揭示由Kahu安全来检查流量的目的地,并发现两个被反复联系的url。

得到http://twitter.com/pidoras6

文章http://www.virustotal.com/vtapi/v2/file/scan

这篇文章是什么virustotal api.期待在您想要提交文件进行扫描时。

一个旧的和废弃的Twitter句柄的链接是一个更大的谜,直到我决定在Twitter上使用高级搜索,并发现这条Tweet一定是后来被删除了。

删除推文

在Base64中,这款推文说:https://w0rm.in/join/join.php.。不幸的是,网站不再解决,但它曾经是一个地下板,网站利用以及网站攻击在左右的网站攻击以及上述推特轮廓有效。

这是一个试图找出恶意软件试图得到什么的死胡同。所以我们尝试了另一种方法,通过找出它试图在VirusTotal上扫描什么,并使用Wireshark查看数据包。

VT包

在数据包中,您可以看到API键和用于在Virustotal站点扫描文件的文件名。因此,从API调用和数据包重建我们了解到恶意软件正在向Virustotal提交自身的副本,这是特洛伊木马的Vfleoder家族的典型行为。vfleooder是一种特殊的泛洪水特洛伊木马。Flooder Trojans旨在向特定目标发送大量信息以扰乱目标的正常操作。但我怀疑这个人能够在恶毒基础设施中做出一个凹痕。或者在Twitter上的那个问题。

VFLooder Trojan只是分析API调用的一个小而相对简单的例子。它并不总是那么容易:我们甚至看到了冗余/无用的API调用的恶意软件混淆流动。但是分析API调用是一种可以用来检测试图隐藏自己的恶意软件的方法。只要记住,坏人也意识到了这一点。