前言:
目前姐妹们对“c语言播放wav音乐代码”可能比较重视,朋友们都需要剖析一些“c语言播放wav音乐代码”的相关文章。那么小编在网摘上搜集了一些对于“c语言播放wav音乐代码””的相关内容,希望同学们能喜欢,大家快快来了解一下吧!最近,BlackBerry Cylance发现了一些内嵌恶意代码的WAV音频文件。每一个WAV文件都带有一个加载程序组件,用于解码和执行恶意代码。播放时,部分WAV文件产生的音乐没有任何质量问题,只有少部分会产生白噪声。
分析显示,其中一些WAV文件包含有与XMRig门罗币挖矿程序相关的代码,也有一些包含有用于建立反向shell的Metasploit代码(一款开源的安全漏洞检测工具)。
值得注意的是,这两种有效载荷都是在同一环境中发现的。也就是说,攻击者的目的很可能有两个:一是通过挖矿获取经济利益,二是通过建立远程访问留下后门。
加载程序组件可分为三种,具体如下:
1. 采用Least Significant Bit(LSB)隐写术来解码和执行PE文件的加载程序;2. 采用基于rand()的解码算法来解码和执行PE文件的加载程序;3. 采用基于rand()的解码算法来解码和执行shellcode的加载程序。
三种加载程序组件都允许攻击者在受感染设备上执行任意代码,且都经过了混淆处理。
隐写术PE加载程序
如上所述,第一种加载程序采用隐写术从WAV文件中提取可执行文件,理想情况下不会引起怀疑。
BlackBerry Cylance研究人员发现的隐写术PE加载程序具有如下特征:
与其他两种加载程序不同,它包含一个硬编码的字符串,指定了要加载的文件名(“Song.wav”)。
Song.wav位于一个zip文件中:
一旦解码,就会导出要执行的函数(“Start”)。
执行后,加载程序就会读取Song.wav,在内存中提取一个DLL,然后执行“Start”。
提取的文件与XMRig门罗币挖矿程序相关联:
据说,一个高效的加密货币挖矿僵尸网络,一个月就可以为攻击者带来数千美元的收益。
基于Rand()的PE加载程序
第二种加载程序采用基于rand()的解码算法来隐藏PE文件,样本具有以下特征:
为加载WAV文件,加载程序会使用到如下命令行:
<Loader EXE> <WAV File> <Decoded PE File Entry Point>
WAV文件具有如下特征:
与上面的WAV文件不同,此类WAV文件拥有合法的header,但播放时没有音乐,听起来像是白噪声。
加载程序执行时,会读取WAV文件,在内存中提取一个DLL,然后尝试执行指定的入口点。
提取的文件也与XMRig门罗币挖矿程序相关联:
基于Rand()的Shellcode加载程序
第三种加载程序使用基于rand()的解码算法来隐藏PE文件,样本具有如下特征:
为加载WAV文件,加载程序会使用到如下命令行:
<Loader EXE> <WAV File>
与前一种加载程序类似,播放时只有白噪声,没有音乐。
执行后,加载程序会打开一个WAV文件,读取其数据,解码其内容,然后尝试执行shellcode。
与前两种WAV文件不同的是,第三种加载程序打开的WAV文件包含的代码与Metasploit相关联(可启动反向shell程序到指定的IP地址),而不是XMRig门罗币挖矿程序。
结论
攻击者使用了隐写术和其他一些编码技术来混淆他们恶意代码,这使得检测成为了一项艰巨的任务。此外,攻击者在执行代码的方法上也非常具有创意,包括使用不同文件格式的多个文件。
从攻击者使用的一些方法来看,它们与一些已知的黑客组织所使用的方法存在部分相似之处。这可能表明,攻击者试图通过模仿他人来妨碍研究人员的归因,避免暴露自己的身份。
标签: #c语言播放wav音乐代码