凌晨2点,某企业安全监控平台突然发现一台办公终端存在异常外联行为。
从流量表现来看:
如果只看网络层数据,这几乎就是一次普通互联网访问。
但安全团队进一步分析发现:
这台终端正在持续向攻击者控制服务器发送加密数据。
更令人意外的是:
攻击程序并不是一个常见病毒文件。
它伪装成微软官方工具 GPUView.exe。
文件名称、图标、数字签名信息,都试图制造“可信软件”的假象。
然而在程序内部,却隐藏着完整的 Cobalt Strike Loader 攻击链。
攻击者通过:
让恶意代码成功绕过传统检测机制。
这类攻击正在成为企业安全防护的新挑战。
过去几年,企业安全设备不断增强。
传统攻击方式:
下载病毒文件 → 执行 → 建立连接
已经越来越容易被发现。
因此攻击者开始改变策略。
他们不再追求:
“制造一个明显恶意的软件。”
而是:
“制造一个看起来完全正常的软件。”
例如:
因为用户和安全设备天然会给予这些程序更高信任度。
此次样本正是利用这一心理。
攻击者选择微软生态工具作为外壳,让恶意代码隐藏在正常程序生命周期中。
分析发现,该样本表面上是 Windows SDK 中的 GPUView 工具。
GPUView 本身用于:
属于微软官方工具链。
攻击者并没有重新编写一个程序,而是直接对原始PE文件进行修改。
这种方式有几个优势:
第一:
降低用户怀疑。
第二:
增加安全软件信任评分。
第三:
绕过部分基于文件信誉的检测。
这也是近年来“Living off Trusted Software”(利用可信软件环境)攻击趋势的一部分。
正常Windows程序:
用户双击文件:
↓
PE加载器读取文件
↓
定位EntryPoint
↓
执行程序代码
而攻击样本:
用户双击文件:
↓
Windows加载PE
↓
进入攻击者修改后的入口
↓
执行Shellcode
攻击者首先覆盖原始入口点。
这个Shellcode不会立即展示恶意行为,而是先完成环境初始化。
包括:
这种方式避免导入表直接暴露:
VirtualAlloc
CreateThread
LoadLibrary
等敏感函数。
这是整个攻击链最核心的技术。
普通恶意代码:
加密Payload:
↓
运行时整体解密:
↓
执行
问题:
完整代码会瞬间暴露。
安全软件可以:
而该样本采用:
VEH(Vectored Exception Handler)
技术。
简单来说:
攻击代码故意保持加密。
当CPU准备执行某个区域时:
↓
触发异常
↓
进入异常处理函数
↓
临时解密当前4KB页面
↓
恢复执行
执行结束:
↓
重新加密
最终效果:
整个攻击代码永远不会完整出现在内存中。
安全人员抓取内存时,只能看到碎片。
攻击者没有直接加载Cobalt Strike。
而是设计了一层Loader。
这个Loader负责:
同时支持多种执行模式:
直接将PE映射到内存。
类似execute-assembly。
支持内存脚本运行。
这种设计意味着:
攻击者只需要更换最后Payload,就可以快速生成不同攻击工具。

为了增加逆向难度,攻击者进一步修改PE结构。
包括:
正常文件:
MZ
PE
样本:
替换关键Magic值。
导致:
标准PE:
入口位置固定。
攻击者:
将入口信息移动到自定义位置。
分析工具读取错误地址后:
无法正常执行。
正常:
kernel32.dll
VirtualProtect
CreateThread
样本:
全部隐藏。
运行时动态恢复。
经过完整还原后发现:
最终Payload为:
Cobalt Strike Beacon。
通信方式:
HTTPS。
攻击服务器:
隐藏于多个域名。
通信数据:
采用:
攻击者模拟正常浏览器:
User-Agent:
Chrome
请求:
GET /api/v1/get
POST /api/v1/post
从流量层面看:
与正常Web访问高度相似。
过去:
病毒文件检测。
现在:
攻击行为检测。
原因:
攻击者已经开始:
文件无恶意特征;
流量无明显异常;
程序有合法外观;
代码运行于内存。
因此企业需要:
升级到:
关注:
关注:
结合:
攻击不是一次事件。
需要:
发现 → 分析 → 响应 → 复盘。
当前网络攻击正在从“恶意软件时代”进入“隐蔽攻击时代”。
攻击者越来越善于利用:
隐藏真实目的。
企业安全建设不能只依靠单一防护设备,而需要结合:
网络安全防护、
业务安全保障、
威胁检测、
安全运营。
贵州数掘科技持续关注高级攻击技术演进,通过自主研发安全防护体系,为企业提供更加稳定、高效的网络安全保障能力。