近期,火绒工程师在关注安全动态过程中发现,存在一种后门病毒以伪装成搜狗输入法的形式进行传播。此病毒采用正规签名内嵌恶意脚本的手段,以规避安全检测。其释放的其他 PE 文件均为带有数字签名的白文件,并借助执行 PowerShell 和 VBScript 脚本的方式来释放和运行后门。其中,远控服务器的域名通过查询 TXT 记录动态获取,最终等待远控服务器下达屏幕监控、键盘监控、执行 PowerShell 脚本等指令。目前,火绒安全产品能够对这些病毒进行拦截和查杀。
查杀图
流程图
1 样本分析
1.1 启动阶段
启动该文件并首次运行 PowerShell 脚本:此为 Inno 安装包,名为 sogou_pinyin_16c.exe,伪装成搜狗输入法的安装包(且具备正规签名)。运行此安装包会释放诸多文件,随后借助 toolsps.exe 传递参数(该参数即为 PowerShell 脚本)以运行 PowerShell 脚本。toolsps.exe 原名为 SQLPS.exe,是 SQL Server 所提供的一个 Windows PowerShell 模块,可用于运行 PowerShell 脚本。
对 360 进行检测并执行不同逻辑操作:其 PowerShell 指令如图所示。该指令首先会判断 360 是否存在,若 360 存在,则执行 4.txt 脚本(此脚本包含安装输入法的命令);若 360 不存在,则安装搜狗输入法并执行 3.txt 脚本。
释放的文件与启动脚本
搜狗输入法安装包数字签名
3.txt 与 4.txt 脚本情况:3.txt 脚本会直接调用后门模块中的 Main 函数;4.txt 脚本是专门针对杀毒软件设计的脚本,与 3.txt 脚本不同,其会采用模拟用户输入的方式,通过执行搜狗输入法安装包和利用 mshta.exe 调用 escsvc.exe 中的恶意脚本,同时二者最终目的均为调用后门模块中的 Main 函数。
脚本对比图
正规签名中嵌入恶意脚本:escsvc.exe 程序的数据签名为正规签名,然而该程序的 Security 区(即签名区域)被追加了恶意脚本。这是由于 Windows 在校验签名时会忽略特定区域,使得往该区域追加内容不会影响签名的正确性。这进而导致安全软件在验证签名正确性后便直接放行,从而达成免杀效果。
正规签名
签名验证通过的具体细节:经对wintrust.dll验证模块进行分析,发现该模块在验证PE文件数据签名时,会忽略CheckSum、Security和Security区。这是由于计算结果将会被写回到Security区,若不予以忽略,将会致使哈希值出现不一致的情况。CheckSum的情形与此相同。
排除特定区域
mshta.exe 对 escsvc.exe 进行解析执行:当 mshta.exe 程序传递参数 escsvc.exe 时,会对数字签名中的 VBS 脚本进行解析执行。经测试可知,仅当传递参数的文件名后缀为 .txt 时,才不会解析其中的脚本;而当文件名后缀为 .exe 等其他类型或无后缀名时,会对其中
