![打开文件夹时执行的命令](https://linux22.com/image/1405907/%E6%89%93%E5%BC%80%E6%96%87%E4%BB%B6%E5%A4%B9%E6%97%B6%E6%89%A7%E8%A1%8C%E7%9A%84%E5%91%BD%E4%BB%A4.png)
曾经有位聪明人告诉我,每个文件夹都包含一个文件 autorun.inf(不确定名称,但属性与 autorun.inf 相同),他更改了文件的代码以执行批处理脚本(批处理脚本位于同一目录中),该脚本通常会删除另一个目录中的指定文件。我在任何文件夹中都找不到此类文件。
所以问题是 - “每个文件夹中是否存在具有此类属性的文件”或一般来说这是否可能,如果是,那么如何?
答案1
我认为你谈论的是desktop.ini
不是 autorun.inf
(顺便说一句,你是对的。它们的格式相同)以及 Windows Shell 中的缓冲区溢出漏洞,MS03-027。是的,这样就可以desktop.ini
在访问目录时执行目录中文件中指定的命令。该漏洞很久以前就被修补了。
幸运的是,还有另一种方法可以做到这一点,尽管这种方法更复杂,恶意性也更小。这种方法叫做“shell 自定义动词”,并且它适用于现代系统。这个想法很简单:
您创建一个新的“动词”(动作)并将其注册到 中
HKEY_CLASSES_ROOT
。为了执行新创建的动词,您需要创建一个WSH 脚本并将其绑定到该动词使用
shell\RunAppFolder\command
Windows 注册密钥对于您创建的动词(注意:@
该键中的值必须存储为十六进制字符串)。最后,将该动词添加到
desktop.ini
所需文件夹中的文件中并将其标记为默认操作。
答案2
现代版本的 Windows 已禁用此功能。以前,autorun.inf
供应商会将此功能包含在 CD 中,然后 Windows 会读取它以查找要运行的文件中指定的程序。它主要用于在将 CD 插入 CD-Rom 时启动安装程序或 CD 中的某些内部程序。您可以控制它的工作方式并进行调整,但如果我没记错的话,默认情况下它是启用的。
由于它容易被滥用,所以在 2009 年得到了修补。我不确定是否有任何文件夹具有这样的功能,但我确信它适用于外部 USB 驱动器。
简而言之,这只在旧的和过时的 Windows 上(2009 年 2 月之前)才有可能。
您可以在此处查看有关此问题的 Microsoft 安全公告:https://technet.microsoft.com/library/security/967940
答案3
只有驱动器的根目录才能执行autorun.inf
并且仅当自动播放已启用。可以使用desktop.ini
, 但无法自动运行程序当它们被执行时。