[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] Streams:安全警告与解除锁定-Zone.Identifier

官方下载地址:http://download.sysinternals.com/Files/Streams.zip
  我们从网上下载一些文件,在打开他们的时候,会有如下的提示:


  如果单击“取消”,该文件或程序会被打开而运行。
  如果单击“运行”,该文件或程序会被打开或运行。

  以后在每次打开时,都会有这个对话框出现。如果确认该文件为安全,可以在单击“运行”之前,取消“打开此文件前总是询问”的勾选。

  当然,也可以右键单击“属性”,在“常规”选项卡下,会多出一个“安全”的条目,如下图:


  在这里,单击“解除锁定”,变化如下图:


  这样也可以使该文件在下次打开时,不出现安全警告。再此右键单击“属性”,在“常规”选项卡下,就看不到“安全”的条目了,如下图:


1,原理:
  Microsoft Internet Explorer 是一款流行的WEB浏览器。
  Windows XP SP2 增加了新的 Windows Internet Explorer 相关的域识别对象(Zone Identifier Object)。在 XP SP2 中,使用 Internet Explorer 或者 Outlook Express 从不可信区域下载文件域识别对象标记为“3”,存储在 ADS( Additional Data Stream 交换数据流)中,如下图:


  如果本地用户尝试执行文件,用户会被如下的提示:


  Zone.Identifier 内容如下的数据流:

[ZoneTransfer]
ZoneId=3


2,说明:

  由于该数据流属于 NTFS 数据流的一部分,所以必须有以下先决条件:
  • 操作系统至少是 Windows XP SP2 ;
  • 浏览器至少是 Microsoft Internet Explorer 6.0 或以上;
  • 文件系统必须是 NTFS ;
  • 必须是使用 Internet Explorer 下载的,使用其他下载软件,例如迅雷等,不会追加此数据流。

3,漏洞:

  但是 Windows Explorer 缓存文件的域 ID,不能识别文件的域 ID 的更改。如果使用指示不可信域的区域 ID 文件覆盖可信任域 ID 文件,那么覆盖的文件在被 Windows Explorer 打开时,就不会提示警告信息,而导致不信任文件盲目的被执行。

4,语法:


Usage: streams [-s] [-d] <file or directory>
本文转自http://blog.sina.com.cn/s/blog_51a4af870100biha.html
-s包含子目录.
-d删除数据流.
支持通配符 e.g. 'streams *.txt'.
本文转自http://blog.sina.com.cn/s/blog_51a4af870100biha.html


5,下载:

下载地址:Streams v1.56

6,使用:

  将 streams.zip 解压缩得到 streams.exe ,并将 streams.exe 复制到 %SystemRoot%\system32\ 目录下。然后在 CMD 下运行 streams /? ,显示其帮助语法,如下:

C:\WINDOWS\system32\CMD.exe本文转自http://bbs.bathome.net/thread-10605-1-1.html

Microsoft Windows XP [版本 5.1 2600]
<C> 版权所有 1985-2001 Microsoft Corp.

本文转自http://bbs.bathome.net/thread-10605af870100biha.html
C:\Documents and Settings\寒夜孤星>streams /?
Streams v1.56 - Enumerate alternate NTFS data streams
Copyright (C) 1999-2007 Mark Russinovich
Sysinternals -
www.sysinternals.com
本文转自http://bbs.bathome.net/thread-10605af870100biha.html
usage: streams [-s] [-d] <file or directory>
-s     Recurse subdirectories
-d     Delete streams

本文转自http://bbs.bathome.net/thread-10605af870100biha.html
C:\Documents and Settings\寒夜孤星>


  CMD 下运行 streams -s D:\ ,在 D 盘及其所有子目录下查找含有交换数据流的文件,其输出的:
D:\寒夜孤星.exe:
   :Zone.Identifier:$DATA 26

为枚举出所有含有交换数据流的文件。如下:

C:\WINDOWS\system32\CMD.exe本文转自http://bbs.bathome.net/thread-10605-1-1.html

Microsoft Windows XP [版本 5.1 2600]
<C> 版权所有 1985-2001 Microsoft Corp.

本文转自http://bbs.bathome.net/thread-10605af870100biha.html
C:\Documents and Settings\寒夜孤星>streams -s D:\
Streams v1.56 - Enumerate alternate NTFS data streams
Copyright (C) 1999-2007 Mark Russinovich
Sysinternals -
www.sysinternals.com
本文转自http://bbs.bathome.net/thread-10605af870100biha.html
D:\寒夜孤星.exe:
   :Zone.Identifier:$DATA 26

本文转自http://bbs.bathome.net/thread-10605af870100biha.html
C:\Documents and Settings\寒夜孤星>


  CMD 下运行 streams D:\寒夜孤星.exe ,这里的 D:\寒夜孤星.exe 就是我们要检查的文件,其输出的:
D:\寒夜孤星.exe:
   :Zone.Identifier:$DATA 26

表明此文件存在 NTFS 数据流。如下:

C:\WINDOWS\system32\CMD.exe本文转自http://bbs.bathome.net/thread-10605-1-1.html

Microsoft Windows XP [版本 5.1 2600]
<C> 版权所有 1985-2001 Microsoft Corp.

本文转自http://bbs.bathome.net/thread-10605af870100biha.html
C:\Documents and Settings\寒夜孤星>streams D:\寒夜孤星.exe
Streams v1.56 - Enumerate alternate NTFS data streams
Copyright (C) 1999-2007 Mark Russinovich
Sysinternals -
www.sysinternals.com
本文转自http://bbs.bathome.net/thread-10605af870100biha.html
D:\寒夜孤星.exe:
   :Zone.Identifier:$DATA 26

本文转自http://bbs.bathome.net/thread-10605af870100biha.html
C:\Documents and Settings\寒夜孤星>


  CMD 下运行 streams -d D:\寒夜孤星.exe ,这里的 D:\寒夜孤星.exe 就是我们要操作的文件,其中:
D:\寒夜孤星.exe:
   Deleted :Zone.Identifier:$DATA

[size=+0]表示删除交换数据流并成功完成操作。如下:

C:\WINDOWS\system32\CMD.exe本文转自http://bbs.bathome.net/thread-10605-1-1.html

Microsoft Windows XP [版本 5.1 2600]
<C> 版权所有 1985-2001 Microsoft Corp.

本文转自http://bbs.bathome.net/thread-10605af870100biha.html
C:\Documents and Settings\寒夜孤星>streams -d D:\寒夜孤星.exe
Streams v1.56 - Enumerate alternate NTFS data streams
Copyright (C) 1999-2007 Mark Russinovich
Sysinternals -
www.sysinternals.com
本文转自http://bbs.bathome.net/thread-10605af870100biha.html
D:\寒夜孤星.exe:
   Deleted :Zone.Identifier:$DATA

本文转自http://bbs.bathome.net/thread-10605af870100biha.html
C:\Documents and Settings\寒夜孤星>


  CMD 下运行 streams D:\寒夜孤星.exe ,这里的 D:\寒夜孤星.exe 就是我们要检查的文件,其输出的为空,表明此文件不存在 NTFS 数据流(因为刚才删除了交换数据流)。如下:

C:\WINDOWS\system32\CMD.exe本文转自http://bbs.bathome.net/thread-10605-1-1.html

Microsoft Windows XP [版本 5.1 2600]
<C> 版权所有 1985-2001 Microsoft Corp.

本文转自http://bbs.bathome.net/thread-10605af870100biha.html
C:\Documents and Settings\寒夜孤星>streams D:\寒夜孤星.exe
Streams v1.56 - Enumerate alternate NTFS data streams
Copyright (C) 1999-2007 Mark Russinovich
Sysinternals -
www.sysinternals.com
本文转自http://bbs.bathome.net/thread-10605af870100biha.html
C:\Documents and Settings\寒夜孤星>


  CMD 下运行 streams -s D:\ ,在 D 盘极其所有子目录下查找含有交换数据流的文件,其输出的:
No files with streams found.
表明 D 盘及其所有子目录下不存在含有交换数据流的文件(因为刚才删除了交换数据流)。如下:

C:\WINDOWS\system32\CMD.exe本文转自http://bbs.bathome.net/thread-10605-1-1.html

Microsoft Windows XP [版本 5.1 2600]
<C> 版权所有 1985-2001 Microsoft Corp.

本文转自http://bbs.bathome.net/thread-10605af870100biha.html
C:\Documents and Settings\寒夜孤星>streams -s D:\
Streams v1.56 - Enumerate alternate NTFS data streams
Copyright (C) 1999-2007 Mark Russinovich
Sysinternals -
www.sysinternals.com
本文转自http://bbs.bathome.net/thread-10605af870100biha.html
No files with streams found.
本文转自http://bbs.bathome.net/thread-10605af870100biha.html
C:\Documents and Settings\寒夜孤星>


[ 本帖最后由 hanyeguxing 于 2011-1-2 11:03 编辑 ]
1

评分人数

    • qzwqzw: ADS英文是Alternate Data Stream,微软一般 ...技术 + 1
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

厉害,值得支持呀!

TOP

老实说,没大明白这工具的意义……以为是能把普通的可执行文件“变成”从网上下载后那种提示呢……

原来是删除

TOP

回复 3楼 的帖子

1,此工具是用来批量检查和删除的
2,对于楼主的问题,使用记事本或简单的 echo 命令就可以做到,参考这里 http://bbs.bathome.net/thread-10653-1-1.html

[ 本帖最后由 hanyeguxing 于 2011-1-5 10:22 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

版主能否多举一些实例。先谢谢了!

TOP

本帖最后由 CrLf 于 2014-4-29 00:58 编辑

纯批也可以这样应付安全警告:
  1. @echo off
  2. if /i /%1==//r set f=/r&shift
  3. set patt=*
  4. if exist "%~1" set "patt=%~1"
  5. for %f% %%a in (%patt%) do (
  6.    for /f %%b in (%%~sa:Zone.Identifier) do (
  7.       echo 在 %%a 中发现安全警告
  8.    ) 3>%%a:Zone.Identifier
  9. )
  10. pause
复制代码

TOP

回复 6# CrLf
  1. set patt=*
  2. if exist "%~1" set "patt=%~1"
复制代码
这两句什么意思啊?

TOP

回复 7# 无忧


    如果参数中存在文件,则处理指定文件,否则默认处理目录下所有文件

TOP

3,漏洞:

  但是 Windows Explorer 缓存文件的域 ID,不能识别文件的域 ID 的更改。如果使用指示不可信域的区域 ID 文件覆盖可信任域 ID 文件,那么覆盖的文件在被 Windows Explorer 打开时,就不会提示警告信息,而导致不信任文件盲目的被执行。

这句不太明白,有什么漏洞,就是文件带有这个数据流还不好呢?是这个意思?

TOP

返回列表