打开网易新闻 查看精彩图片

2026年初,瑞士InfoGuard Labs的安全团队在一台被勒索软件攻陷的服务器上,发现了一个连日志都查不到的持久化后门。它用Windows自带的Python解释器当启动器,把恶意代码塞进一个名为sitecustomize.py的启动文件里,每次开机自动运行,命令行却干干净净。

这个叫VIPERTUNNEL的后门,核心 payload 被包在三层加密里,最外层是个伪装成DLL的Python脚本——安全工具扫到它,只会当成普通库文件跳过。

InfoGuard Labs研究员Evgen Blohm带队复盘时,最初只注意到一个异常:计划任务里有个叫523135538的条目,每天静默调用C:\ProgramData\cp49s\pythonw.exe,不带任何参数。正常Windows环境不会这么用Python,但命令行没留痕迹,常规审计根本发现不了问题。

追查下去才摸到门道。攻击者篡改的sitecustomize.py是Python的自动加载模块,解释器每次启动必执行。它先用ctypes调用Py_GetArgcArgv确认无命令行输入——排除人工调试场景——再用runpy模块加载同目录下的b5y5yogiiy3c.dll

这个文件扩展名是幌子。内容其实是Python脚本,经过Base85编码、AES和ChaCha20双层加密,外加控制流扁平化处理。三层壳逐层在内存中解密、执行,最终释放的SOCKS5代理后门全程不落盘,直连443端口混在HTTPS流量里。

假DLL真脚本:扩展名欺骗如何骗过扫描工具

假DLL真脚本:扩展名欺骗如何骗过扫描工具

把Python脚本重命名为DLL不是技术突破,是对安全工具分类逻辑的精准打击。大多数EDR和杀毒引擎依赖文件签名和扩展名做初筛,.dll后缀触发的是库文件分析路径,而非脚本引擎。VIPERTUNNEL利用这个盲区,让自动化分析直接放行。

更隐蔽的是加载方式。runpy是Python标准库模块,专门用于以编程方式运行Python代码。用官方模块加载恶意脚本,行为特征和正常开发工具重叠,行为检测很难画线。

三层加密的设计明显针对人工逆向。Base85把二进制数据转成ASCII可打印字符,躲过基础字符串扫描;AES和ChaCha20双算法加密,即使分析师拿到密钥材料也要解两轮;控制流扁平化把原本线性的执行逻辑打散成状态机,反编译出来是一堆跳转表和循环,可读性接近于零。

InfoGuard Labs的报告中提到,单是剥开这三层壳,经验丰富的分析师就花了近三周。攻击者的目标不是防住自动化工具,是拖慢响应速度——只要后门多跑几天,数据外泄和横向移动就能完成。

SOCKS5隧道:为什么选443端口当掩护

SOCKS5隧道:为什么选443端口当掩护

VIPERTUNNEL的核心功能是为攻击者建立持久 socks 代理通道。SOCKS5协议本身不加密,但它能转发任意TCP/UDP流量,相当于在受害网络内部搭了一座桥。攻击者从外面连进来,可以像内网用户一样访问资源,而防火墙看到的只是正常的HTTPS出站连接。

443端口的选择经过计算。企业防火墙对HTTPS流量通常宽松处理,深度包检测成本高、误报率高,多数环境不会全开。VIPERTUNNEL把C2通信伪装成加密Web流量,既不触发端口告警,也不暴露明文特征。

这种"寄生在正常协议上"的策略,让网络层的异常检测几乎失效。流量看起来是浏览器在连网站,除非做TLS指纹分析或域名信誉核查,否则很难区分。

InfoGuard Labs将此次行动归因于UNC2165和EvilCorp。后者是被美国财政部制裁的老牌网络犯罪集团,以Dridex银行木马和BitPaymer勒索软件闻名。VIPERTUNNEL在他们的工具链里扮演"留守角色"——勒索软件引爆前,用它维持访问、窃取凭证、横向移动;赎金谈判破裂后,还能留着当二次入侵的后门。

同一框架养出两个工具:ShadowCoil的 credential 收割逻辑

同一框架养出两个工具:ShadowCoil的 credential 收割逻辑

调查过程中,InfoGuard Labs还发现另一个用相同混淆框架打包的恶意软件:ShadowCoil。这是个Python编写的凭证窃取器,专门翻Chrome、Edge、Firefox的本地存储,把保存的密码、Cookie、自动填充数据打包外传。

两个工具共享私有打包器,混淆模式高度一致。安全团队把这种"代码风格指纹"视为威胁集群的强关联指标——即使C2服务器不同、功能不同,同一批开发者写的混淆层骗不了人。

ShadowCoil的部署场景和VIPERTUNNEL互补。前者解决"拿到什么",后者解决"怎么持续拿"。先偷凭证扩大访问面,再搭隧道维持据点,是典型的企业网络渗透流水线。

Python作为攻击载体的趋势值得注意。它跨平台、解释执行、标准库丰富,而且很多企业开发环境本身就装了解释器。用pythonw.exe这种无窗口版本跑后台任务,系统管理员看到进程名也不会警觉——可能是某个内部脚本,可能是CI/CD组件,排查优先级天然靠后。

EvilCorp这套组合的关键创新不在某个单点技术,在"如何把合法工具链串成攻击链"。Python解释器是合法的,sitecustomize.py加载机制是设计特性,SOCKS5代理是通用协议,443端口是正常业务通道。每个环节单独看都没问题,拼在一起就成了绕过层层防御的隐蔽通道。

InfoGuard Labs建议企业做两件事:一是审计计划任务和启动项里调用解释器的行为,特别是无参数调用pythonw.exe的情况;二是监控sitecustomize.py等自动加载文件的完整性,这个文件默认不存在,突然出现就是红色信号。

但防御难度在于,攻击者可以换用其他自动加载点——usercustomize.pypth文件、甚至自定义的Python构建。只要企业环境依赖Python开发,完全封死自动加载机制就不现实。

EvilCorp的这套打法已经在至少两起勒索事件中被观察到。InfoGuard Labs没有披露具体受害方,但提到涉及欧洲中型企业的生产环境。VIPERTUNNEL的平均潜伏周期目前尚不清楚——分析师发现它时,后门已经跑了多久,是个没有答案的问题。

如果攻击者开始把这套框架移植到PowerShell或.NET的自动加载机制上,现有的检测规则还能跟上吗?