从UTF-16到%MÃja:~XX,1%:解剖BAT木马的混淆伎俩
字数 1533 2025-08-29 22:41:01

从UTF-16到%MÃja:~XX,1%:BAT木马混淆技术深度剖析

概述

本文详细分析了一种BAT批处理木马的混淆技术,该木马通过精心设计的编码混淆和字符串操作技术来逃避检测。分析过程中涉及了多种编码格式(Unicode字符集、UTF-16编码、UTF-8编码)的特征与区别,以及BAT脚本的特殊语法。

乱码现象分析

工具表现差异

  • Notepad++/010Editor:显示为乱码
  • Winhex:能正确显示内容

乱码原因

BAT文件头部填充了FF FE两个字节,这是UTF-16 Little Endian编码的字节序标记(BOM)。但实际上文件内容并非UTF-16编码,导致文本编辑器误判编码格式而显示乱码。

字符编码原理

Unicode字符集

  • 定义了全球所有字符的唯一编码点
  • 为每个字符分配一个数字
  • 与具体编码方式(UTF-8、UTF-16等)结合使用

UTF-16编码

  • 采用2字节为基本单位表示字符
  • 两种字节顺序:
    • Little Endian:字节序标记为FF FE
    • Big Endian:字节序标记为FE FF

UTF-8编码

  • 可变长度编码(1-4字节)
  • 可选BOM标记:EF BB BF
  • 字符字节数由首字节高位决定:
    • 0xxxxxxx:1字节
    • 110xxxxx:2字节(第二字节以10开头)
    • 1110xxxx:3字节(后两字节以10开头)
    • 11110xxx:4字节(后三字节以10开头)

BAT木马解混淆技术

混淆原理

  1. 使用FF FE字符标识伪装成UTF-16编码
  2. 使用set命令设置环境变量,值为混淆字符串
  3. 使用%VAR:~offset,length%语法提取特定字符

环境变量操作示例

set MÃja=8IBOPaM6Yf4S2pGzQTyJ51VvruiHEoeKRZAL3wDsxtjnFg9cdkml@X7UNChqb0W
%MÃja:~48,1%  # 从第48个字符开始提取1个字符

解混淆步骤

  1. 识别所有环境变量定义
  2. 解析%VAR:~offset,length%格式的字符串操作
  3. 替换为实际字符

BAT木马功能分析

1. 搜索并打开PDF文件

  • 在Downloads目录搜索.pdf文件
  • 找到则用start命令打开
  • 未找到则输出提示

2. 检测杀毒软件

  • 检查AvastUI.exeavgui.exe进程
  • 根据检测结果选择不同下载地址:
    • 有杀毒软件:https://nl-theatre-saver-impact.trycloudflare.com/cam.zip
    • 无杀毒软件:https://nl-theatre-saver-impact.trycloudflare.com/bab.zip

3. 下载并解压ZIP文件

  • 使用PowerShell的Invoke-WebRequest下载
  • 启用TLS 1.2协议
  • 解压到%USERPROFILE%\Downloads\Extracted
  • 失败则退出

4. 执行Python脚本

  • 切换到解压目录
  • 依次执行多个Python脚本:
    • t2rf-an.py
    • t2rf-as.py
    • t2rf-hv.py
    • t2rf-ve.py
    • t2rf-xw3.py
    • t2rf-xw5.py
    • t2rf-ph.py

5. 设置持久化

  • 下载启动项文件:
    • startupppp.bat
    • PWS.vbs
    • PWS1.vbs
  • 移动到启动目录实现自启动

6. 下载FTSP.zip

  • 从特定URL下载
  • 解压并清理痕迹
  • 设置目录为隐藏属性

防御建议

  1. 编码识别:对可疑文件检查实际编码格式
  2. 环境变量监控:警惕异常的环境变量操作
  3. 下载行为检测:监控异常URL下载
  4. 启动项审计:定期检查启动目录
  5. 进程监控:关注异常Python或脚本执行

总结

该BAT木马通过巧妙的编码混淆和字符串操作技术实现了多层混淆,最终下载并执行恶意负载。理解其混淆技术和执行流程有助于更好地检测和防御此类威胁。

从UTF-16到%MÃja:~XX,1%:BAT木马混淆技术深度剖析 概述 本文详细分析了一种BAT批处理木马的混淆技术,该木马通过精心设计的编码混淆和字符串操作技术来逃避检测。分析过程中涉及了多种编码格式(Unicode字符集、UTF-16编码、UTF-8编码)的特征与区别,以及BAT脚本的特殊语法。 乱码现象分析 工具表现差异 Notepad++/010Editor :显示为乱码 Winhex :能正确显示内容 乱码原因 BAT文件头部填充了 FF FE 两个字节,这是UTF-16 Little Endian编码的字节序标记(BOM)。但实际上文件内容并非UTF-16编码,导致文本编辑器误判编码格式而显示乱码。 字符编码原理 Unicode字符集 定义了全球所有字符的唯一编码点 为每个字符分配一个数字 与具体编码方式(UTF-8、UTF-16等)结合使用 UTF-16编码 采用2字节为基本单位表示字符 两种字节顺序: Little Endian :字节序标记为 FF FE Big Endian :字节序标记为 FE FF UTF-8编码 可变长度编码(1-4字节) 可选BOM标记: EF BB BF 字符字节数由首字节高位决定: 0xxxxxxx:1字节 110xxxxx:2字节(第二字节以10开头) 1110xxxx:3字节(后两字节以10开头) 11110xxx:4字节(后三字节以10开头) BAT木马解混淆技术 混淆原理 使用 FF FE 字符标识伪装成UTF-16编码 使用 set 命令设置环境变量,值为混淆字符串 使用 %VAR:~offset,length% 语法提取特定字符 环境变量操作示例 解混淆步骤 识别所有环境变量定义 解析 %VAR:~offset,length% 格式的字符串操作 替换为实际字符 BAT木马功能分析 1. 搜索并打开PDF文件 在Downloads目录搜索.pdf文件 找到则用 start 命令打开 未找到则输出提示 2. 检测杀毒软件 检查 AvastUI.exe 或 avgui.exe 进程 根据检测结果选择不同下载地址: 有杀毒软件: https://nl-theatre-saver-impact.trycloudflare.com/cam.zip 无杀毒软件: https://nl-theatre-saver-impact.trycloudflare.com/bab.zip 3. 下载并解压ZIP文件 使用PowerShell的 Invoke-WebRequest 下载 启用TLS 1.2协议 解压到 %USERPROFILE%\Downloads\Extracted 失败则退出 4. 执行Python脚本 切换到解压目录 依次执行多个Python脚本: t2rf-an.py t2rf-as.py t2rf-hv.py t2rf-ve.py t2rf-xw3.py t2rf-xw5.py t2rf-ph.py 5. 设置持久化 下载启动项文件: startupppp.bat PWS.vbs PWS1.vbs 移动到启动目录实现自启动 6. 下载FTSP.zip 从特定URL下载 解压并清理痕迹 设置目录为隐藏属性 防御建议 编码识别 :对可疑文件检查实际编码格式 环境变量监控 :警惕异常的环境变量操作 下载行为检测 :监控异常URL下载 启动项审计 :定期检查启动目录 进程监控 :关注异常Python或脚本执行 总结 该BAT木马通过巧妙的编码混淆和字符串操作技术实现了多层混淆,最终下载并执行恶意负载。理解其混淆技术和执行流程有助于更好地检测和防御此类威胁。