基于API调用的恶意软件分析技术

[[208624]]

基于API的分析技术

根据上一个季度的统计数据发现,使用加壳器、加密器和保护器(这些都是用于对恶意软件进行混淆处理,以防止被系统或安全软件识别出来的方法)的恶意软件的数量正在日益增加。这些加壳器极大的提高了进行静态分析的难度,甚至有些时候根本就无法对其进行静态分析。随着越来多的恶意软越件作者开始采用这些保护性措施,安全分析人员对于恶意软件分析替代技术的兴趣也越来越浓。

其中一种可行的替代方法就是,对代码中通知系统执行某些操作的API调用或命令进行安全检测。这种方法的好处是,不必对经过加壳处理的软件进行逆向分析,相反,我们可以通过对API调用进行动态分析,从而弄清楚某个文件的具体行为。通过分析相应的API调用,我们可以确定文件是否是恶意的,因为对于某些类型的恶意软件来说,它们的API调用是非常有特点的。例如,典型的下载API是URLDownloadToFile。而GetWindowDC这个API通常用于屏幕抓取,它经常出现在间谍软件和键盘记录器中。

下面,我们通过一个具体的例子来说明其工作原理。

木马样本

我们的示例是一个著名木马程序,名称为1.exe,其SHA256为0213b36ee85a301b88c26e180f821104d5371410ab4390803eaa39fac1553c4c。

由于该文件(使用VMProtect)进行了加壳处理,所以面对这种情况,反汇编器通常也是狗咬刺猬——无处下口。由于本人并非逆向分析的专家,所以我另辟蹊径,通过查看该文件在沙箱执行期间使用的API调用来搞清楚该文件的所作所为。

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

首先,我们来看看这些函数分别是做什么的。以下内容都是引自Microsoft的相关文档:

GetModuleHandle函数

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

GetProcAddress函数

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

_wtoi

将字符串转换为整数。

CreateStreamOnHGlobal函数

该函数可以用来创建一个使用HGLOBAL内存句柄存储流内容的流对象。该对象是IStream接口的OLE实现。

StrStr函数

查找指定子字符串第一次出现在字符串中的位置。该函数区分大小写。StrStrA(ANSI)

wsprintf函数

将格式化数据写入指定的缓冲区。所有的参数,都会根据格式字符串中的相应的格式规范进行转换,并复制到输出缓冲区。wsprintfA(ANSI)

WinHttpOpen函数

对于应用程序来说,这个函数可以初始化WinHTTP函数并返回WinHTTP会话句柄。

GetModuleFileName函数

检索包含指定模块的文件的标准路径。该模块必须是由当前进程加载的。GetModuleFileNameW(Unicode)

LoadLibrary函数

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

LocalAlloc函数

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

LocalFree函数

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

GetModuleFileName函数

检索包含指定模块的文件的标准路径。该模块必须是由当前进程加载的。GetModuleFileNameA(ANSI)

ExitProcess函数

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

关键恶意指标

并不是上面显示的所有函数都能表明可执行文件的性质。但是API WinHttpOpen却能告诉我们,我们可以向特定的方面考虑。

对于这个函数,我们使用Kahu Security的URL Revealer来检查流量的目的地,并发现两个经常出现的URL。

  1. GET http://twitter.com/pidoras6 
  2. POST http://www.virustotal.com/vtapi/v2/file/scan 

这个POST是当您要提交扫描文件时,VirusTotal API接受的内容。

这个指向被废弃的Twitter句柄的链接让人非常迷惑,我决定在Twitter中使用高级搜索,确定这是个早已被删除的Tweet的链接。

这个Tweet的内容是一个base64编码的链接:https://w0rm.in/join/join.php。不幸的是,该网站已经无法解析,但它曾经是一个地下黑市,同时提供网站exploit与黑客服务,上面提到的Twitter个人资料在当时还未被删。

看来上面这条路是走不通了。因此,我们尝试了另一种方法,弄清楚它想要在VirusTotal上扫描的东西,并使用Wireshark来检测数据包。

在数据包中,您可以看到用于在VirusTotal站点扫描文件的API key和文件名。根据这个API调用和数据包进行重建后,我们发现恶意软件将其自身的副本提交给VirusTotal,这是Vflooder系列木马的典型行为。Vflooder是一种特殊的Flooder木马程序。Flooder木马旨在向特定目标发送大量信息,以破坏目标的正常运行。但是,我怀疑它甚至用于对VirusTotal发动攻击。或者与Twitter上的那个链接有关。

Vflooder木马只是分析API调用的一个简单的小例子。但是事情并非总是这么轻松:我们甚至看到某些恶意软件已经开始故意增加冗余/无用的API调用了,目的就是为了对执行流程进行混淆处理。不过,分析API调用确实是一种检测恶意软件隐藏自身行为的有效方法。但是别忘了,攻击者对这些也是心知肚明的。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/129651.html<

(0)
运维的头像运维
上一篇2025-02-25 17:19
下一篇 2025-02-25 17:20

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注